UNPKG

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

Version:

.NET library implementing distributed task queue machinery using Apache Cassandra

39 lines 4.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaskQueueFilter = TaskQueueFilter; const jsx_runtime_1 = require("react/jsx-runtime"); const react_stack_layout_1 = require("@skbkontur/react-stack-layout"); const react_ui_1 = require("@skbkontur/react-ui"); const react_1 = require("react"); const DateTimeRangePicker_1 = require("../DateTimeRangePicker/DateTimeRangePicker"); const TaskStatesSelect_1 = require("../TaskStatesSelect/TaskStatesSelect"); const TaskTypesSelect_1 = require("../TaskTypesSelect/TaskTypesSelect"); const TaskQueueFilter_styles_1 = require("./TaskQueueFilter.styles"); const TaskQueueFilterHelpModal_1 = require("./TaskQueueFilterHelpModal"); function TaskQueueFilter({ value, availableTaskTypes, onChange, onSearchButtonClick, withTaskLimit, }) { const [openedModal, setOpenedModal] = (0, react_1.useState)(false); const openModal = () => { setOpenedModal(true); }; const closeModal = () => { setOpenedModal(false); }; const onKeyDown = (e) => { if (e.key === "Enter") { onSearchButtonClick(); } }; const onChangeTaskLimit = (value) => { if (isNaN(Number(value)) || Number(value) > 9999) { return; } onChange({ count: value === "" ? null : Number(value) }); }; const { enqueueTimestampRange, queryString, states, names, count } = value; const defaultEnqueueDateTimeRange = { lowerBound: null, upperBound: null, }; return ((0, jsx_runtime_1.jsxs)(react_stack_layout_1.RowStack, { block: true, gap: 1, children: [(0, jsx_runtime_1.jsx)(react_stack_layout_1.Fill, { children: (0, jsx_runtime_1.jsxs)(react_stack_layout_1.ColumnStack, { stretch: true, block: true, gap: 1, children: [(0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(react_ui_1.Input, { width: "100%", "data-tid": "SearchStringInput", value: queryString || "", onValueChange: value => onChange({ queryString: value }), onKeyDown: onKeyDown }) }), (0, jsx_runtime_1.jsxs)(react_stack_layout_1.Fit, { className: TaskQueueFilter_styles_1.jsStyles.searchLink(), children: [(0, jsx_runtime_1.jsx)(react_ui_1.Link, { onClick: openModal, "data-tid": "OpenModalButton", children: "\u0427\u0442\u043E \u043C\u043E\u0436\u043D\u043E \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0438\u0441\u043A\u0430" }), openedModal && (0, jsx_runtime_1.jsx)(TaskQueueFilterHelpModal_1.TaskQueueFilterHelpModal, { onClose: closeModal })] })] }) }), withTaskLimit && ((0, jsx_runtime_1.jsx)(react_stack_layout_1.Fixed, { width: 72, children: (0, jsx_runtime_1.jsx)(react_ui_1.Input, { width: "100%", "data-tid": "MaxInput", placeholder: "Max", value: String(count || ""), onValueChange: onChangeTaskLimit, onKeyDown: onKeyDown }) })), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(DateTimeRangePicker_1.DateTimeRangePicker, { "data-tid": "DateTimeRangePicker", hideTime: true, value: enqueueTimestampRange || defaultEnqueueDateTimeRange, onChange: value => onChange({ enqueueTimestampRange: value }) }) }), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(TaskTypesSelect_1.TaskTypesSelect, { "data-tid": "TaskTypesSelect", value: names || [], disabled: availableTaskTypes === null, availableTaskTypes: availableTaskTypes || [], onChange: selectedTypes => onChange({ names: selectedTypes }) }) }), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(TaskStatesSelect_1.TaskStatesSelect, { "data-tid": "TaskStatesSelect", value: states || [], onChange: selectedStates => onChange({ states: selectedStates }) }) }), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(react_ui_1.Button, { "data-tid": "SearchButton", onClick: onSearchButtonClick, use: "primary", children: "\u041D\u0430\u0439\u0442\u0438" }) })] })); } //# sourceMappingURL=TaskQueueFilter.js.map