Skip to content

Commit 129c5e3

Browse files
committed
Allow Offline to work outside of a ResourceContext
1 parent c9c12d3 commit 129c5e3

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

packages/ra-core/src/i18n/useResourceTranslation.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,18 @@ export const useResourceTranslation = (
1313
}
1414
return translate(userText, { _: userText, ...options });
1515
}
16+
if (!resourceI18nKey) {
17+
return translate(baseI18nKey, options);
18+
}
1619

17-
const translatedText = translate(resourceI18nKey, {
20+
return translate(resourceI18nKey, {
1821
...options,
1922
_: translate(baseI18nKey, options),
2023
});
21-
22-
return translatedText;
2324
};
2425

2526
export interface UseResourceTranslationOptions {
26-
resourceI18nKey: string;
27+
resourceI18nKey?: string;
2728
baseI18nKey: string;
2829
userText?: ReactNode;
2930
options?: Record<string, any>;

packages/ra-ui-materialui/src/Offline.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,15 @@ export const Offline = (props: Offline) => {
1717
const { icon, message: messageProp, variant = 'standard', ...rest } = props;
1818
const resource = useResourceContext(props);
1919
const getResourceLabel = useGetResourceLabel();
20-
if (!resource) {
21-
throw new Error(
22-
'<Offline> must be used inside a <Resource> component or provided a resource prop'
23-
);
24-
}
20+
2521
const message = useResourceTranslation({
2622
baseI18nKey: 'ra.notification.offline',
27-
resourceI18nKey: `resources.${resource}.notification.offline`,
23+
resourceI18nKey: resource
24+
? `resources.${resource}.notification.offline`
25+
: undefined,
2826
userText: messageProp,
2927
options: {
30-
name: getResourceLabel(resource, 0),
28+
name: resource ? getResourceLabel(resource, 0) : undefined,
3129
_: 'No connectivity. Could not fetch data.',
3230
},
3331
});

0 commit comments

Comments
 (0)