diff --git a/src/hooks/useGeneration.ts b/src/hooks/useGeneration.ts index 523452d9..37128a57 100644 --- a/src/hooks/useGeneration.ts +++ b/src/hooks/useGeneration.ts @@ -26,21 +26,30 @@ interface UseGenerationReturn { export function useGeneration({ generationId }: UseGenerationParams = {}): UseGenerationReturn { const _return = useRef({} as UseGenerationReturn); - const { data, isLoading, error } = useSWR( - '/v1/api/generation', - fetcher, - { - revalidateOnFocus: false, - revalidateOnReconnect: false, - revalidateIfStale: false, - }, - ); - - const currentGeneration = - data && data.sort((a, b) => (b.generationId as number) - (a.generationId as number))[0]; + const { + data: generationData, + isLoading: isGenerationLoading, + error: isGenerationError, + } = useSWR('/v1/api/generation', fetcher, { + revalidateOnFocus: false, + revalidateOnReconnect: false, + revalidateIfStale: false, + }); + + const { + data: currentGenerationData, + isLoading: isCurrentGenerationLoading, + error: currentGenerationError, + } = useSWR('/v1/api/generation/current', fetcher, { + revalidateOnFocus: false, + revalidateOnReconnect: false, + revalidateIfStale: false, + }); + + const currentGeneration = currentGenerationData; const targetGeneration = generationId - ? data?.find((generation) => generation.generationId === Number(generationId)) + ? generationData?.find((generation) => generation.generationId === Number(generationId)) : undefined; // @@ -49,9 +58,9 @@ export function useGeneration({ generationId }: UseGenerationParams = {}): UseGe _return.current.currentGeneration = currentGeneration; _return.current.targetGeneration = targetGeneration; - _return.current.generations = data; - _return.current.isGenerationLoading = isLoading; - _return.current.isGenerationError = error; + _return.current.generations = generationData; + _return.current.isGenerationLoading = isGenerationLoading || isCurrentGenerationLoading; + _return.current.isGenerationError = isGenerationError || currentGenerationError; return _return.current; }