tandem-front-end
Version:
Visual editor for web components
51 lines (48 loc) • 2.67 kB
JavaScript
"use strict";
/*
TODOS:
- [ ] display expressions within each open file
*/
Object.defineProperty(exports, "__esModule", { value: true });
require("./index.scss");
var React = require("react");
var recompose_1 = require("recompose");
var pane_1 = require("../../../../pane");
var cx = require("classnames");
var path = require("path");
var layers_1 = require("./layers");
var actions_1 = require("../../../../../actions");
var BaseOpenFileComponent = function (_a) {
var dispatch = _a.dispatch, root = _a.root, _b = _a.openFile, temporary = _b.temporary, uri = _b.uri, newContent = _b.newContent, active = _a.active, onClick = _a.onClick, onCloseClick = _a.onCloseClick;
return (React.createElement("div", { className: cx("open-file", { temporary: temporary, active: active, unsaved: !!newContent }) },
React.createElement("div", { className: "label", onClick: onClick },
React.createElement("i", { className: "ion-close", onClick: onCloseClick }),
newContent ? (React.createElement("i", { className: "ion-record", onClick: onCloseClick })) : null,
React.createElement("div", { className: "basename" }, path.basename(uri)),
React.createElement("div", { className: "uri" }, uri)),
React.createElement("div", { className: "layers" },
React.createElement(layers_1.LayersComponent, { dispatch: dispatch, root: root, uri: uri }))));
};
var OpenFileComponent = recompose_1.compose(recompose_1.pure, recompose_1.withHandlers({
onClick: function (_a) {
var dispatch = _a.dispatch, openFile = _a.openFile;
return function (event) {
dispatch(actions_1.openFilesItemClick(openFile.uri, event));
};
},
onCloseClick: function (_a) {
var dispatch = _a.dispatch, openFile = _a.openFile;
return function (event) {
event.stopPropagation();
dispatch(actions_1.openFilesItemCloseClick(openFile.uri));
};
}
}))(BaseOpenFileComponent);
var BaseOpenFilesPaneComponent = function (_a) {
var editorWindows = _a.editorWindows, root = _a.root, dispatch = _a.dispatch;
return (React.createElement(pane_1.PaneComponent, { header: "Open Files", className: "m-open-files-pane" }, root.openFiles.map(function (openFile) {
return (React.createElement(OpenFileComponent, { root: root, key: openFile.uri, openFile: openFile, dispatch: dispatch, active: editorWindows.some(function (editorWindow) { return editorWindow.activeFilePath === openFile.uri; }) }));
})));
};
exports.OpenFilesPaneComponent = recompose_1.compose(recompose_1.pure)(BaseOpenFilesPaneComponent);
//# sourceMappingURL=index.js.map