Skip to content

Commit f9586d4

Browse files
committed
Add theme provider to reference fields stories to test theming.
1 parent 016bb6a commit f9586d4

File tree

2 files changed

+87
-56
lines changed

2 files changed

+87
-56
lines changed

packages/ra-ui-materialui/src/field/ReferenceField.stories.tsx

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ import {
1717
import fakeRestDataProvider from 'ra-data-fakerest';
1818
import polyglotI18nProvider from 'ra-i18n-polyglot';
1919
import englishMessages from 'ra-language-english';
20-
import { ThemeProvider, Stack } from '@mui/material';
21-
import { createTheme } from '@mui/material/styles';
20+
import { Stack } from '@mui/material';
2221

2322
import { TextField } from '../field';
2423
import { ReferenceField } from './ReferenceField';
@@ -27,6 +26,12 @@ import { ReferenceInput } from '../input/ReferenceInput';
2726
import { SimpleShowLayout } from '../detail/SimpleShowLayout';
2827
import { Datagrid } from '../list/datagrid/Datagrid';
2928
import { AdminUI, AdminContext } from '../';
29+
import {
30+
defaultDarkTheme,
31+
defaultLightTheme,
32+
ThemeProvider,
33+
ThemesContext,
34+
} from '../theme';
3035
import { List } from '../list';
3136
import { EditGuesser, ShowGuesser } from '../detail';
3237
import { QueryClient } from '@tanstack/react-query';
@@ -72,19 +77,30 @@ const Wrapper = ({
7277
dataProvider = defaultDataProvider,
7378
record = defaultRecord,
7479
resourceDefinitions = defaultResourceDefinitions,
80+
defaultTheme = 'light',
7581
}: any) => (
7682
<TestMemoryRouter initialEntries={['/books/1/show']}>
77-
<CoreAdminContext dataProvider={dataProvider}>
78-
<ResourceDefinitionContextProvider
79-
definitions={resourceDefinitions}
80-
>
81-
<ResourceContextProvider value="books">
82-
<RecordContextProvider value={record}>
83-
{children}
84-
</RecordContextProvider>
85-
</ResourceContextProvider>
86-
</ResourceDefinitionContextProvider>
87-
</CoreAdminContext>
83+
<ThemesContext.Provider
84+
value={{
85+
lightTheme: defaultLightTheme,
86+
darkTheme: defaultDarkTheme,
87+
defaultTheme: defaultTheme as 'dark' | 'light',
88+
}}
89+
>
90+
<ThemeProvider>
91+
<CoreAdminContext dataProvider={dataProvider}>
92+
<ResourceDefinitionContextProvider
93+
definitions={resourceDefinitions}
94+
>
95+
<ResourceContextProvider value="books">
96+
<RecordContextProvider value={record}>
97+
{children}
98+
</RecordContextProvider>
99+
</ResourceContextProvider>
100+
</ResourceDefinitionContextProvider>
101+
</CoreAdminContext>
102+
</ThemeProvider>
103+
</ThemesContext.Provider>
88104
</TestMemoryRouter>
89105
);
90106

@@ -361,21 +377,19 @@ export const InShowLayout = () => (
361377
);
362378

363379
const ListWrapper = ({ children }) => (
364-
<ThemeProvider theme={createTheme()}>
365-
<Wrapper>
366-
<ListContextProvider
367-
value={
368-
{
369-
total: 1,
370-
data: [{ id: 1, title: 'War and Peace', detail_id: 1 }],
371-
sort: { field: 'title', order: 'ASC' },
372-
} as any
373-
}
374-
>
375-
{children}
376-
</ListContextProvider>
377-
</Wrapper>
378-
</ThemeProvider>
380+
<Wrapper>
381+
<ListContextProvider
382+
value={
383+
{
384+
total: 1,
385+
data: [{ id: 1, title: 'War and Peace', detail_id: 1 }],
386+
sort: { field: 'title', order: 'ASC' },
387+
} as any
388+
}
389+
>
390+
{children}
391+
</ListContextProvider>
392+
</Wrapper>
379393
);
380394

381395
export const InDatagrid = () => (

packages/ra-ui-materialui/src/field/ReferenceOneField.stories.tsx

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import {
1515
import fakeRestDataProvider from 'ra-data-fakerest';
1616
import polyglotI18nProvider from 'ra-i18n-polyglot';
1717
import englishMessages from 'ra-language-english';
18-
import { ThemeProvider, Stack } from '@mui/material';
19-
import { createTheme } from '@mui/material/styles';
18+
import { Stack } from '@mui/material';
2019

2120
import {
2221
ReferenceOneField,
@@ -34,6 +33,12 @@ import {
3433
TextField,
3534
TextInput,
3635
} from '..';
36+
import {
37+
defaultLightTheme,
38+
defaultDarkTheme,
39+
ThemeProvider,
40+
ThemesContext,
41+
} from '../theme';
3742

3843
export default { title: 'ra-ui-materialui/fields/ReferenceOneField' };
3944

@@ -64,17 +69,31 @@ const defaultDataProvider = {
6469
}),
6570
} as any;
6671

67-
const Wrapper = ({ children, dataProvider = defaultDataProvider }) => (
72+
const Wrapper = ({
73+
children,
74+
dataProvider = defaultDataProvider,
75+
defaultTheme = 'light',
76+
}) => (
6877
<TestMemoryRouter initialEntries={['/books/1/show']}>
69-
<CoreAdminContext dataProvider={dataProvider}>
70-
<ResourceContextProvider value="books">
71-
<RecordContextProvider
72-
value={{ id: 1, title: 'War and Peace' }}
73-
>
74-
{children}
75-
</RecordContextProvider>
76-
</ResourceContextProvider>
77-
</CoreAdminContext>
78+
<ThemesContext.Provider
79+
value={{
80+
lightTheme: defaultLightTheme,
81+
darkTheme: defaultDarkTheme,
82+
defaultTheme: defaultTheme as 'dark' | 'light',
83+
}}
84+
>
85+
<ThemeProvider>
86+
<CoreAdminContext dataProvider={dataProvider}>
87+
<ResourceContextProvider value="books">
88+
<RecordContextProvider
89+
value={{ id: 1, title: 'War and Peace' }}
90+
>
91+
{children}
92+
</RecordContextProvider>
93+
</ResourceContextProvider>
94+
</CoreAdminContext>
95+
</ThemeProvider>
96+
</ThemesContext.Provider>
7897
</TestMemoryRouter>
7998
);
8099

@@ -308,22 +327,20 @@ export const InShowLayout = () => (
308327
);
309328

310329
const ListWrapper = ({ children }) => (
311-
<ThemeProvider theme={createTheme()}>
312-
<Wrapper>
313-
<ListContextProvider
314-
value={
315-
{
316-
total: 1,
317-
data: [{ id: 1, title: 'War and Peace' }],
318-
sort: { field: 'id', order: 'ASC' },
319-
setSort: () => {},
320-
} as any
321-
}
322-
>
323-
{children}
324-
</ListContextProvider>
325-
</Wrapper>
326-
</ThemeProvider>
330+
<Wrapper>
331+
<ListContextProvider
332+
value={
333+
{
334+
total: 1,
335+
data: [{ id: 1, title: 'War and Peace' }],
336+
sort: { field: 'id', order: 'ASC' },
337+
setSort: () => {},
338+
} as any
339+
}
340+
>
341+
{children}
342+
</ListContextProvider>
343+
</Wrapper>
327344
);
328345

329346
export const InDatagrid = () => (

0 commit comments

Comments
 (0)