UNPKG

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

Version:

.NET library implementing distributed task queue machinery using Apache Cassandra

86 lines 5.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TasksTable = 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 isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual")); const react_1 = require("react"); const TaskDetails_1 = require("./TaskDetails/TaskDetails"); const TaskTable_styles_1 = require("./TaskTable.styles"); class TasksTable extends react_1.Component { constructor() { super(...arguments); Object.defineProperty(this, "state", { enumerable: true, configurable: true, writable: true, value: { openedModal: false, modalType: "Cancel", actionTask: "", } }); Object.defineProperty(this, "theme", { enumerable: true, configurable: true, writable: true, value: void 0 }); } shouldComponentUpdate(nextProps, nextState) { return (this.props.chosenTasks.size !== nextProps.chosenTasks.size || !(0, isEqual_1.default)(this.props.taskInfos, nextProps.taskInfos) || !(0, isEqual_1.default)(this.props.allowRerunOrCancel, nextProps.allowRerunOrCancel) || !(0, isEqual_1.default)(this.state.openedModal, nextState.openedModal) || !(0, isEqual_1.default)(this.state.modalType, nextState.modalType) || !(0, isEqual_1.default)(this.state.actionTask, nextState.actionTask)); } render() { const { taskInfos } = this.props; const { openedModal } = this.state; return ((0, jsx_runtime_1.jsx)(react_ui_1.ThemeContext.Consumer, { children: theme => { this.theme = theme; return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { "data-tid": "Tasks", children: taskInfos.map(item => this.renderRow(item)) }), openedModal && this.renderModal()] })); } })); } renderRow(item) { const { allowRerunOrCancel, chosenTasks, onCheck, getTaskLocation } = this.props; return ((0, jsx_runtime_1.jsx)("div", { className: TaskTable_styles_1.jsStyles.taskDetailsRow(), children: (0, jsx_runtime_1.jsx)(TaskDetails_1.TaskDetails, { getTaskLocation: getTaskLocation, "data-tid": "Task", onCancel: () => this.cancel(item.id), onRerun: () => this.rerun(item.id), taskInfo: item, allowRerunOrCancel: allowRerunOrCancel, isChecked: chosenTasks.has(item.id), onCheck: () => onCheck(item.id) }) }, item.id)); } renderModal() { const { onCancel, onRerun } = this.props; const { modalType, actionTask } = this.state; return ((0, jsx_runtime_1.jsxs)(react_ui_1.Modal, { onClose: () => this.closeModal(), width: 500, "data-tid": "ConfirmOperationModal", children: [(0, jsx_runtime_1.jsx)(react_ui_1.Modal.Header, { children: (0, jsx_runtime_1.jsx)("span", { className: TaskTable_styles_1.jsStyles.modalText(this.theme), children: "\u041D\u0443\u0436\u043D\u043E \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435" }) }), (0, jsx_runtime_1.jsx)(react_ui_1.Modal.Body, { children: (0, jsx_runtime_1.jsx)("span", { "data-tid": "ModalText", className: TaskTable_styles_1.jsStyles.modalText(this.theme), children: modalType === "Rerun" ? "Уверен, что таску надо перезапустить?" : "Уверен, что таску надо остановить?" }) }), (0, jsx_runtime_1.jsx)(react_ui_1.Modal.Footer, { children: (0, jsx_runtime_1.jsxs)(react_stack_layout_1.RowStack, { gap: 2, children: [(0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: modalType === "Rerun" ? ((0, jsx_runtime_1.jsx)(react_ui_1.Button, { "data-tid": "RerunButton", use: "success", onClick: () => { onRerun(actionTask); this.closeModal(); }, children: "\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C" })) : ((0, jsx_runtime_1.jsx)(react_ui_1.Button, { "data-tid": "CancelButton", use: "danger", onClick: () => { onCancel(actionTask); this.closeModal(); }, children: "\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C" })) }), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(react_ui_1.Button, { "data-tid": "CloseButton", onClick: () => this.closeModal(), children: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C" }) })] }) })] })); } rerun(id) { this.setState({ openedModal: true, modalType: "Rerun", actionTask: id, }); } cancel(id) { this.setState({ openedModal: true, modalType: "Cancel", actionTask: id, }); } closeModal() { this.setState({ openedModal: false, }); } } exports.TasksTable = TasksTable; //# sourceMappingURL=TaskTable.js.map