@fakel/rest-admin
Version:
An application that makes it easier to work with your API
34 lines (33 loc) • 1.65 kB
JavaScript
import { observer } from 'mobx-react';
import React, { useEffect } from 'react';
import { Route, Switch } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';
import { LoginPage } from '../../pages';
import { useCurrentResource } from '../../hooks/useCurrentResource';
import { createResourceRouter } from '../Resource/ResourceRouter';
import { createDefaultResource } from '../Resource/DefaultResource';
import { useResourceStore } from '../../hooks';
import { useAuthStore } from '../../hooks/useAuthStore';
import { useAuthProviderStore } from '../../hooks/useAuthProviderStore';
var AdminRouter = observer(function (_a) {
var customRoutes = _a.customRoutes, customLoginPage = _a.customLoginPage, defaultView = _a.defaultView;
var resourceStore = useResourceStore();
var authStore = useAuthStore();
var authStoreProvider = useAuthProviderStore();
var authProvider = authStoreProvider.authProvider;
var currentResource = useCurrentResource().currentResource;
var defaultResource = resourceStore.getFirstResource();
useEffect(function () {
if (authProvider) {
authProvider.checkAuth().then(function (isAuth) {
authStore.setIsAuth(isAuth);
});
}
}, [authStore.isAuth]);
return (React.createElement(Switch, { key: uuidv4() },
React.createElement(Route, { key: uuidv4(), exact: true, path: "/login", component: customLoginPage || LoginPage }),
createResourceRouter(currentResource),
createDefaultResource({ defaultView: defaultView, defaultResource: defaultResource }),
customRoutes));
});
export default AdminRouter;