import * as React from 'react'; import usePermissions from './usePermissions'; import { CoreAdminContext } from '../core'; import { TestMemoryRouter } from '../routing'; import { useLogin, useLogout } from '../auth'; export default { title: 'ra-core/auth/useLogin', }; const getAuthProviderWithLoginAndLogout = () => { let isLoggedIn = false; return { login: () => { isLoggedIn = true; return Promise.resolve(); }, logout: () => { isLoggedIn = false; return Promise.resolve(); }, checkAuth: () => (isLoggedIn ? Promise.resolve() : Promise.reject()), checkError: () => Promise.reject('bad method'), getPermissions: () => new Promise(resolve => setTimeout(resolve, 300, isLoggedIn ? 'admin' : 'guest') ), }; }; const LoginButton = () => { const login = useLogin(); return ; }; const LogoutButton = () => { const logout = useLogout(); return ; }; const UsePermissions = () => { const permissionQueryParams = { retry: false, }; const state = usePermissions({}, permissionQueryParams); return (
{state.isPending ? LOADING : null} {state.permissions ? ( PERMISSIONS: {state.permissions} ) : null} {state.error ? ERROR : null}
); }; export const PermissionsState = () => ( );