Skip to content

Commit 07a417c

Browse files
committed
Move quotedMessage inside the QuotedMessageContentViewOptions
1 parent edc3192 commit 07a417c

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

Sources/StreamChatSwiftUI/ChatChannel/MessageList/QuotedMessageView.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,10 @@ public struct QuotedMessageView<Factory: ViewFactory>: View {
110110
public var body: some View {
111111
HStack(alignment: .top) {
112112
factory.makeQuotedMessageContentView(
113-
quotedMessage: quotedMessage,
114113
options: QuotedMessageContentViewOptions(
114+
quotedMessage: quotedMessage,
115115
fillAvailableSpace: fillAvailableSpace,
116+
forceLeftToRight: forceLeftToRight,
116117
attachmentSize: attachmentSize
117118
)
118119
)
@@ -153,16 +154,24 @@ public struct QuotedMessageView<Factory: ViewFactory>: View {
153154

154155
/// Options for configuring the quoted message content view.
155156
public struct QuotedMessageContentViewOptions {
157+
/// The quoted message to display.
158+
public let quotedMessage: ChatMessage
156159
/// Whether the quoted container should take all the available space.
157160
public let fillAvailableSpace: Bool
161+
/// Whether to force left to right layout.
162+
public let forceLeftToRight: Bool
158163
/// The size of the attachment preview.
159164
public let attachmentSize: CGSize
160165

161166
public init(
167+
quotedMessage: ChatMessage,
162168
fillAvailableSpace: Bool,
169+
forceLeftToRight: Bool,
163170
attachmentSize: CGSize = CGSize(width: 36, height: 36)
164171
) {
172+
self.quotedMessage = quotedMessage
165173
self.fillAvailableSpace = fillAvailableSpace
174+
self.forceLeftToRight = forceLeftToRight
166175
self.attachmentSize = attachmentSize
167176
}
168177
}
@@ -179,20 +188,21 @@ public struct QuotedMessageContentView<Factory: ViewFactory>: View {
179188
@Injected(\.utils) private var utils
180189

181190
public var factory: Factory
182-
public var quotedMessage: ChatMessage
183191
public var options: QuotedMessageContentViewOptions
192+
193+
private var quotedMessage: ChatMessage {
194+
options.quotedMessage
195+
}
184196

185197
private var messageTypeResolver: MessageTypeResolving {
186198
utils.messageTypeResolver
187199
}
188200

189201
public init(
190202
factory: Factory,
191-
quotedMessage: ChatMessage,
192203
options: QuotedMessageContentViewOptions
193204
) {
194205
self.factory = factory
195-
self.quotedMessage = quotedMessage
196206
self.options = options
197207
}
198208

Sources/StreamChatSwiftUI/DefaultViewFactory.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -999,12 +999,10 @@ extension ViewFactory {
999999
}
10001000

10011001
public func makeQuotedMessageContentView(
1002-
quotedMessage: ChatMessage,
10031002
options: QuotedMessageContentViewOptions
10041003
) -> some View {
10051004
QuotedMessageContentView(
10061005
factory: self,
1007-
quotedMessage: quotedMessage,
10081006
options: options
10091007
)
10101008
}

Sources/StreamChatSwiftUI/ViewFactory.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,11 +1021,9 @@ public protocol ViewFactory: AnyObject {
10211021
/// It is the view that is embedded in quoted message bubble view.
10221022
///
10231023
/// - Parameters:
1024-
/// - quotedMessage: the quoted message.
10251024
/// - options: configuration options for the quoted message content view.
10261025
/// - Returns: view displayed in the quoted message content slot.
10271026
func makeQuotedMessageContentView(
1028-
quotedMessage: ChatMessage,
10291027
options: QuotedMessageContentViewOptions
10301028
) -> QuotedMessageContentViewType
10311029

StreamChatSwiftUITests/Tests/ChatChannel/QuotedMessageView_Tests.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -272,11 +272,10 @@ private class CustomQuotedContentViewFactory: ViewFactory {
272272
static let shared = CustomQuotedContentViewFactory()
273273

274274
func makeQuotedMessageContentView(
275-
quotedMessage: ChatMessage,
276275
options: QuotedMessageContentViewOptions
277276
) -> some View {
278277
Group {
279-
if let footballGameAttachmentPayload = quotedMessage
278+
if let footballGameAttachmentPayload = options.quotedMessage
280279
.attachments(payloadType: FootballGameAttachmentPayload.self)
281280
.first?
282281
.payload {
@@ -286,7 +285,6 @@ private class CustomQuotedContentViewFactory: ViewFactory {
286285
// Fallback to default content view
287286
QuotedMessageContentView(
288287
factory: self,
289-
quotedMessage: quotedMessage,
290288
options: options
291289
)
292290
}

0 commit comments

Comments
 (0)