UNPKG

@lyra/default-layout

Version:

The default layout components for Lyra

116 lines (85 loc) 3.31 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _loginWrapper = require('part:@lyra/base/login-wrapper?'); var _loginWrapper2 = _interopRequireDefault(_loginWrapper); var _router = require('part:@lyra/base/router'); var _appLoadingScreen = require('part:@lyra/base/app-loading-screen'); var _appLoadingScreen2 = _interopRequireDefault(_appLoadingScreen); var _urlState = require('../datastores/urlState'); var urlStateStore = _interopRequireWildcard(_urlState); var _getOrderedTools = require('../util/getOrderedTools'); var _getOrderedTools2 = _interopRequireDefault(_getOrderedTools); var _defaultLayoutRouter = require('../defaultLayoutRouter'); var _defaultLayoutRouter2 = _interopRequireDefault(_defaultLayoutRouter); var _DefaultLayout = require('./DefaultLayout'); var _DefaultLayout2 = _interopRequireDefault(_DefaultLayout); var _NotFound = require('./NotFound'); var _NotFound2 = _interopRequireDefault(_NotFound); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const handleNavigate = urlStateStore.navigate; class DefaultLayoutContainer extends _react2.default.PureComponent { constructor(...args) { var _temp; return _temp = super(...args), this.state = {}, _temp; } componentWillMount() { (0, _defaultLayoutRouter.maybeRedirectToBase)(); this.urlStateSubscription = urlStateStore.state.subscribe({ next: event => this.setState({ urlState: event.state, isNotFound: event.isNotFound, intent: event.intent }) }); } componentWillUnmount() { this.urlStateSubscription.unsubscribe(); } render() { var _state = this.state; const intent = _state.intent, urlState = _state.urlState, isNotFound = _state.isNotFound; const tools = (0, _getOrderedTools2.default)(); const content = isNotFound ? _react2.default.createElement( _NotFound2.default, null, intent && _react2.default.createElement( 'div', null, 'No tool can handle the intent: ', _react2.default.createElement( 'strong', null, intent.name ), ' with parameters ', _react2.default.createElement( 'pre', null, JSON.stringify(intent.params) ) ) ) : _react2.default.createElement(_DefaultLayout2.default, { tools: tools }); const router = _react2.default.createElement( _router.RouterProvider, { router: _defaultLayoutRouter2.default, state: urlState, onNavigate: handleNavigate }, content ); return _loginWrapper2.default ? _react2.default.createElement( _loginWrapper2.default, { LoadingScreen: _react2.default.createElement(_appLoadingScreen2.default, { text: 'Logging in' }) }, router ) : router; } } exports.default = DefaultLayoutContainer;