import * as React from 'react'; import { useGetPathForRecord } from './useGetPathForRecord'; import { AuthProvider, CoreAdminContext, RecordContextProvider, ResourceContextProvider, ResourceDefinitionContextProvider, TestMemoryRouter, LinkBase, } from '..'; import { QueryClient } from '@tanstack/react-query'; export default { title: 'ra-core/routing/useGetPathForRecord', }; const EditLink = () => { const path = useGetPathForRecord({ link: 'edit' }); return path ? ( Edit ) : ( Edit no link ); }; const ShowLink = () => { const path = useGetPathForRecord({ link: 'show' }); return path ? ( Show ) : ( Show no link ); }; const InferredLink = () => { const path = useGetPathForRecord(); return path ? Link : No link; }; export const NoAuthProvider = () => (
); export const InferredEditLink = () => (
); export const InferredShowLink = () => (
); export const SlowLoading = () => { const [record, setRecord] = React.useState(undefined); const handleClick = () => { setRecord({ id: 123 }); }; return (
); }; export const AccessControlWithLinkTypeProvided = ({ authProvider = { login: () => Promise.resolve(), logout: () => Promise.resolve(), checkAuth: () => Promise.resolve(), checkError: () => Promise.resolve(), getPermissions: () => Promise.resolve(), canAccess: ({ action }) => new Promise(resolve => setTimeout(resolve, 300, action === 'edit')), }, }: { authProvider?: AuthProvider; }) => (
); export const InferredEditLinkWithAccessControl = () => ( Promise.resolve(), logout: () => Promise.resolve(), checkAuth: () => Promise.resolve(), checkError: () => Promise.resolve(), getPermissions: () => Promise.resolve(), canAccess: ({ action }) => new Promise(resolve => setTimeout(resolve, 300, action === 'edit') ), }} >
); export const InferredShowLinkWithAccessControl = () => ( Promise.resolve(), logout: () => Promise.resolve(), checkAuth: () => Promise.resolve(), checkError: () => Promise.resolve(), getPermissions: () => Promise.resolve(), canAccess: ({ action }) => new Promise(resolve => setTimeout(resolve, 300, action === 'show') ), }} >
);