tandem-front-end
Version:
Visual editor for web components
73 lines • 2.87 kB
JavaScript
;
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