File tree Expand file tree Collapse file tree 3 files changed +53
-4
lines changed
Sources/StreamChatSwiftUI/ChatChannel/MessageList
StreamChatSwiftUITests/Tests/ChatChannel
__Snapshots__/MessageView_Tests Expand file tree Collapse file tree 3 files changed +53
-4
lines changed Original file line number Diff line number Diff line change @@ -80,7 +80,12 @@ struct MessageView<Factory: ViewFactory>: View {
8080 }
8181 } else {
8282 if message. shouldRenderAsJumbomoji {
83- EmojiTextView ( message: message)
83+ EmojiTextView (
84+ factory: factory,
85+ message: message,
86+ scrolledId: $scrolledId,
87+ isFirst: isFirst
88+ )
8489 } else if !message. text. isEmpty {
8590 factory. makeMessageTextView (
8691 for: message,
@@ -127,13 +132,34 @@ public struct MessageTextView<Factory: ViewFactory>: View {
127132 }
128133}
129134
130- public struct EmojiTextView : View {
135+ public struct EmojiTextView < Factory: ViewFactory > : View {
136+ var factory : Factory
131137 var message : ChatMessage
138+ @Binding var scrolledId : String ?
139+ var isFirst : Bool
132140
133141 @Injected ( \. fonts) private var fonts
142+ @Injected ( \. utils) private var utils
134143
135144 public var body : some View {
136- Text ( message. text)
137- . font ( fonts. emoji)
145+ ZStack {
146+ if let quotedMessage = utils. messageCachingUtils. quotedMessage ( for: message) {
147+ VStack ( spacing: 0 ) {
148+ QuotedMessageViewContainer (
149+ factory: factory,
150+ quotedMessage: quotedMessage,
151+ fillAvailableSpace: !message. attachmentCounts. isEmpty,
152+ scrolledId: $scrolledId
153+ )
154+
155+ Text ( message. text)
156+ . font ( fonts. emoji)
157+ }
158+ . messageBubble ( for: message, isFirst: isFirst)
159+ } else {
160+ Text ( message. text)
161+ . font ( fonts. emoji)
162+ }
163+ }
138164 }
139165}
Original file line number Diff line number Diff line change @@ -128,4 +128,27 @@ class MessageView_Tests: StreamChatTestCase {
128128 // Then
129129 assertSnapshot ( matching: view, as: . image)
130130 }
131+
132+ func test_messageViewJumboEmoji_snapshot( ) {
133+ // Given
134+ let emojiMessage = ChatMessage . mock (
135+ id: . unique,
136+ cid: . unique,
137+ text: " 😀 " ,
138+ author: . mock( id: . unique)
139+ )
140+
141+ // When
142+ let view = MessageView (
143+ factory: DefaultViewFactory . shared,
144+ message: emojiMessage,
145+ contentWidth: defaultScreenSize. width,
146+ isFirst: true ,
147+ scrolledId: . constant( nil )
148+ )
149+ . frame ( width: defaultScreenSize. width, height: defaultScreenSize. height)
150+
151+ // Then
152+ assertSnapshot ( matching: view, as: . image)
153+ }
131154}
You can’t perform that action at this time.
0 commit comments