From 73dcfe2f27af8ac44560cf69a8de61513887879b Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Wed, 1 Mar 2023 09:03:17 +0200 Subject: [PATCH] Prevent the dismissal callback from being called multiple times if changes happen on the navigation coordinators directly from it --- .../Sources/Application/Navigation/NavigationModule.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ElementX/Sources/Application/Navigation/NavigationModule.swift b/ElementX/Sources/Application/Navigation/NavigationModule.swift index a8d3f4bf7..247bcfe20 100644 --- a/ElementX/Sources/Application/Navigation/NavigationModule.swift +++ b/ElementX/Sources/Application/Navigation/NavigationModule.swift @@ -36,9 +36,11 @@ class NavigationModule: Identifiable, Hashable { func tearDown() { coordinator?.stop() - dismissalCallback?() coordinator = nil + + let callback = dismissalCallback dismissalCallback = nil + callback?() } nonisolated static func == (lhs: NavigationModule, rhs: NavigationModule) -> Bool {