import * as React from 'react'; import { CoreAdminContext, IsOffline, RecordContextProvider, ReferenceOneFieldBase, ResourceContextProvider, TestMemoryRouter, useIsOffline, useReferenceFieldContext, } from '../..'; import { onlineManager } from '@tanstack/react-query'; export default { title: 'ra-core/controller/field/ReferenceOneFieldBase' }; const defaultDataProvider = { getManyReference: () => Promise.resolve({ data: [{ id: 1, ISBN: '9780393966473', genre: 'novel' }], total: 1, }), } as any; const Wrapper = ({ children, dataProvider = defaultDataProvider }) => ( {children} ); export const Basic = () => ( ); const BookDetails = () => { const { isPending, error, referenceRecord } = useReferenceFieldContext(); if (isPending) { return

Loading...

; } if (error) { return

{error.toString()}

; } if (!referenceRecord) { return

No details found

; } return {referenceRecord.ISBN}; }; const dataProviderWithLoading = { getManyReference: () => new Promise(() => {}), } as any; export const Loading = () => ( ); export const WithRenderProp = ({ dataProvider = defaultDataProvider, }: { dataProvider?: any; }) => { return ( { if (isPending) { return

Loading...

; } if (error) { return (

{error.toString()}

); } return ( {referenceRecord ? referenceRecord.ISBN : ''} ); }} />
); }; export const Offline = () => { return (
You are offline, cannot load data } >

You are offline, the data may be outdated

); }; const SimulateOfflineButton = () => { const isOffline = useIsOffline(); return ( ); }; const RenderChildOnDemand = ({ children }) => { const [showChild, setShowChild] = React.useState(false); return ( <> {showChild &&
{children}
} ); };