UNPKG

@skbkontur/cassandra-distributed-task-queue-ui

Version:

.NET library implementing distributed task queue machinery using Apache Cassandra

31 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaskStatesSelect = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const ArrowShapeTriangleADownIcon16Regular_1 = require("@skbkontur/icons/ArrowShapeTriangleADownIcon16Regular"); const react_stack_layout_1 = require("@skbkontur/react-stack-layout"); const react_ui_1 = require("@skbkontur/react-ui"); const CustomSettingsContext_1 = require("../../CustomSettingsContext"); const TaskStateExtensions_1 = require("../../Domain/TaskStateExtensions"); const TaskStatesSelect_styles_1 = require("./TaskStatesSelect.styles"); const TaskStatesSelect = ({ value, onChange }) => { const { customStateCaptions } = CustomSettingsContext_1.useCustomSettings(); const isItemSelected = (item) => value.some(i => i === item); const selectItem = (val, taskState) => { const newSelectedArray = value.slice(); if (val) { newSelectedArray.push(taskState); } else { const index = newSelectedArray.findIndex(i => i === taskState); newSelectedArray.splice(index, 1); } onChange(newSelectedArray); }; const renderTooltip = () => (jsx_runtime_1.jsx(react_stack_layout_1.ColumnStack, Object.assign({ block: true, gap: 2 }, { children: TaskStateExtensions_1.getAllTaskStates() .filter(x => customStateCaptions[x]) .map((item, index) => (jsx_runtime_1.jsx(react_stack_layout_1.Fit, { children: jsx_runtime_1.jsx(react_ui_1.Checkbox, Object.assign({ "data-tid": item, checked: isItemSelected(item), onValueChange: val => selectItem(val, item) }, { children: customStateCaptions[item] }), void 0) }, index))) }), void 0)); return (jsx_runtime_1.jsx("span", { children: jsx_runtime_1.jsx(react_ui_1.Tooltip, Object.assign({ render: renderTooltip, trigger: "click", pos: "bottom left" }, { children: jsx_runtime_1.jsxs(react_ui_1.Button, { children: [jsx_runtime_1.jsx("span", Object.assign({ "data-tid": "ButtonText", className: TaskStatesSelect_styles_1.jsStyles.buttonText() }, { children: value.length ? `Выбрано состояний: ${value.length}` : "Выбрать состояние" }), void 0), jsx_runtime_1.jsx(ArrowShapeTriangleADownIcon16Regular_1.ArrowShapeTriangleADownIcon16Regular, {}, void 0)] }, void 0) }), void 0) }, void 0)); }; exports.TaskStatesSelect = TaskStatesSelect; //# sourceMappingURL=TaskStatesSelect.js.map