Skip to content

Commit e2b1254

Browse files
committed
Fix SwiftUI handling of the message binding
1 parent 262e15f commit e2b1254

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

SwiftMessages/SwiftMessageModifier.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,21 @@ private struct SwiftMessageModifier<Message, MessageContent>: ViewModifier where
7575
func body(content: Content) -> some View {
7676
content
7777
.onChange(of: message) { message in
78-
if let message {
79-
let show: @MainActor (SwiftMessages.Config, UIView) -> Void = swiftMessages?.show(config:view:) ?? SwiftMessages.show(config:view:)
78+
let show: @MainActor (SwiftMessages.Config, UIView) -> Void = swiftMessages?.show(config:view:) ?? SwiftMessages.show(config:view:)
79+
let hideAll: @MainActor () -> Void = swiftMessages?.hideAll ?? SwiftMessages.hideAll
80+
switch message {
81+
case let message?:
8082
let view = MessageHostingView(id: message.id, content: messageContent(message))
8183
var config = config ?? swiftMessages?.defaultConfig ?? SwiftMessages.defaultConfig
8284
config.eventListeners.append { event in
8385
if case .didHide = event, event.id == self.message?.id {
8486
self.message = nil
8587
}
8688
}
89+
hideAll()
8790
show(config, view)
91+
case .none:
92+
hideAll()
8893
}
8994
}
9095
}

0 commit comments

Comments
 (0)