import * as React from 'react'; import { TestMemoryRouter, LinkBase } from '../routing'; import { CoreAdmin } from './CoreAdmin'; import { Resource } from './Resource'; import { Browser } from '../storybook/FakeBrowser'; import { QueryClient } from '@tanstack/react-query'; import { AuthProvider } from '../types'; export default { title: 'ra-core/core/NavigateToFirstResource', }; export const NoAuthProvider = () => (
Settings
} />
Posts
} />
Users
} />
); export const AccessControl = () => ( ); const AccessControlAdmin = ({ queryClient }: { queryClient: QueryClient }) => { const [authorizedResources, setAuthorizedResources] = React.useState({ 'posts.list': true, 'users.list': true, }); const authProvider: AuthProvider = { login: () => Promise.reject(new Error('Not implemented')), logout: () => Promise.reject(new Error('Not implemented')), checkAuth: () => Promise.resolve(), checkError: () => Promise.reject(new Error('Not implemented')), getPermissions: () => Promise.resolve(undefined), canAccess: ({ action, resource }) => new Promise(resolve => { setTimeout(() => { resolve(authorizedResources[`${resource}.${action}`]); }, 300); }), }; return ( ( {children} )} >
Settings
} /> (
Posts
Go home
)} /> (
Users
Go home
)} />
); }; const AccessControlUI = ({ children, setAuthorizedResources, authorizedResources, queryClient, }: { children: React.ReactNode; setAuthorizedResources: Function; authorizedResources: { 'posts.list': boolean; 'users.list': boolean; }; queryClient: QueryClient; }) => { return (
{children}
); };