@@ -11,6 +11,7 @@ import { Resource } from '../../core/Resource';
1111import { AuthProvider , DataProvider } from '../../types' ;
1212import { ListControllerProps , useListController } from './useListController' ;
1313import { TestMemoryRouter } from '../../routing/TestMemoryRouter' ;
14+ import { useAuthState } from '../..' ;
1415
1516export default {
1617 title : 'ra-core/controller/list/useListController' ,
@@ -42,6 +43,16 @@ const defaultDataProvider = fakeDataProvider(
4243 process . env . NODE_ENV === 'development'
4344) ;
4445
46+ const Dashboard = ( ) => {
47+ useAuthState ( ) ;
48+ return (
49+ < div style = { styles . mainContainer } >
50+ < div > Dashboard view</ div >
51+ < Link to = "/posts" > List</ Link >
52+ </ div >
53+ ) ;
54+ } ;
55+
4556const Posts = ( props : Partial < ListControllerProps > ) => {
4657 const params = useListController ( {
4758 resource : 'posts' ,
@@ -62,6 +73,7 @@ const Posts = (props: Partial<ListControllerProps>) => {
6273 </ ul >
6374 </ div >
6475 ) }
76+ < Link to = "/" > Dashboard</ Link >
6577 </ div >
6678 ) ;
6779} ;
@@ -82,14 +94,16 @@ export const Authenticated = ({
8294 dataProvider ?: DataProvider ;
8395} ) => {
8496 return (
85- < CoreAdminContext
86- dataProvider = { dataProvider }
87- authProvider = { authProvider }
88- >
89- < CoreAdminUI >
90- < Resource name = "posts" list = { Posts } />
91- </ CoreAdminUI >
92- </ CoreAdminContext >
97+ < TestMemoryRouter initialEntries = { [ '/posts' ] } >
98+ < CoreAdminContext
99+ dataProvider = { dataProvider }
100+ authProvider = { authProvider }
101+ >
102+ < CoreAdminUI >
103+ < Resource name = "posts" list = { Posts } />
104+ </ CoreAdminUI >
105+ </ CoreAdminContext >
106+ </ TestMemoryRouter >
93107 ) ;
94108} ;
95109
@@ -101,16 +115,38 @@ export const DisableAuthentication = ({
101115 dataProvider ?: DataProvider ;
102116} ) => {
103117 return (
104- < CoreAdminContext
105- dataProvider = { dataProvider }
106- authProvider = { authProvider }
107- >
108- < CoreAdminUI >
109- < Resource name = "posts" list = { < Posts disableAuthentication /> } />
110- </ CoreAdminUI >
111- </ CoreAdminContext >
118+ < TestMemoryRouter initialEntries = { [ '/posts' ] } >
119+ < CoreAdminContext
120+ dataProvider = { dataProvider }
121+ authProvider = { authProvider }
122+ dashboard = { Dashboard }
123+ >
124+ < CoreAdminUI dashboard = { Dashboard } accessDenied = { AccessDenied } >
125+ < Resource
126+ name = "posts"
127+ list = { < Posts disableAuthentication /> }
128+ />
129+ </ CoreAdminUI >
130+ </ CoreAdminContext >
131+ </ TestMemoryRouter >
112132 ) ;
113133} ;
134+ DisableAuthentication . args = {
135+ authProvider : undefined ,
136+ } ;
137+ DisableAuthentication . argTypes = {
138+ authProvider : {
139+ options : [ 'default' , 'canAccess' ] ,
140+ mapping : {
141+ default : undefined ,
142+ canAccess : {
143+ ...defaultAuthProvider ,
144+ canAccess : ( ) => Promise . resolve ( false ) ,
145+ } ,
146+ } ,
147+ control : { type : 'inline-radio' } ,
148+ } ,
149+ } ;
114150
115151export const CanAccess = ( {
116152 authProviderDelay = 300 ,
0 commit comments