Skip to content

Commit 22db346

Browse files
committed
Add observable object wrapper for controller
1 parent 74b0941 commit 22db346

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

Sources/StreamChatSwiftUI/ChatChannel/MessageList/MessageRepliesView.swift

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,25 @@ struct LazyMessageRepliesView<Factory: ViewFactory>: View {
167167
}
168168
}
169169
}
170+
171+
extension ChatMessageController {
172+
@MainActor var observableObject: ObservableObject { .init(controller: self) }
173+
174+
final class ObservableObject: SwiftUI.ObservableObject, ChatMessageControllerDelegate {
175+
let controller: ChatMessageController
176+
@Published public private(set) var message: ChatMessage?
177+
178+
init(controller: ChatMessageController) {
179+
self.controller = controller
180+
controller.delegate = self
181+
message = controller.message
182+
}
183+
184+
func messageController(
185+
_ controller: ChatMessageController,
186+
didChangeMessage change: EntityChange<ChatMessage>
187+
) {
188+
message = controller.message
189+
}
190+
}
191+
}

0 commit comments

Comments
 (0)