UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

54 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const Gql = tslib_1.__importStar(require("./gql")); const react_1 = tslib_1.__importDefault(require("react")); const react_router_1 = require("react-router"); const context_1 = require("../../context"); const react_router_view_1 = require("../../react-router/react_router_view"); const common_1 = require("../../common"); const login_1 = tslib_1.__importDefault(require("./login")); const mobx_react_1 = require("mobx-react"); exports.LoggedInView = mobx_react_1.observer((props) => { const { routerProps } = props; const ctx = react_1.default.useContext(context_1.Context); const Component = react_1.default.useMemo(() => { const page = common_1.root(props.formElement).pages.find(p => p.uid === props.formElement.props.page); const RouteView = (routerProps) => (react_1.default.createElement(react_router_view_1.PageView, Object.assign({}, routerProps, props, { formElement: page }))); return RouteView; }, [props]); let user = ctx.auth.user; let token = localStorage.getItem(ctx.authToken); if (token && !user) { return (react_1.default.createElement(Gql.ResumeQueryComponent, { variables: { token: localStorage.getItem(ctx.authToken) } }, (result) => { if (result.loading || !result.data) { return react_1.default.createElement("div", null, "Authorising ..."); } else { if (result.error || !result.data.resume.user) { return react_1.default.createElement(login_1.default, null); } else { if (!ctx.auth.user) { ctx.auth.user = result.data.resume.user; ctx.auth.logout = () => { localStorage.removeItem(ctx.authToken); ctx.auth.user = null; }; } return react_1.default.createElement(Component, Object.assign({}, routerProps)); } } })); } else if (user) { return react_1.default.createElement(Component, Object.assign({}, routerProps)); } else { return react_1.default.createElement(login_1.default, null); } }); exports.PrivateReactRouterRoute = props => { return (react_1.default.createElement(react_router_1.Route, { exact: !!props.formElement.props.exact, path: props.formElement.props.path, render: routerProps => react_1.default.createElement(exports.LoggedInView, Object.assign({}, props, { routerProps: routerProps })) })); }; //# sourceMappingURL=auth_view.js.map