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
JavaScript
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