From 852ac367c029fea0e0c6e4c172d29fc9051eab30 Mon Sep 17 00:00:00 2001 From: lizerk Date: Mon, 13 Apr 2026 23:57:55 +0300 Subject: [PATCH] fix(frontend): stabilize department add-member modal --- frontend/package.json | 2 +- frontend/src/app/departments/[id]/page.tsx | 17 +++++++--- .../add-member-modal-state.test.js | 31 +++++++++++++++++++ .../departments/add-member-modal-state.ts | 23 ++++++++++++++ .../src/components/departments/layout.test.js | 22 +++++++++++++ frontend/src/hooks/useDepartmentPage.ts | 19 ++++++++++-- 6 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 frontend/src/components/departments/add-member-modal-state.test.js create mode 100644 frontend/src/components/departments/add-member-modal-state.ts create mode 100644 frontend/src/components/departments/layout.test.js diff --git a/frontend/package.json b/frontend/package.json index 87033ec7..028d0741 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,7 +8,7 @@ "build": "next build", "start": "next start", "lint": "eslint", - "test": "node --experimental-strip-types --test src/**/*.test.ts", + "test": "node --experimental-strip-types --test src/**/*.test.js", "postinstall": "cp node_modules/pdfjs-dist/build/pdf.worker.min.mjs public/pdf.worker.min.mjs || true" }, "dependencies": { diff --git a/frontend/src/app/departments/[id]/page.tsx b/frontend/src/app/departments/[id]/page.tsx index 0cdffc88..6be20421 100644 --- a/frontend/src/app/departments/[id]/page.tsx +++ b/frontend/src/app/departments/[id]/page.tsx @@ -18,6 +18,11 @@ import { } from "lucide-react"; import { AppShell } from "@/components/AppShell"; +import { + getAddMemberHelperText, + getAddMemberPlaceholder, + isAddMemberSelectDisabled, +} from "@/components/departments/add-member-modal-state"; import { DEPARTMENT_MEMBERS_EMPTY_STATE_CLASSNAME, getDepartmentMembersListClassName, @@ -389,6 +394,7 @@ function AddMemberModal({ isOpen, items, loading, + optionsLoading, onClose, onSave, onSelect, @@ -397,6 +403,7 @@ function AddMemberModal({ isOpen: boolean; items: Array<{ id: number; name: string }>; loading: boolean; + optionsLoading: boolean; onClose: () => void; onSave: () => Promise; onSelect: (id: number | null) => void; @@ -408,6 +415,7 @@ function AddMemberModal({ onClose={onClose} title="Добавить участника" size="md" + className="overflow-visible" footer={