import { gql, useQuery, QueryHookOptions } from '@apollo/client'; import { useGraphQLData } from './helper'; export const QUERY_IS_AUTHORIZED = gql` query isAuthorized($action: String!, $object: AuthorizationObject!) { isAuthorized(action: $action, object: $object) } `; export function useIsAuthorizedQuery>(options: QueryHookOptions = {}) { options = Object.assign({ fetchPolicy: 'cache-and-network' }, options); return useQuery(QUERY_IS_AUTHORIZED, options); } export function useIsAuthorized>(options: QueryHookOptions = {}, defaultValue = false) { options = Object.assign({ fetchPolicy: 'cache-and-network' }, options); const { data, loading, error } = useGraphQLData( QUERY_IS_AUTHORIZED, 'isAuthorized', defaultValue, options ); return { isAuthorized: data, loading, error }; }