UNPKG

ra-core

Version:

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

88 lines 3.39 kB
import * as React from 'react'; import { CoreAdminContext } from './CoreAdminContext'; import { CoreAdminUI } from './CoreAdminUI'; /** * Main admin component, entry point to the application. * * Initializes the various contexts (auth, data, i18n, router) * and defines the main routes. * * Expects a list of resources as children, or a function returning a list of * resources based on the permissions. * * @example * * // static list of resources * * import { * CoreAdmin, * Resource, * ListGuesser, * useDataProvider, * } from 'ra-core'; * * const App = () => ( * <CoreAdmin dataProvider={myDataProvider}> * <Resource name="posts" list={ListGuesser} /> * </CoreAdmin> * ); * * // dynamic list of resources based on permissions * * import { * CoreAdmin, * Resource, * ListGuesser, * useDataProvider, * } from 'ra-core'; * * const App = () => ( * <CoreAdmin dataProvider={myDataProvider}> * {permissions => [ * <Resource name="posts" key="posts" list={ListGuesser} />, * ]} * </CoreAdmin> * ); * * // If you have to build a dynamic list of resources using a side effect, * // you can't use <CoreAdmin>. But as it delegates to sub components, * // it's relatively straightforward to replace it: * * import * as React from 'react'; * import { useEffect, useState } from 'react'; * import { * CoreAdminContext, * CoreAdminUI, * Resource, * ListGuesser, * useDataProvider, * } from 'ra-core'; * * const App = () => ( * <CoreAdminContext dataProvider={myDataProvider}> * <UI /> * </CoreAdminContext> * ); * * const UI = () => { * const [resources, setResources] = useState([]); * const dataProvider = useDataProvider(); * useEffect(() => { * dataProvider.introspect().then(r => setResources(r)); * }, []); * * return ( * <CoreAdminUI> * {resources.map(resource => ( * <Resource name={resource.name} key={resource.key} list={ListGuesser} /> * ))} * </CoreAdminUI> * ); * }; */ export var CoreAdmin = function (props) { var accessDenied = props.accessDenied, authenticationError = props.authenticationError, authProvider = props.authProvider, basename = props.basename, catchAll = props.catchAll, children = props.children, dashboard = props.dashboard, dataProvider = props.dataProvider, disableTelemetry = props.disableTelemetry, error = props.error, i18nProvider = props.i18nProvider, layout = props.layout, loading = props.loading, loginPage = props.loginPage, queryClient = props.queryClient, ready = props.ready, requireAuth = props.requireAuth, store = props.store, _a = props.title, title = _a === void 0 ? 'React Admin' : _a; return (React.createElement(CoreAdminContext, { authProvider: authProvider, basename: basename, dataProvider: dataProvider, i18nProvider: i18nProvider, queryClient: queryClient, store: store }, React.createElement(CoreAdminUI, { accessDenied: accessDenied, authenticationError: authenticationError, catchAll: catchAll, dashboard: dashboard, disableTelemetry: disableTelemetry, error: error, layout: layout, loading: loading, loginPage: loginPage, ready: ready, requireAuth: requireAuth, title: title }, children))); }; //# sourceMappingURL=CoreAdmin.js.map