import * as React from 'react'; import { Route } from 'react-router'; import { CoreAdmin } from './CoreAdmin'; import { useAuthenticated, useLogin } from '../auth'; import { CustomRoutes } from './CustomRoutes'; import { Resource } from './Resource'; import { FakeBrowserDecorator } from '../storybook/FakeBrowser'; export default { title: 'ra-core/Admin/CustomRoutes/WithLayout', decorators: [FakeBrowserDecorator], parameters: { initialEntries: ['/custom'], }, }; export const WithLayoutCustomRoute = (argsOrProps, context) => { const history = context?.history || argsOrProps.history; return ( } /> ); }; const dataProvider = { getList: () => Promise.resolve({ data: [], total: 0 }), getOne: () => Promise.resolve({ data: { id: 0 } }), getMany: () => Promise.resolve({ data: [] }), getManyReference: () => Promise.resolve({ data: [], total: 0 }), create: () => Promise.resolve({ data: {} }), update: () => Promise.resolve({ data: {} }), delete: () => Promise.resolve({ data: {} }), updateMany: () => Promise.resolve({ data: [] }), deleteMany: () => Promise.resolve({ data: [] }), }; let signedIn = false; const authProvider = { login: () => { signedIn = true; return Promise.resolve({ data: { id: '123' } }); }, logout: () => Promise.resolve(), checkAuth: () => (signedIn ? Promise.resolve() : Promise.reject()), checkError: () => Promise.reject(), getPermissions: () => Promise.resolve(), }; const Login = () => { const login = useLogin(); return (

Login page

); }; const Layout = ({ children }) => (

Layout

{children}
); const PostList = () => (

PostList page

); const CustomWithLayout = () => { useAuthenticated(); return (

Custom page with layout, requiring authentication

); };