| 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<any>; |
| } |
|
|
| 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, |
| }; |
| } |
|
|