UNPKG

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

Version:

.NET library implementing distributed task queue machinery using Apache Cassandra

31 lines 2.29 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 } = (0, 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 = () => ((0, jsx_runtime_1.jsx)(react_stack_layout_1.ColumnStack, { block: true, children: (0, TaskStateExtensions_1.getAllTaskStates)() .filter(x => customStateCaptions[x]) .map((item, index) => ((0, jsx_runtime_1.jsx)(react_ui_1.Checkbox, { "data-tid": item, checked: isItemSelected(item), onValueChange: val => selectItem(val, item), children: customStateCaptions[item] }, index))) })); return ((0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(react_ui_1.Tooltip, { render: renderTooltip, trigger: "click", pos: "bottom left", children: (0, jsx_runtime_1.jsxs)(react_ui_1.Button, { children: [(0, jsx_runtime_1.jsx)("span", { "data-tid": "ButtonText", className: TaskStatesSelect_styles_1.jsStyles.buttonText(), children: value.length ? `Выбрано состояний: ${value.length}` : "Выбрать состояние" }), (0, jsx_runtime_1.jsx)(ArrowShapeTriangleADownIcon16Regular_1.ArrowShapeTriangleADownIcon16Regular, {})] }) }) })); }; exports.TaskStatesSelect = TaskStatesSelect; //# sourceMappingURL=TaskStatesSelect.js.map