UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

51 lines 2.3 kB
import * as Gql from './gql'; import React from 'react'; import { Route } from 'react-router'; import { Context } from '../../context'; import { PageView } from '../../react-router/react_router_view'; import { root } from '../../common'; import Login from './login'; import { observer } from 'mobx-react'; export const LoggedInView = observer((props) => { const { routerProps } = props; const ctx = React.useContext(Context); const Component = React.useMemo(() => { const page = root(props.formElement).pages.find(p => p.uid === props.formElement.props.page); const RouteView = (routerProps) => (React.createElement(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.createElement(Gql.ResumeQueryComponent, { variables: { token: localStorage.getItem(ctx.authToken) } }, (result) => { if (result.loading || !result.data) { return React.createElement("div", null, "Authorising ..."); } else { if (result.error || !result.data.resume.user) { return React.createElement(Login, 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.createElement(Component, Object.assign({}, routerProps)); } } })); } else if (user) { return React.createElement(Component, Object.assign({}, routerProps)); } else { return React.createElement(Login, null); } }); export const PrivateReactRouterRoute = props => { return (React.createElement(Route, { exact: !!props.formElement.props.exact, path: props.formElement.props.path, render: routerProps => React.createElement(LoggedInView, Object.assign({}, props, { routerProps: routerProps })) })); }; //# sourceMappingURL=auth_view.js.map