UNPKG

tandem-front-end

Version:

Visual editor for web components

73 lines 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("./index.scss"); var React = require("react"); var path = require("path"); var cx = require("classnames"); var recompose_1 = require("recompose"); var actions_1 = require("actions"); var state_1 = require("../../../../../state"); var EditorTab = require("./tab.pc").EditorTab; exports.default = recompose_1.compose(recompose_1.pure, recompose_1.withHandlers({ onTabClick: function (_a) { var dispatch = _a.dispatch; return function (uri) { dispatch(actions_1.editorTabClicked(uri)); }; }, onTabCloseButtonClick: function (_a) { var dispatch = _a.dispatch; return function (uri, event) { dispatch(actions_1.editorTabCloseButtonClicked(uri)); event.stopPropagation(); }; }, onPointerClick: function (_a) { var dispatch = _a.dispatch; return function () { dispatch(actions_1.toolbarToolClicked(state_1.ToolType.POINTER)); }; }, onTextClick: function (_a) { var dispatch = _a.dispatch; return function () { dispatch(actions_1.toolbarToolClicked(state_1.ToolType.TEXT)); }; }, onComponentClick: function (_a) { var dispatch = _a.dispatch; return function () { dispatch(actions_1.toolbarToolClicked(state_1.ToolType.COMPONENT)); }; }, onElementClick: function (_a) { var dispatch = _a.dispatch; return function () { dispatch(actions_1.toolbarToolClicked(state_1.ToolType.ELEMENT)); }; } }), function (Base) { return function (_a) { var editorWindow = _a.editorWindow, onTabClick = _a.onTabClick, onTabCloseButtonClick = _a.onTabCloseButtonClick, onPointerClick = _a.onPointerClick, onTextClick = _a.onTextClick, onComponentClick = _a.onComponentClick, onElementClick = _a.onElementClick; var tabs = editorWindow.tabUris.map(function (uri) { return (React.createElement(EditorTab, { className: cx("tab", { selected: editorWindow.activeFilePath === uri }), xButtonProps: { className: "x-button", onClick: function (event) { return onTabCloseButtonClick(uri, event); } }, labelProps: { text: path.basename(uri) }, key: uri, onClick: function () { return onTabClick(uri); } })); }); return (React.createElement(Base, { className: "m-toolbar", pointerProps: { onClick: onPointerClick }, textProps: { onClick: onTextClick }, componentProps: { onClick: onComponentClick }, elementProps: { onClick: onElementClick }, tabsProps: { children: tabs } })); }; }); //# sourceMappingURL=controller.js.map