Skip to content

Commit b87aed7

Browse files
committed
Apply review suggestions
1 parent fd94c6a commit b87aed7

File tree

7 files changed

+51
-46
lines changed

7 files changed

+51
-46
lines changed

examples/simple/src/Layout.tsx

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from 'react-admin';
1010
import { onlineManager, useQueryClient } from '@tanstack/react-query';
1111
import { Stack, Tooltip } from '@mui/material';
12-
import CircleIcon from '@mui/icons-material/Circle';
12+
import OfflineIcon from '@mui/icons-material/SignalWifiConnectedNoInternet4';
1313
import '../assets/app.css';
1414

1515
const MyAppBar = () => {
@@ -18,44 +18,45 @@ const MyAppBar = () => {
1818
<AppBar>
1919
<TitlePortal />
2020
<Stack direction="row" spacing={1}>
21-
<Tooltip title={isOnline ? 'Online' : 'Offline'}>
22-
<CircleIcon
23-
sx={{
24-
color: isOnline ? 'success.main' : 'warning.main',
25-
width: 24,
26-
height: 24,
27-
}}
28-
/>
29-
</Tooltip>
21+
{!isOnline ? (
22+
<Tooltip title="Offline">
23+
<OfflineIcon
24+
sx={{
25+
color: 'warning.main',
26+
width: 24,
27+
height: 24,
28+
}}
29+
/>
30+
</Tooltip>
31+
) : null}
3032
</Stack>
3133
<InspectorButton />
3234
</AppBar>
3335
);
3436
};
3537

36-
export default ({ children }) => {
37-
return (
38-
<>
39-
<Layout appBar={MyAppBar}>
40-
{children}
41-
<NotificationsFromQueryClient />
42-
</Layout>
43-
<ReactQueryDevtools
44-
initialIsOpen={false}
45-
buttonPosition="bottom-left"
46-
/>
47-
</>
48-
);
49-
};
38+
export const MyLayout = ({ children }) => (
39+
<>
40+
<Layout appBar={MyAppBar}>
41+
{children}
42+
<NotificationsFromQueryClient />
43+
</Layout>
44+
<ReactQueryDevtools
45+
initialIsOpen={false}
46+
buttonPosition="bottom-left"
47+
/>
48+
</>
49+
);
5050

5151
const useIsOnline = () => {
5252
const [isOnline, setIsOnline] = React.useState(onlineManager.isOnline());
53+
5354
React.useEffect(() => {
54-
const handleChange = isOnline => {
55-
setIsOnline(isOnline);
55+
const handleChange = () => {
56+
setIsOnline(onlineManager.isOnline());
5657
};
5758
return onlineManager.subscribe(handleChange);
58-
});
59+
}, []);
5960

6061
return isOnline;
6162
};
@@ -69,12 +70,15 @@ const NotificationsFromQueryClient = () => {
6970
const queryClient = useQueryClient();
7071
const notify = useNotify();
7172

72-
queryClient.setMutationDefaults([], {
73-
onSettled(data, error) {
74-
if (error) {
75-
notify(error.message, { type: 'error' });
76-
}
77-
},
78-
});
73+
React.useEffect(() => {
74+
queryClient.setMutationDefaults([], {
75+
onSettled(data, error) {
76+
if (error) {
77+
notify(error.message, { type: 'error' });
78+
}
79+
},
80+
});
81+
}, [queryClient, notify]);
82+
7983
return null;
8084
};

examples/simple/src/index.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import CustomRouteLayout from './customRouteLayout';
1616
import CustomRouteNoLayout from './customRouteNoLayout';
1717
import dataProvider from './dataProvider';
1818
import i18nProvider from './i18nProvider';
19-
import Layout from './Layout';
19+
import { MyLayout } from './Layout';
2020
import posts from './posts';
2121
import users from './users';
2222
import tags from './tags';
@@ -26,7 +26,7 @@ const localStoragePersister = createSyncStoragePersister({
2626
storage: window.localStorage,
2727
});
2828

29-
addOfflineSupportToQueryClient({
29+
const queryClientWithOfflineSupport = addOfflineSupportToQueryClient({
3030
queryClient,
3131
dataProvider,
3232
resources: ['posts', 'comments', 'tags', 'users'],
@@ -38,20 +38,20 @@ const root = createRoot(container);
3838
root.render(
3939
<React.StrictMode>
4040
<PersistQueryClientProvider
41-
client={queryClient}
41+
client={queryClientWithOfflineSupport}
4242
persistOptions={{ persister: localStoragePersister }}
4343
onSuccess={() => {
4444
// resume mutations after initial restore from localStorage is successful
45-
queryClient.resumePausedMutations();
45+
queryClientWithOfflineSupport.resumePausedMutations();
4646
}}
4747
>
4848
<Admin
4949
authProvider={authProvider}
5050
dataProvider={dataProvider}
5151
i18nProvider={i18nProvider}
52-
queryClient={queryClient}
52+
queryClient={queryClientWithOfflineSupport}
5353
title="Example Admin"
54-
layout={Layout}
54+
layout={MyLayout}
5555
>
5656
<Resource name="posts" {...posts} />
5757
<Resource name="comments" {...comments} />

examples/simple/src/posts/PostCreate.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import { Link, useSearchParams } from 'react-router-dom';
4646
let next_id = 100;
4747
const getNewId = (mutationMode: MutationMode) => {
4848
const id = mutationMode === 'pessimistic' ? undefined : next_id++;
49-
console.log({ mutationMode, id });
5049
return id;
5150
};
5251

packages/ra-core/src/dataProvider/addOfflineSupportToQueryClient.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { QueryClient } from '@tanstack/react-query';
2-
import { reactAdminMutations } from './dataFetchActions';
2+
import { DataProviderMutations } from './dataFetchActions';
33
import type { DataProvider } from '../types';
44

55
/**
@@ -90,7 +90,7 @@ export const addOfflineSupportToQueryClient = ({
9090
queryClient: QueryClient;
9191
}) => {
9292
resources.forEach(resource => {
93-
reactAdminMutations.forEach(mutation => {
93+
DataProviderMutations.forEach(mutation => {
9494
queryClient.setMutationDefaults([resource, mutation], {
9595
mutationFn: async params => {
9696
const dataProviderFn = dataProvider[mutation] as Function;
@@ -99,4 +99,6 @@ export const addOfflineSupportToQueryClient = ({
9999
});
100100
});
101101
});
102+
103+
return queryClient;
102104
};

packages/ra-core/src/dataProvider/dataFetchActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export const UPDATE_MANY = 'UPDATE_MANY';
88
export const DELETE = 'DELETE';
99
export const DELETE_MANY = 'DELETE_MANY';
1010

11-
export const reactAdminMutations = [
11+
export const DataProviderMutations = [
1212
'create',
1313
'delete',
1414
'update',

packages/ra-core/src/dataProvider/useGetList.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ export const useGetList = <
176176
}
177177
: result,
178178
[result]
179-
) as unknown as UseQueryResult<RecordType[], Error> & {
179+
) as UseQueryResult<RecordType[], Error> & {
180180
total?: number;
181181
pageInfo?: {
182182
hasNextPage?: boolean;

packages/ra-core/src/dataProvider/useGetManyReference.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ export const useGetManyReference = <
155155
}
156156
: result,
157157
[result]
158-
) as unknown as UseQueryResult<RecordType[], ErrorType> & {
158+
) as UseQueryResult<RecordType[], ErrorType> & {
159159
total?: number;
160160
pageInfo?: {
161161
hasNextPage?: boolean;

0 commit comments

Comments
 (0)