@skbkontur/cassandra-distributed-task-queue-ui
Version:
.NET library implementing distributed task queue machinery using Apache Cassandra
31 lines • 2.29 kB
JavaScript
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
;