Spaces:
Build error
Build error
| import { useQuery } from "@tanstack/react-query"; | |
| import axios, { AxiosError } from "axios"; | |
| import OpenHands from "#/api/open-hands"; | |
| import { useConfig } from "./use-config"; | |
| import { useIsOnTosPage } from "#/hooks/use-is-on-tos-page"; | |
| export const useIsAuthed = () => { | |
| const { data: config } = useConfig(); | |
| const isOnTosPage = useIsOnTosPage(); | |
| const appMode = config?.APP_MODE; | |
| return useQuery({ | |
| queryKey: ["user", "authenticated", appMode], | |
| queryFn: async () => { | |
| try { | |
| // If in OSS mode or authentication succeeds, return true | |
| await OpenHands.authenticate(appMode!); | |
| return true; | |
| } catch (error) { | |
| // If it's a 401 error, return false (not authenticated) | |
| if (axios.isAxiosError(error)) { | |
| const axiosError = error as AxiosError; | |
| if (axiosError.response?.status === 401) { | |
| return false; | |
| } | |
| } | |
| // For any other error, throw it to put the query in error state | |
| throw error; | |
| } | |
| }, | |
| enabled: !!appMode && !isOnTosPage, | |
| staleTime: 1000 * 60 * 5, // 5 minutes | |
| gcTime: 1000 * 60 * 15, // 15 minutes | |
| retry: false, | |
| meta: { | |
| disableToast: true, | |
| }, | |
| }); | |
| }; | |