diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index 6a7e4361..4b9e09a8 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -8,7 +8,8 @@ export const RQKEY = () => ['app-passwords'] export function useAppPasswordsQuery() { return useQuery({ - staleTime: STALE.MINUTES.ONE, + staleTime: STALE.MINUTES.FIVE, + refetchInterval: STALE.MINUTES.ONE, queryKey: RQKEY(), queryFn: async () => { const res = await getAgent().com.atproto.server.listAppPasswords({}) diff --git a/src/state/queries/index.ts b/src/state/queries/index.ts index 35f841a9..e7c5f577 100644 --- a/src/state/queries/index.ts +++ b/src/state/queries/index.ts @@ -5,6 +5,10 @@ export const PUBLIC_BSKY_AGENT = new BskyAgent({ }) export const STALE = { + SECONDS: { + FIFTEEN: 1e3 * 15, + THIRTY: 1e3 * 30, + }, MINUTES: { ONE: 1e3 * 60, FIVE: 1e3 * 60 * 5, diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts index 367917af..a765b309 100644 --- a/src/state/queries/invites.ts +++ b/src/state/queries/invites.ts @@ -15,7 +15,8 @@ export type InviteCodesQueryResponse = Exclude< > export function useInviteCodesQuery() { return useQuery({ - staleTime: STALE.HOURS.ONE, + staleTime: STALE.MINUTES.FIVE, + refetchInterval: STALE.MINUTES.FIVE, queryKey: ['inviteCodes'], queryFn: async () => { const res = await getAgent() diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index 620d5686..872bb21a 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -28,8 +28,9 @@ export const preferencesQueryKey = ['getPreferences'] export function usePreferencesQuery() { return useQuery({ - staleTime: STALE.MINUTES.ONE, + staleTime: STALE.SECONDS.FIFTEEN, structuralSharing: true, + refetchInterval: STALE.SECONDS.FIFTEEN, queryKey: preferencesQueryKey, queryFn: async () => { const agent = getAgent() diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts index 267cf2c5..21e519a0 100644 --- a/src/state/queries/profile.ts +++ b/src/state/queries/profile.ts @@ -26,12 +26,18 @@ import {track} from '#/lib/analytics/analytics' export const RQKEY = (did: string) => ['profile', did] export function useProfileQuery({did}: {did: string | undefined}) { + const {currentAccount} = useSession() + const isCurrentAccount = did === currentAccount?.did + return useQuery({ // WARNING // this staleTime is load-bearing // if you remove it, the UI infinite-loops // -prf - staleTime: STALE.MINUTES.FIVE, + staleTime: isCurrentAccount ? STALE.SECONDS.THIRTY : STALE.MINUTES.FIVE, + refetchInterval: isCurrentAccount + ? STALE.SECONDS.THIRTY + : STALE.MINUTES.FIVE, queryKey: RQKEY(did || ''), queryFn: async () => { const res = await getAgent().getProfile({actor: did || ''})