UNPKG

ra-core

Version:

Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React

38 lines 2.74 kB
import * as React from 'react'; import { useMemo } from 'react'; import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; import { AdminRouter, RouterProviderContext, reactRouterProvider, } from "../routing/index.js"; import { AuthContext, convertLegacyAuthProvider } from "../auth/index.js"; import { DataProviderContext, UndoableMutationsContextProvider, convertLegacyDataProvider, defaultDataProvider, } from "../dataProvider/index.js"; import { StoreContextProvider, memoryStore } from "../store/index.js"; import { PreferencesEditorContextProvider } from "../preferences/PreferencesEditorContextProvider.js"; import { I18nContextProvider } from "../i18n/index.js"; import { ResourceDefinitionContextProvider } from "./ResourceDefinitionContext.js"; import { NotificationContextProvider } from "../notification/index.js"; const defaultStore = memoryStore(); export const CoreAdminContext = (props) => { const { authProvider, basename, dataProvider = defaultDataProvider, i18nProvider, store = defaultStore, children, queryClient, routerProvider = reactRouterProvider, } = props; if (!dataProvider) { throw new Error(`Missing dataProvider prop. React-admin requires a valid dataProvider function to work.`); } const finalQueryClient = useMemo(() => queryClient || new QueryClient(), [queryClient]); const finalAuthProvider = useMemo(() => authProvider instanceof Function ? convertLegacyAuthProvider(authProvider) : authProvider, [authProvider]); const finalDataProvider = useMemo(() => dataProvider instanceof Function ? convertLegacyDataProvider(dataProvider) : dataProvider, [dataProvider]); return (React.createElement(RouterProviderContext.Provider, { value: routerProvider }, React.createElement(AuthContext.Provider, { value: finalAuthProvider }, React.createElement(DataProviderContext.Provider, { value: finalDataProvider }, React.createElement(StoreContextProvider, { value: store }, React.createElement(PreferencesEditorContextProvider, null, React.createElement(QueryClientProvider, { client: finalQueryClient }, React.createElement(AdminRouter, { basename: basename }, React.createElement(I18nContextProvider, { value: i18nProvider }, React.createElement(NotificationContextProvider, null, React.createElement(UndoableMutationsContextProvider, null, React.createElement(ResourceDefinitionContextProvider, null, children)))))))))))); }; //# sourceMappingURL=CoreAdminContext.js.map