diff --git a/Examples/xx-messenger/Sources/ChatFeature/ChatFeature.swift b/Examples/xx-messenger/Sources/ChatFeature/ChatFeature.swift index 26757d71d5a83318261d52f89ebfad6a2ad7fc9f..9d5c3df0ccc35b9989b7702f824a8d771177e0d2 100644 --- a/Examples/xx-messenger/Sources/ChatFeature/ChatFeature.swift +++ b/Examples/xx-messenger/Sources/ChatFeature/ChatFeature.swift @@ -17,18 +17,21 @@ public struct ChatState: Equatable, Identifiable { id: Int64, date: Date, senderId: Data, - text: String + text: String, + status: XXModels.Message.Status ) { self.id = id self.date = date self.senderId = senderId self.text = text + self.status = status } public var id: Int64 public var date: Date public var senderId: Data public var text: String + public var status: XXModels.Message.Status } public init( @@ -118,7 +121,8 @@ public let chatReducer = Reducer<ChatState, ChatAction, ChatEnvironment> id: id, date: message.date, senderId: message.senderId, - text: message.text + text: message.text, + status: message.status ) } } diff --git a/Examples/xx-messenger/Sources/ChatFeature/ChatView.swift b/Examples/xx-messenger/Sources/ChatFeature/ChatView.swift index 5905931f698e899efc327805d8946c638ec2f926..fed16ae9c9ac55e46ba86881ceb365b3506b036c 100644 --- a/Examples/xx-messenger/Sources/ChatFeature/ChatView.swift +++ b/Examples/xx-messenger/Sources/ChatFeature/ChatView.swift @@ -95,7 +95,7 @@ public struct ChatView: View { var body: some View { VStack { - Text("\(message.date.formatted())") + Text("\(message.date.formatted()), \(statusText)") .foregroundColor(.secondary) .font(.footnote) .frame(maxWidth: .infinity, alignment: alignment) @@ -112,6 +112,18 @@ public struct ChatView: View { } .padding(.horizontal) } + + var statusText: String { + switch message.status { + case .sending: return "Sending" + case .sendingTimedOut: return "Sending timed out" + case .sendingFailed: return "Failed" + case .sent: return "Sent" + case .receiving: return "Receiving" + case .receivingFailed: return "Receiving failed" + case .received: return "Received" + } + } } } @@ -128,13 +140,15 @@ public struct ChatView_Previews: PreviewProvider { id: 1, date: Date(), senderId: "contact-id".data(using: .utf8)!, - text: "Hello!" + text: "Hello!", + status: .received ), .init( id: 2, date: Date(), senderId: "my-contact-id".data(using: .utf8)!, - text: "Hi!" + text: "Hi!", + status: .sent ), ] ), diff --git a/Examples/xx-messenger/Tests/ChatFeatureTests/ChatFeatureTests.swift b/Examples/xx-messenger/Tests/ChatFeatureTests/ChatFeatureTests.swift index 89f0658df3b038b2f586f5e34f3477931f7cbfa3..f0bde78715107773bd66a24994a73f078cc5ac2e 100644 --- a/Examples/xx-messenger/Tests/ChatFeatureTests/ChatFeatureTests.swift +++ b/Examples/xx-messenger/Tests/ChatFeatureTests/ChatFeatureTests.swift @@ -87,13 +87,15 @@ final class ChatFeatureTests: XCTestCase { id: 1, date: Date(timeIntervalSince1970: 1), senderId: contactId, - text: "Message 1" + text: "Message 1", + status: .received ), .init( id: 2, date: Date(timeIntervalSince1970: 2), senderId: myContactId, - text: "Message 2" + text: "Message 2", + status: .sent ), ])