diff --git a/src/components/dialogs/EmailDialog/data/useConfirmEmail.ts b/src/components/dialogs/EmailDialog/data/useConfirmEmail.ts index c767697f52..67466be926 100644 --- a/src/components/dialogs/EmailDialog/data/useConfirmEmail.ts +++ b/src/components/dialogs/EmailDialog/data/useConfirmEmail.ts @@ -1,6 +1,6 @@ import {useMutation} from '@tanstack/react-query' -import {useAgent, useSession, useSessionApi} from '#/state/session' +import {useAgent, useSession} from '#/state/session' export function useConfirmEmail({ onSuccess, @@ -8,7 +8,6 @@ export function useConfirmEmail({ }: {onSuccess?: () => void; onError?: () => void} = {}) { const agent = useAgent() const {currentAccount} = useSession() - const {partialRefreshSession} = useSessionApi() return useMutation({ mutationFn: async ({token}: {token: string}) => { @@ -20,7 +19,8 @@ export function useConfirmEmail({ email: currentAccount.email.trim(), token: token.trim(), }) - await partialRefreshSession() + // will update session state at root of app + await agent.resumeSession(agent.session!) }, onSuccess, onError, diff --git a/src/components/dialogs/EmailDialog/data/useManageEmail2FA.ts b/src/components/dialogs/EmailDialog/data/useManageEmail2FA.ts index 4c1420847d..358bf86544 100644 --- a/src/components/dialogs/EmailDialog/data/useManageEmail2FA.ts +++ b/src/components/dialogs/EmailDialog/data/useManageEmail2FA.ts @@ -1,11 +1,10 @@ import {useMutation} from '@tanstack/react-query' -import {useAgent, useSession, useSessionApi} from '#/state/session' +import {useAgent, useSession} from '#/state/session' export function useManageEmail2FA() { const agent = useAgent() const {currentAccount} = useSession() - const {partialRefreshSession} = useSessionApi() return useMutation({ mutationFn: async ({ @@ -23,7 +22,8 @@ export function useManageEmail2FA() { emailAuthFactor: enabled, token, }) - await partialRefreshSession() + // will update session state at root of app + await agent.resumeSession(agent.session!) }, }) } diff --git a/src/components/dialogs/EmailDialog/data/useUpdateEmail.ts b/src/components/dialogs/EmailDialog/data/useUpdateEmail.ts index 1f81801a76..2ec1eb6dc2 100644 --- a/src/components/dialogs/EmailDialog/data/useUpdateEmail.ts +++ b/src/components/dialogs/EmailDialog/data/useUpdateEmail.ts @@ -1,21 +1,19 @@ import {useMutation} from '@tanstack/react-query' -import {useAgent, useSessionApi} from '#/state/session' +import {useAgent} from '#/state/session' import {useRequestEmailUpdate} from '#/components/dialogs/EmailDialog/data/useRequestEmailUpdate' async function updateEmailAndRefreshSession( agent: ReturnType, - partialRefreshSession: () => Promise, email: string, token?: string, ) { await agent.com.atproto.server.updateEmail({email: email.trim(), token}) - await partialRefreshSession() + await agent.resumeSession(agent.session!) } export function useUpdateEmail() { const agent = useAgent() - const {partialRefreshSession} = useSessionApi() const {mutateAsync: requestEmailUpdate} = useRequestEmailUpdate() return useMutation< @@ -25,12 +23,7 @@ export function useUpdateEmail() { >({ mutationFn: async ({email, token}: {email: string; token?: string}) => { if (token) { - await updateEmailAndRefreshSession( - agent, - partialRefreshSession, - email, - token, - ) + await updateEmailAndRefreshSession(agent, email, token) return { status: 'success', } @@ -41,12 +34,7 @@ export function useUpdateEmail() { status: 'tokenRequired', } } else { - await updateEmailAndRefreshSession( - agent, - partialRefreshSession, - email, - token, - ) + await updateEmailAndRefreshSession(agent, email, token) return { status: 'success', } diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index fc08f70d7f..e63e180a4e 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -284,7 +284,6 @@ export function Provider({children}: React.PropsWithChildren<{}>) { type: 'partial-refresh-session', accountDid: agent.session!.did, patch: { - email: data.email, emailConfirmed: data.emailConfirmed, emailAuthFactor: data.emailAuthFactor, }, diff --git a/src/state/session/reducer.ts b/src/state/session/reducer.ts index 79fffb6c59..d22dd4a021 100644 --- a/src/state/session/reducer.ts +++ b/src/state/session/reducer.ts @@ -58,10 +58,7 @@ export type Action = | { type: 'partial-refresh-session' accountDid: string - patch: Pick< - SessionAccount, - 'email' | 'emailConfirmed' | 'emailAuthFactor' - > + patch: Pick } function createPublicAgentState(): AgentState { @@ -242,7 +239,6 @@ let reducer = (state: State, action: Action): State => { * Only mutating values that are safe. Be very careful with this. */ if (agent.session) { - agent.session.email = patch.email ?? agent.session.email agent.session.emailConfirmed = patch.emailConfirmed ?? agent.session.emailConfirmed agent.session.emailAuthFactor = @@ -259,7 +255,6 @@ let reducer = (state: State, action: Action): State => { if (a.did === accountDid) { return { ...a, - email: patch.email ?? a.email, emailConfirmed: patch.emailConfirmed ?? a.emailConfirmed, emailAuthFactor: patch.emailAuthFactor ?? a.emailAuthFactor, }