diff options
author | Eric Bailey <git@esb.lol> | 2023-11-16 17:28:50 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-16 15:28:50 -0800 |
commit | 6dfb2a232f89e96c6cca25430afecbce50d08a0f (patch) | |
tree | 52c33ca3693e7514cafe8c6bb2cce68949d275d6 /src/state/queries/handle.ts | |
parent | f89dc6380171db1d402f5e774103355991aafdea (diff) | |
download | voidsky-6dfb2a232f89e96c6cca25430afecbce50d08a0f.tar.zst |
Caching heuristics (#1938)
* Tempfix profile load * First pass at staleTime
Diffstat (limited to 'src/state/queries/handle.ts')
-rw-r--r-- | src/state/queries/handle.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/state/queries/handle.ts b/src/state/queries/handle.ts index 4c3296587..d73e068ec 100644 --- a/src/state/queries/handle.ts +++ b/src/state/queries/handle.ts @@ -2,6 +2,7 @@ import React from 'react' import {useQueryClient, useMutation} from '@tanstack/react-query' import {useSession} from '#/state/session' +import {STALE} from '#/state/queries' const fetchHandleQueryKey = (handleOrDid: string) => ['handle', handleOrDid] const fetchDidQueryKey = (handleOrDid: string) => ['did', handleOrDid] @@ -14,6 +15,7 @@ export function useFetchHandle() { async (handleOrDid: string) => { if (handleOrDid.startsWith('did:')) { const res = await queryClient.fetchQuery({ + staleTime: STALE.MINUTES.FIVE, queryKey: fetchHandleQueryKey(handleOrDid), queryFn: () => agent.getProfile({actor: handleOrDid}), }) @@ -27,11 +29,17 @@ export function useFetchHandle() { export function useUpdateHandleMutation() { const {agent} = useSession() + const queryClient = useQueryClient() return useMutation({ mutationFn: async ({handle}: {handle: string}) => { await agent.updateHandle({handle}) }, + onSuccess(_data, variables) { + queryClient.invalidateQueries({ + queryKey: fetchHandleQueryKey(variables.handle), + }) + }, }) } @@ -42,6 +50,7 @@ export function useFetchDid() { return React.useCallback( async (handleOrDid: string) => { return queryClient.fetchQuery({ + staleTime: STALE.INFINITY, queryKey: fetchDidQueryKey(handleOrDid), queryFn: async () => { let identifier = handleOrDid |