From fbdc49aa5bd172eab639978f84b77106784f4900 Mon Sep 17 00:00:00 2001 From: lizerk Date: Mon, 13 Apr 2026 22:58:18 +0300 Subject: [PATCH] refactor(frontend): remove department member search --- frontend/src/app/departments/[id]/page.tsx | 32 ++++++++-------------- frontend/src/hooks/useDepartmentPage.ts | 28 ++----------------- 2 files changed, 13 insertions(+), 47 deletions(-) diff --git a/frontend/src/app/departments/[id]/page.tsx b/frontend/src/app/departments/[id]/page.tsx index 21685831..105e09b4 100644 --- a/frontend/src/app/departments/[id]/page.tsx +++ b/frontend/src/app/departments/[id]/page.tsx @@ -9,7 +9,6 @@ import { Crown, PencilLine, Plus, - Search, Settings2, Trash2, UserPlus, @@ -76,6 +75,7 @@ function DepartmentMemberRow({ const isHead = currentHeadId === member.employee.id; const isRemoving = pendingKey === `member-remove-${member.employee.id}`; const isRoleBusy = pendingKey === `member-role-${member.employee.id}`; + const subtitle = member.employee.position?.name || null; const managementMode = canAssignRoles || canChangeHead || canManage; const roleLabel = member.role?.name || "Без роли"; const personName = displayUserName(member.employee); @@ -89,15 +89,20 @@ function DepartmentMemberRow({ if (!managementMode) { const personBubble = ( - + - - {personName} + + + {personName} + + {subtitle ? ( + {subtitle} + ) : null} {member.role ? ( @@ -131,7 +136,7 @@ function DepartmentMemberRow({ @@ -563,21 +568,6 @@ export default function DepartmentDetailPage() { -
-
- - h.setMembersQuery(event.target.value)} - placeholder="Поиск по участникам, почте, должности или роли" - className="app-input w-full rounded-lg py-2.5 pl-9 pr-3 text-sm" - /> -
-
-
; loading: boolean; members: DepartmentMemberLink[]; - membersQuery: string; pendingKey: SavingKey | null; roleDraft: DepartmentRoleDraft; roleEditorOpen: boolean; @@ -62,7 +61,6 @@ export type DepartmentPageController = { refreshPage: () => Promise; saveDepartment: () => Promise; saveRole: () => Promise; - setMembersQuery: (value: string) => void; setRoleDraft: (next: DepartmentRoleDraft | ((current: DepartmentRoleDraft) => DepartmentRoleDraft)) => void; setSelectedHeadId: (id: number | null) => void; setSelectedMemberId: (id: number | null) => void; @@ -129,7 +127,6 @@ export function useDepartmentPage(departmentId: number): DepartmentPageControlle const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [pendingKey, setPendingKey] = useState(null); - const [membersQuery, setMembersQuery] = useState(""); const [editDepartmentOpen, setEditDepartmentOpen] = useState(false); const [departmentDraft, setDepartmentDraft] = useState({ name: "", description: "" }); @@ -228,32 +225,13 @@ export function useDepartmentPage(departmentId: number): DepartmentPageControlle }, [allEmployees.length, loadEmployeesDirectory, userPerms]); const filteredMembers = useMemo(() => { - const q = membersQuery.trim().toLowerCase(); - return members.filter((item) => { if (!item.is_active) { return false; } - - if (!q) { - return true; - } - - const employeeName = `${item.employee.last_name || ""} ${item.employee.first_name || ""} ${item.employee.patronymic || ""}` - .trim() - .toLowerCase(); - const email = item.employee.email?.toLowerCase() || ""; - const position = item.employee.position?.name?.toLowerCase() || ""; - const roleName = item.role?.name?.toLowerCase() || ""; - - return ( - employeeName.includes(q) || - email.includes(q) || - position.includes(q) || - roleName.includes(q) - ); + return true; }); - }, [members, membersQuery]); + }, [members]); const selectableEmployees = useMemo(() => { const activeIds = new Set( @@ -530,7 +508,6 @@ export function useDepartmentPage(departmentId: number): DepartmentPageControlle headCandidates, loading, members, - membersQuery, pendingKey, roleDraft, roleEditorOpen, @@ -550,7 +527,6 @@ export function useDepartmentPage(departmentId: number): DepartmentPageControlle refreshPage, saveDepartment, saveRole, - setMembersQuery, setRoleDraft, setSelectedHeadId, setSelectedMemberId,