ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
115 lines • 4.59 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CoreAdmin = void 0;
var React = __importStar(require("react"));
var CoreAdminContext_1 = require("./CoreAdminContext");
var CoreAdminUI_1 = require("./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>
* );
* };
*/
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_1.CoreAdminContext, { authProvider: authProvider, basename: basename, dataProvider: dataProvider, i18nProvider: i18nProvider, queryClient: queryClient, store: store },
React.createElement(CoreAdminUI_1.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)));
};
exports.CoreAdmin = CoreAdmin;
//# sourceMappingURL=CoreAdmin.js.map
;