import { useAuthContext } from '~/hooks/AuthContext'; import { useGraphTokenQuery, useGetStartupConfig } from '~/data-provider'; interface UseSharePointTokenProps { enabled?: boolean; purpose: 'Pick' | 'Download'; } interface UseSharePointTokenReturn { token: any; isLoading: boolean; error: any; refetch: () => Promise; } export default function useSharePointToken({ enabled = true, purpose, }: UseSharePointTokenProps): UseSharePointTokenReturn { const { user } = useAuthContext(); const { data: startupConfig } = useGetStartupConfig(); const sharePointBaseUrl = startupConfig?.sharePointBaseUrl; const sharePointPickerGraphScope = startupConfig?.sharePointPickerGraphScope; const sharePointPickerSharePointScope = startupConfig?.sharePointPickerSharePointScope; const isEntraIdUser = user?.provider === 'openid'; const graphScopes = purpose === 'Pick' ? sharePointPickerSharePointScope : sharePointPickerGraphScope; const { data: token, isLoading, error, refetch, } = useGraphTokenQuery({ scopes: graphScopes, enabled: enabled && isEntraIdUser && !!sharePointBaseUrl, }); return { token, isLoading, error, refetch, }; }