import * as React from 'react'; import { useState } from 'react'; import { useCanAccessCallback } from './useCanAccessCallback'; import { AuthProvider } from '../types'; import { CoreAdminContext } from '../core'; export default { title: 'ra-core/auth/useCanAccessCallback', }; const UseCanAccessCallbackComponent = () => { const checkAccess = useCanAccessCallback(); const [canAccess, setCanAccess] = useState(); const [error, setError] = useState(); return (
{canAccess !== undefined && (
canAccess: {canAccess ? 'YES' : 'NO'}
)} {error && {error.message}}
); }; const defaultAuthProvider: AuthProvider = { login: () => Promise.reject('bad method'), logout: () => Promise.reject('bad method'), checkAuth: () => Promise.reject('bad method'), checkError: () => Promise.reject('bad method'), getPermissions: () => Promise.reject('bad method'), canAccess: ({ action }) => Promise.resolve(action === 'read'), }; export const Basic = ({ authProvider = defaultAuthProvider, }: { authProvider?: AuthProvider | null; }) => ( ); const defaultErrorAuthProvider: AuthProvider = { login: () => Promise.reject('bad method'), logout: () => Promise.reject('bad method'), checkAuth: () => Promise.reject('bad method'), checkError: () => Promise.reject('bad method'), getPermissions: () => Promise.reject('bad method'), canAccess: () => Promise.reject(new Error('uh oh, something went wrong')), }; export const WithError = ({ authProvider = defaultErrorAuthProvider, }: { authProvider?: AuthProvider | null; }) => ( );