From 8b7c47029a37913b223c85dc10d5bcd405b9cbc4 Mon Sep 17 00:00:00 2001 From: lizerk Date: Mon, 13 Apr 2026 22:33:56 +0300 Subject: [PATCH] refactor(frontend): gate department management mode --- frontend/src/app/departments/[id]/page.tsx | 55 +++++++++++++++------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/departments/[id]/page.tsx b/frontend/src/app/departments/[id]/page.tsx index 0b17b411..65989f4e 100644 --- a/frontend/src/app/departments/[id]/page.tsx +++ b/frontend/src/app/departments/[id]/page.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import { useParams } from "next/navigation"; -import type { ReactNode } from "react"; +import { useState, type ReactNode } from "react"; import { ArrowLeft, Building2, @@ -430,14 +430,17 @@ export default function DepartmentDetailPage() { const params = useParams<{ id: string }>(); const departmentId = Number(params?.id); const h = useDepartmentPage(departmentId); + const [managementMode, setManagementMode] = useState(false); const activeMembersCount = h.members.filter((member) => member.is_active).length; const roleOptions = h.roles.map((role) => ({ id: role.id, name: role.name })); - const isManagementMode = + const canUseManagementMode = h.userPerms.can_manage || h.userPerms.can_change_head || h.userPerms.can_assign_roles; + const isManagementMode = canUseManagementMode && managementMode; + return (
@@ -486,15 +489,31 @@ export default function DepartmentDetailPage() {

- {h.userPerms.can_manage ? ( - + {canUseManagementMode ? ( +
+ + {isManagementMode && h.userPerms.can_manage ? ( + + ) : null} +
) : null} @@ -519,7 +538,7 @@ export default function DepartmentDetailPage() { )} - {h.userPerms.can_change_head ? ( + {isManagementMode && h.userPerms.can_change_head ? (
- {h.userPerms.can_manage ? ( + {isManagementMode && h.userPerms.can_manage ? (