From 5477a3a8c63a79e1f2ecfe7f3abd870762b848ed Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 11 Oct 2024 15:40:25 -0500 Subject: [PATCH] useInstance: don't go stale --- src/api/hooks/instance/useInstanceV1.ts | 2 +- src/api/hooks/instance/useInstanceV2.ts | 2 +- src/hooks/useInstance.ts | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/api/hooks/instance/useInstanceV1.ts b/src/api/hooks/instance/useInstanceV1.ts index 368256de8..73fa757d3 100644 --- a/src/api/hooks/instance/useInstanceV1.ts +++ b/src/api/hooks/instance/useInstanceV1.ts @@ -3,7 +3,7 @@ import { useQuery, UseQueryOptions } from '@tanstack/react-query'; import { useApi } from 'soapbox/hooks'; import { InstanceV1, instanceV1Schema } from 'soapbox/schemas/instance'; -interface Opts extends Pick, 'enabled' | 'retry' | 'retryOnMount'> { +interface Opts extends Pick, 'enabled' | 'retry' | 'retryOnMount' | 'staleTime'> { /** The base URL of the instance. */ baseUrl?: string; } diff --git a/src/api/hooks/instance/useInstanceV2.ts b/src/api/hooks/instance/useInstanceV2.ts index 3cc7f12c2..8e9b8ab24 100644 --- a/src/api/hooks/instance/useInstanceV2.ts +++ b/src/api/hooks/instance/useInstanceV2.ts @@ -3,7 +3,7 @@ import { useQuery, UseQueryOptions } from '@tanstack/react-query'; import { useApi } from 'soapbox/hooks'; import { InstanceV2, instanceV2Schema } from 'soapbox/schemas/instance'; -interface Opts extends Pick, 'enabled' | 'retry' | 'retryOnMount'> { +interface Opts extends Pick, 'enabled' | 'retry' | 'retryOnMount' | 'staleTime'> { /** The base URL of the instance. */ baseUrl?: string; } diff --git a/src/hooks/useInstance.ts b/src/hooks/useInstance.ts index d23ac36bf..940fc2b6c 100644 --- a/src/hooks/useInstance.ts +++ b/src/hooks/useInstance.ts @@ -8,14 +8,14 @@ import { instanceV2Schema, upgradeInstance } from 'soapbox/schemas/instance'; import { useAppDispatch } from './useAppDispatch'; -interface Opts extends Pick, 'enabled' | 'retryOnMount'> { +interface Opts extends Pick, 'enabled' | 'retryOnMount' | 'staleTime'> { /** The base URL of the instance. */ baseUrl?: string; } /** Get the Instance for the current backend. */ export function useInstance(opts: Opts = {}) { - const { baseUrl, retryOnMount = false } = opts; + const { baseUrl, retryOnMount = false, staleTime = Infinity } = opts; function retry(failureCount: number, error: Error): boolean { if (error instanceof HTTPError && error.response.status === 404) { @@ -25,8 +25,8 @@ export function useInstance(opts: Opts = {}) { } } - const v2 = useInstanceV2({ baseUrl, retry, retryOnMount }); - const v1 = useInstanceV1({ baseUrl, retry, retryOnMount, enabled: v2.isError }); + const v2 = useInstanceV2({ baseUrl, retry, retryOnMount, staleTime }); + const v1 = useInstanceV1({ baseUrl, retry, retryOnMount, staleTime, enabled: v2.isError }); const instance = useMemo(() => { if (v2.instance) {