UNPKG

d2-ui

Version:
77 lines (61 loc) 2.55 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } import React from 'react'; import { render } from 'react-dom'; import { init } from 'd2/lib/d2'; import HeaderBar from './HeaderBar'; import withStateFrom from '../component-helpers/withStateFrom'; import headerBarStore$ from './headerBar.store'; import D2UIApp from '../app/D2UIApp'; function getBaseUrl(predefLocation) { if (predefLocation) { return predefLocation; } return '../api'; } export function initHeaderBar(domElement, apiLocation) { var config = arguments.length <= 2 || arguments[2] === undefined ? { noSchemas: true } : arguments[2]; var baseUrl = getBaseUrl(apiLocation); var noLoadingIndicator = config.noLoadingIndicator; var d2ConfigKeys = _objectWithoutProperties(config, ['noLoadingIndicator']); var d2Config = _extends({}, d2ConfigKeys, { baseUrl: baseUrl }); // Mock d2 for offline header-bar var d2Context = { currentUser: { userSettings: {} }, i18n: { getTranslation: function getTranslation(v) { return v; } } }; var HeaderBarWithState = withStateFrom(headerBarStore$, HeaderBar); var HeaderBarWithContext = React.createClass({ displayName: 'HeaderBarWithContext', childContextTypes: { d2: React.PropTypes.object }, getChildContext: function getChildContext() { return { d2: d2Context }; }, render: function render() { return React.createElement( D2UIApp, null, React.createElement(HeaderBarWithState, { noLoadingIndicator: noLoadingIndicator }) ); } }); return init(d2Config).then(function (d2) { d2Context = d2; render(React.createElement(HeaderBarWithContext, null), domElement); return Promise.resolve(); }, function (err) { render(React.createElement(HeaderBarWithContext, null), domElement); return Promise.reject(err); }); } export default initHeaderBar;