Update API package to fix stale session issues (#9998)

This commit is contained in:
Eric Bailey
2026-03-04 18:27:12 -06:00
committed by GitHub
parent 8446efb739
commit 7fd218c97d
8 changed files with 19 additions and 39 deletions
@@ -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,
@@ -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!)
},
})
}
@@ -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<typeof useAgent>,
partialRefreshSession: () => Promise<void>,
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',
}