UNPKG

@lyra/default-layout

Version:

The default layout components for Lyra

92 lines (72 loc) 2.81 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _router = require('part:@lyra/base/router'); var _ToolSwitcher = require('./styles/ToolSwitcher.css'); var _ToolSwitcher2 = _interopRequireDefault(_ToolSwitcher); var _pluginIcon = require('part:@lyra/base/plugin-icon'); var _pluginIcon2 = _interopRequireDefault(_pluginIcon); var _reactInk = require('react-ink'); var _reactInk2 = _interopRequireDefault(_reactInk); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ToolSwitcher(props) { const tools = props.tools, router = props.router, activeToolName = props.activeToolName, onSwitchTool = props.onSwitchTool; return _react2.default.createElement( 'div', { className: `${_ToolSwitcher2.default.toolSwitcher} ${props.className}` }, _react2.default.createElement( 'ul', { className: _ToolSwitcher2.default.toolList }, tools.map(tool => { const itemClass = activeToolName === tool.name ? _ToolSwitcher2.default.activeItem : _ToolSwitcher2.default.item; const ToolIcon = tool.icon || _pluginIcon2.default; const state = Object.assign({}, router.state, { tool: tool.name }); return _react2.default.createElement( 'li', { key: tool.name, className: itemClass }, _react2.default.createElement( _router.StateLink, { className: _ToolSwitcher2.default.toolLink, state: state, onClick: onSwitchTool }, _react2.default.createElement( 'div', { className: _ToolSwitcher2.default.iconContainer }, _react2.default.createElement(ToolIcon, null) ), _react2.default.createElement( 'div', { className: _ToolSwitcher2.default.toolName }, tool.title || tool.name ), _react2.default.createElement(_reactInk2.default, { duration: 1000, opacity: 0.1, radius: 200 }) ) ); }) ) ); } ToolSwitcher.defaultProps = { className: '' }; ToolSwitcher.propTypes = { activeToolName: _propTypes2.default.string, onSwitchTool: _propTypes2.default.func, className: _propTypes2.default.string, router: _propTypes2.default.shape({ state: _propTypes2.default.object }), tools: _propTypes2.default.arrayOf(_propTypes2.default.shape({ name: _propTypes2.default.string.isRequired, icon: _propTypes2.default.func })) }; exports.default = (0, _router.withRouterHOC)(ToolSwitcher);