@@ -193,12 +193,8 @@ struct AppCoordinator {
193193
194194 switch newStatus {
195195 case let . signedIn( user) :
196- if case var . mainTab( mainTabState) = state. route {
197- mainTabState. user = user
198- state. route = . mainTab( . init( user: user) )
199- return . none
200- }
201- state. route = . mainTab( . init( user: user) )
196+ if case . mainTab = state. route { return . none }
197+ state. route = . mainTab( . init( ) )
202198 return . none
203199
204200 case . signedOut:
@@ -221,24 +217,17 @@ struct AppCoordinator {
221217
222218 case let . route( . auth( . delegate( . moveToMainTab( user) ) ) ) :
223219 state. $userSessionStatus. withLock { $0 = . signedIn( user) }
224- state. route = . mainTab( . init( user : user ) )
220+ state. route = . mainTab( . init( ) )
225221 return . send( . executePendingShareExtensionIfNeeded)
226222
227- case . route( . mainTab( . delegate( . signedOut) ) ) :
228- state. $userSessionStatus. withLock { $0 = . signedOut }
229- state. route = . auth( . init( ) )
230- return . none
231-
232- case . route( . mainTab( . delegate( . withdraw) ) ) :
223+ case . route( . mainTab( . delegate( . signedOut) ) ) , . route( . mainTab( . delegate( . withdraw) ) ) :
233224 state. $userSessionStatus. withLock { $0 = . signedOut }
234- state. initializeUserDefaults ( )
225+ if case . route( . mainTab( . delegate( . withdraw) ) ) = action {
226+ state. initializeUserDefaults ( )
227+ }
235228 state. route = . auth( . init( ) )
236229 return . none
237230
238- case let . route( . mainTab( . delegate( . profileUpdated( user) ) ) ) :
239- state. $userSessionStatus. withLock { $0 = . signedIn( user) }
240- return . none
241-
242231 case . binding( \. isAlertPresented) :
243232 guard state. isAlertPresented == false else { return . none }
244233 guard let pendingSessionStatus = state. pendingSessionStatus else { return . none }
@@ -253,8 +242,8 @@ struct AppCoordinator {
253242
254243 private func navigateToNextScreen( state: inout State , sessionStatus: UserSessionStatus ) -> Effect < Action > {
255244 switch sessionStatus {
256- case . signedIn( let user ) :
257- state. route = . mainTab( . init( user : user ) )
245+ case . signedIn:
246+ state. route = . mainTab( . init( ) )
258247 return . send( . executePendingShareExtensionIfNeeded)
259248
260249 case . signedOut, . expired:
0 commit comments