import { useQuery } from '@tanstack/react-query' import { profileKeys } from './keys' import type { Profile } from './types' import { get, handleError } from '@/data/fetchers' import { IS_PLATFORM } from '@/lib/constants' import type { ResponseError, UseCustomQueryOptions } 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 }: UseCustomQueryOptions = {}) => { return useQuery({ queryKey: profileKeys.profile(), queryFn: ({ signal }) => getProfile(signal), staleTime: 1000 * 60 * 30, ...options, enabled, }) }