From c13685a0cf5a5c4266154495a3cb10f0f76d84dc Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 3 May 2024 02:52:37 +0100 Subject: [PATCH] [Session] Fix stale emailAuthFactor and emailConfirmed on the client (#3835) * Fix account refresh to not clobber falsy values * Use ?? in more places --- src/state/session/index.tsx | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index 8ad244c8..b4799e2f 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -121,11 +121,11 @@ export function Provider({children}: React.PropsWithChildren<{}>) { // TODO: use agentToSessionAccount for this too. const refreshedAccount: SessionAccount = { service: account.service, - did: session?.did || account.did, - handle: session?.handle || account.handle, - email: session?.email || account.email, - emailConfirmed: session?.emailConfirmed || account.emailConfirmed, - emailAuthFactor: session?.emailAuthFactor || account.emailAuthFactor, + did: session?.did ?? account.did, + handle: session?.handle ?? account.handle, + email: session?.email ?? account.email, + emailConfirmed: session?.emailConfirmed ?? account.emailConfirmed, + emailAuthFactor: session?.emailAuthFactor ?? account.emailAuthFactor, deactivated: isSessionDeactivated(session?.accessJwt), pdsUrl: agent.pdsUrl?.toString(), @@ -311,8 +311,8 @@ export function Provider({children}: React.PropsWithChildren<{}>) { isSessionDeactivated(account.accessJwt) || account.deactivated const prevSession = { - accessJwt: account.accessJwt || '', - refreshJwt: account.refreshJwt || '', + accessJwt: account.accessJwt ?? '', + refreshJwt: account.refreshJwt ?? '', did: account.did, handle: account.handle, } @@ -457,16 +457,12 @@ export function Provider({children}: React.PropsWithChildren<{}>) { const updatedAccount = { ...currentAccount, - handle: account.handle || currentAccount.handle, - email: account.email || currentAccount.email, + handle: account.handle ?? currentAccount.handle, + email: account.email ?? currentAccount.email, emailConfirmed: - account.emailConfirmed !== undefined - ? account.emailConfirmed - : currentAccount.emailConfirmed, + account.emailConfirmed ?? currentAccount.emailConfirmed, emailAuthFactor: - account.emailAuthFactor !== undefined - ? account.emailAuthFactor - : currentAccount.emailAuthFactor, + account.emailAuthFactor ?? currentAccount.emailAuthFactor, } return {