import { useQuery, UseQueryOptions } from '@tanstack/react-query' import { get, handleError } from 'data/fetchers' import { IS_PLATFORM } from 'lib/constants' import type { ResponseError } from 'types' import { profileKeys } from './keys' import type { Profile } from './types' export async function getProfile(signal?: AbortSignal) { const { data, error } = await get('/platform/profile', { signal, headers: { Version: '2' }, }) if (error) handleError(error) if (!IS_PLATFORM) { return { ...data, disabled_features: process.env.NEXT_PUBLIC_DISABLED_FEATURES?.split(',') ?? [], } as Profile } else { return data as Profile } } export type ProfileData = Awaited> export type ProfileError = ResponseError export const useProfileQuery = ({ enabled = true, ...options }: UseQueryOptions = {}) => { return useQuery( profileKeys.profile(), ({ signal }) => getProfile(signal), { staleTime: 1000 * 60 * 30, // default good for 30 mins ...options, enabled, } ) }