@@ -193,13 +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- mainTabState. myPage. root. user = user
199- state. route = . mainTab( mainTabState)
200- return . none
201- }
202- state. route = . mainTab( . init( user: user) )
196+ if case . mainTab = state. route { return . none }
197+ state. route = . mainTab( . init( ) )
203198 return . none
204199
205200 case . signedOut:
@@ -222,24 +217,17 @@ struct AppCoordinator {
222217
223218 case let . route( . auth( . delegate( . moveToMainTab( user) ) ) ) :
224219 state. $userSessionStatus. withLock { $0 = . signedIn( user) }
225- state. route = . mainTab( . init( user : user ) )
220+ state. route = . mainTab( . init( ) )
226221 return . send( . executePendingShareExtensionIfNeeded)
227222
228- case . route( . mainTab( . delegate( . signedOut) ) ) :
229- state. $userSessionStatus. withLock { $0 = . signedOut }
230- state. route = . auth( . init( ) )
231- return . none
232-
233- case . route( . mainTab( . delegate( . withdraw) ) ) :
223+ case . route( . mainTab( . delegate( . signedOut) ) ) , . route( . mainTab( . delegate( . withdraw) ) ) :
234224 state. $userSessionStatus. withLock { $0 = . signedOut }
235- state. initializeUserDefaults ( )
225+ if case . route( . mainTab( . delegate( . withdraw) ) ) = action {
226+ state. initializeUserDefaults ( )
227+ }
236228 state. route = . auth( . init( ) )
237229 return . none
238230
239- case let . route( . mainTab( . delegate( . profileUpdated( user) ) ) ) :
240- state. $userSessionStatus. withLock { $0 = . signedIn( user) }
241- return . none
242-
243231 case . binding( \. isAlertPresented) :
244232 guard state. isAlertPresented == false else { return . none }
245233 guard let pendingSessionStatus = state. pendingSessionStatus else { return . none }
@@ -254,8 +242,8 @@ struct AppCoordinator {
254242
255243 private func navigateToNextScreen( state: inout State , sessionStatus: UserSessionStatus ) -> Effect < Action > {
256244 switch sessionStatus {
257- case . signedIn( let user ) :
258- state. route = . mainTab( . init( user : user ) )
245+ case . signedIn:
246+ state. route = . mainTab( . init( ) )
259247 return . send( . executePendingShareExtensionIfNeeded)
260248
261249 case . signedOut, . expired:
0 commit comments