UNPKG

@skbkontur/db-viewer-ui

Version:

Database Viewer with custom configuration

29 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FilterModal = 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_ui_validations_1 = require("@skbkontur/react-ui-validations"); const react_1 = tslib_1.__importDefault(require("react")); const react_router_1 = require("react-router"); const RouteUtils_1 = require("../../Domain/Utils/RouteUtils"); const ConfirmDeleteObjectModal_styles_1 = require("../ConfirmDeleteObjectModal/ConfirmDeleteObjectModal.styles"); const ObjectFilter_1 = require("../ObjectFilter/ObjectFilter"); const RouterLink_1 = require("../RouterLink/RouterLink"); const FilterModal = ({ tableColumns, onClose, modalEditingConditions, onChangeFilter, onApplyFilter, allowClose, }) => { const { pathname } = (0, react_router_1.useLocation)(); const container = react_1.default.useRef(null); const theme = react_1.default.useContext(react_ui_1.ThemeContext); const handleApplyFilter = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { var _a, _b; const isValid = (_b = (yield ((_a = container.current) === null || _a === void 0 ? void 0 : _a.validate()))) !== null && _b !== void 0 ? _b : true; if (isValid) { onApplyFilter(); } }); return ((0, jsx_runtime_1.jsxs)(react_ui_1.Modal, { onClose: onClose, "data-tid": "FilterModal", ignoreBackgroundClick: true, disableClose: !allowClose, noClose: !allowClose, children: [(0, jsx_runtime_1.jsx)(react_ui_1.Modal.Header, { children: (0, jsx_runtime_1.jsx)("span", { className: ConfirmDeleteObjectModal_styles_1.jsStyles.modalHeader(theme), children: "\u0424\u0438\u043B\u044C\u0442\u0440" }) }), (0, jsx_runtime_1.jsx)(react_ui_1.Modal.Body, { children: (0, jsx_runtime_1.jsx)(react_ui_validations_1.ValidationContainer, { ref: container, scrollOffset: { top: 100 }, children: (0, jsx_runtime_1.jsx)(ObjectFilter_1.ObjectFilter, { conditions: modalEditingConditions, onChange: onChangeFilter, tableColumns: tableColumns }) }) }), (0, jsx_runtime_1.jsx)(react_ui_1.Modal.Footer, { panel: true, children: (0, jsx_runtime_1.jsxs)(react_stack_layout_1.RowStack, { baseline: true, block: true, gap: 2, children: [(0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: (0, jsx_runtime_1.jsx)(react_ui_1.Button, { onClick: handleApplyFilter, use: "primary", "data-tid": "Apply", children: "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C" }) }), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: allowClose && ((0, jsx_runtime_1.jsx)(react_ui_1.Button, { onClick: onClose, "data-tid": "Close", children: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C" })) }), (0, jsx_runtime_1.jsx)(react_stack_layout_1.Fit, { children: allowClose ? ((0, jsx_runtime_1.jsx)(react_ui_1.Link, { onClick: () => onChangeFilter([]), "data-tid": "Clear", children: "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440" })) : ((0, jsx_runtime_1.jsx)(RouterLink_1.RouterLink, { to: RouteUtils_1.RouteUtils.backUrl(pathname), "data-tid": "GoBackToList", children: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0441\u043F\u0438\u0441\u043A\u0443 \u0432\u0438\u0434\u043E\u0432 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432" })) })] }) })] })); }; exports.FilterModal = FilterModal; //# sourceMappingURL=FilterModal.js.map