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
} />
(
)}
/>
(
)}
/>
);
};
const AccessControlUI = ({
children,
setAuthorizedResources,
authorizedResources,
queryClient,
}: {
children: React.ReactNode;
setAuthorizedResources: Function;
authorizedResources: {
'posts.list': boolean;
'users.list': boolean;
};
queryClient: QueryClient;
}) => {
return (
);
};