File tree Expand file tree Collapse file tree 5 files changed +62
-16
lines changed
Sources/StreamChatSwiftUI
StreamChatSwiftUITests/Tests/Utils Expand file tree Collapse file tree 5 files changed +62
-16
lines changed Original file line number Diff line number Diff line change @@ -30,20 +30,22 @@ public struct DeletedMessageView: View {
30
30
. foregroundColor ( Color ( colors. textLowEmphasis) )
31
31
. messageBubble ( for: message, isFirst: isFirst)
32
32
33
- HStack {
34
- Spacer ( )
33
+ if message. isSentByCurrentUser {
34
+ HStack {
35
+ Spacer ( )
36
+
37
+ Image ( uiImage: images. eye)
38
+ . customizable ( )
39
+ . frame ( maxWidth: 12 )
35
40
36
- Image ( uiImage: images. eye)
37
- . customizable ( )
38
- . frame ( maxWidth: 12 )
39
-
40
- Text ( L10n . Message. onlyVisibleToYou)
41
- . font ( fonts. footnote)
42
-
43
- Text ( dateFormatter. string ( from: message. createdAt) )
44
- . font ( fonts. footnote)
41
+ Text ( L10n . Message. onlyVisibleToYou)
42
+ . font ( fonts. footnote)
43
+
44
+ Text ( dateFormatter. string ( from: message. createdAt) )
45
+ . font ( fonts. footnote)
46
+ }
47
+ . foregroundColor ( Color ( colors. textLowEmphasis) )
45
48
}
46
- . foregroundColor ( Color ( colors. textLowEmphasis) )
47
49
}
48
50
}
49
51
}
Original file line number Diff line number Diff line change @@ -124,7 +124,9 @@ public struct MessageContainerView<Factory: ViewFactory>: View {
124
124
}
125
125
}
126
126
. onLongPressGesture ( perform: {
127
- handleGestureForMessage ( showsMessageActions: true )
127
+ if !message. isDeleted {
128
+ handleGestureForMessage ( showsMessageActions: true )
129
+ }
128
130
} )
129
131
. offset ( x: self . offsetX)
130
132
. simultaneousGesture (
@@ -180,15 +182,15 @@ public struct MessageContainerView<Factory: ViewFactory>: View {
180
182
)
181
183
182
184
if messageListConfig. messageDisplayOptions. showMessageDate {
183
- MessageDateView ( message : message)
185
+ factory . makeMessageDateView ( for : message)
184
186
}
185
187
}
186
188
} else if !message. isSentByCurrentUser
187
189
&& !channel. isDirectMessageChannel
188
190
&& messageListConfig. messageDisplayOptions. showAuthorName {
189
- MessageAuthorAndDateView ( message : message)
191
+ factory . makeMessageAuthorAndDateView ( for : message)
190
192
} else if messageListConfig. messageDisplayOptions. showMessageDate {
191
- MessageDateView ( message : message)
193
+ factory . makeMessageDateView ( for : message)
192
194
}
193
195
}
194
196
}
Original file line number Diff line number Diff line change @@ -289,6 +289,14 @@ extension ViewFactory {
289
289
)
290
290
}
291
291
292
+ public func makeMessageDateView( for message: ChatMessage ) -> some View {
293
+ MessageDateView ( message: message)
294
+ }
295
+
296
+ public func makeMessageAuthorAndDateView( for message: ChatMessage ) -> some View {
297
+ MessageAuthorAndDateView ( message: message)
298
+ }
299
+
292
300
public func makeImageAttachmentView(
293
301
for message: ChatMessage ,
294
302
isFirst: Bool ,
Original file line number Diff line number Diff line change @@ -277,6 +277,18 @@ public protocol ViewFactory: AnyObject {
277
277
scrolledId: Binding < String ? >
278
278
) -> MessageTextViewType
279
279
280
+ associatedtype MessageDateViewType : View
281
+ /// Creates a view for the date info shown below a message.
282
+ /// - Parameter message: the chat message for which the date info is displayed.
283
+ /// - Returns: view shown in the date indicator slot.
284
+ func makeMessageDateView( for message: ChatMessage ) -> MessageDateViewType
285
+
286
+ associatedtype MessageAuthorAndDateViewType : View
287
+ /// Creates a view for the date and author info shown below a message.
288
+ /// - Parameter message: the chat message for which the date and author info is displayed.
289
+ /// - Returns: view shown in the date and author indicator slot.
290
+ func makeMessageAuthorAndDateView( for message: ChatMessage ) -> MessageAuthorAndDateViewType
291
+
280
292
associatedtype ImageAttachmentViewType : View
281
293
/// Creates the image attachment view.
282
294
/// - Parameters:
Original file line number Diff line number Diff line change @@ -645,6 +645,28 @@ class ViewFactory_Tests: StreamChatTestCase {
645
645
// Then
646
646
XCTAssert ( modifier is EmptyViewModifier )
647
647
}
648
+
649
+ func test_viewFactory_makeMessageDateView( ) {
650
+ // Given
651
+ let viewFactory = DefaultViewFactory . shared
652
+
653
+ // When
654
+ let view = viewFactory. makeMessageDateView ( for: message)
655
+
656
+ // Then
657
+ XCTAssert ( view is MessageDateView )
658
+ }
659
+
660
+ func test_viewFactory_makeMessageAuthorAndDateView( ) {
661
+ // Given
662
+ let viewFactory = DefaultViewFactory . shared
663
+
664
+ // When
665
+ let view = viewFactory. makeMessageAuthorAndDateView ( for: message)
666
+
667
+ // Then
668
+ XCTAssert ( view is MessageAuthorAndDateView )
669
+ }
648
670
}
649
671
650
672
extension ChannelAction : Equatable {
You can’t perform that action at this time.
0 commit comments