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