@skbkontur/cassandra-distributed-task-queue-ui
Version:
.NET library implementing distributed task queue machinery using Apache Cassandra
41 lines • 4.29 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TaskQueueFilter = void 0;
const tslib_1 = require("tslib");
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 = tslib_1.__importDefault(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] = react_1.default.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 (jsx_runtime_1.jsxs(react_stack_layout_1.RowStack, Object.assign({ block: true, gap: 1 }, { children: [jsx_runtime_1.jsx(react_stack_layout_1.Fill, { children: jsx_runtime_1.jsxs(react_stack_layout_1.ColumnStack, Object.assign({ stretch: true, block: true, gap: 1 }, { children: [jsx_runtime_1.jsx(react_stack_layout_1.Fit, { children: jsx_runtime_1.jsx(react_ui_1.Input, { width: "100%", "data-tid": "SearchStringInput", value: queryString || "", onValueChange: value => onChange({ queryString: value }), onKeyDown: onKeyDown }, void 0) }, void 0), jsx_runtime_1.jsxs(react_stack_layout_1.Fit, Object.assign({ className: TaskQueueFilter_styles_1.jsStyles.searchLink() }, { children: [jsx_runtime_1.jsx(react_ui_1.Link, Object.assign({ 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" }), void 0), openedModal && jsx_runtime_1.jsx(TaskQueueFilterHelpModal_1.TaskQueueFilterHelpModal, { onClose: closeModal }, void 0)] }), void 0)] }), void 0) }, void 0), withTaskLimit && (jsx_runtime_1.jsx(react_stack_layout_1.Fixed, Object.assign({ width: 72 }, { children: jsx_runtime_1.jsx(react_ui_1.Input, { width: "100%", "data-tid": "MaxInput", placeholder: "Max", value: String(count || ""), onValueChange: onChangeTaskLimit, onKeyDown: onKeyDown }, void 0) }), void 0)), jsx_runtime_1.jsx(react_stack_layout_1.Fit, { children: jsx_runtime_1.jsx(DateTimeRangePicker_1.DateTimeRangePicker, { "data-tid": "DateTimeRangePicker", hideTime: true, value: enqueueTimestampRange || defaultEnqueueDateTimeRange, onChange: value => onChange({ enqueueTimestampRange: value }) }, void 0) }, void 0), jsx_runtime_1.jsx(react_stack_layout_1.Fit, { children: jsx_runtime_1.jsx(TaskTypesSelect_1.TaskTypesSelect, { "data-tid": "TaskTypesSelect", value: names || [], disabled: availableTaskTypes === null, availableTaskTypes: availableTaskTypes || [], onChange: selectedTypes => onChange({ names: selectedTypes }) }, void 0) }, void 0), jsx_runtime_1.jsx(react_stack_layout_1.Fit, { children: jsx_runtime_1.jsx(TaskStatesSelect_1.TaskStatesSelect, { "data-tid": "TaskStatesSelect", value: states || [], onChange: selectedStates => onChange({ states: selectedStates }) }, void 0) }, void 0), jsx_runtime_1.jsx(react_stack_layout_1.Fit, { children: jsx_runtime_1.jsx(react_ui_1.Button, Object.assign({ "data-tid": "SearchButton", onClick: onSearchButtonClick, use: "primary" }, { children: "\u041D\u0430\u0439\u0442\u0438" }), void 0) }, void 0)] }), void 0));
}
exports.TaskQueueFilter = TaskQueueFilter;
//# sourceMappingURL=TaskQueueFilter.js.map