UNPKG

tandem-front-end

Version:

Visual editor for web components

43 lines 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var recompose_1 = require("recompose"); var ComponentOption = require("./cell.pc").ComponentOption; var paperclip_1 = require("paperclip"); var actions_1 = require("../../actions"); exports.default = recompose_1.compose(recompose_1.pure, recompose_1.withState("filter", "setFilter", []), recompose_1.withHandlers({ onFilterChange: function (_a) { var setFilter = _a.setFilter; return function (value) { setFilter((value || "").split(" ")); }; }, onClickComponent: function (_a) { var dispatch = _a.dispatch; return function (component) { dispatch(actions_1.componentPickerItemClick(component)); }; } }), function (Base) { return function (_a) { var onFilterChange = _a.onFilterChange, onClickComponent = _a.onClickComponent, filter = _a.filter, root = _a.root, dispatch = _a.dispatch; var componentNodes = paperclip_1.getAllPCComponents(root.graph); // TODO - filter private var options = componentNodes .filter(function (component) { var label = (component.label || "").toLowerCase(); for (var _i = 0, filter_1 = filter; _i < filter_1.length; _i++) { var part = filter_1[_i]; if (label.indexOf(part) === -1) { return false; } } return true; }) .map(function (component) { return (React.createElement(ComponentOption, { key: component.id, component: component, onClick: function () { return onClickComponent(component); }, centerProps: { children: component.label } })); }); return (React.createElement(Base, { filterInputProps: { onChange: onFilterChange }, optionsProps: { children: options } })); }; }); //# sourceMappingURL=picker-controller.js.map