From b5dbfc25c309735127f06e322f3790ea66606ffb Mon Sep 17 00:00:00 2001 From: Michael Abebe Date: Tue, 2 Jun 2026 15:59:58 +0300 Subject: [PATCH] WIP --- apps/edr-freight-web/backoffice/src/App.tsx | 8 ++-- .../user-management/UserManagementPage.tsx | 44 ++++++++++++++----- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/apps/edr-freight-web/backoffice/src/App.tsx b/apps/edr-freight-web/backoffice/src/App.tsx index 8fc296b2f..bc3e0bcef 100644 --- a/apps/edr-freight-web/backoffice/src/App.tsx +++ b/apps/edr-freight-web/backoffice/src/App.tsx @@ -47,10 +47,10 @@ const baseSidebarItems: SidebarItem[] = [ label: "Position Type", href: "/dashboard/user-management/position-types", }, - { - label: "Employees", - href: "/dashboard/user-management/employees", - }, + // { + // label: "Employees", + // href: "/dashboard/user-management/employees", + // }, { label: "Permissions", href: "/dashboard/user-management/permissions", diff --git a/apps/edr-freight-web/backoffice/src/pages/dashboard/user-management/UserManagementPage.tsx b/apps/edr-freight-web/backoffice/src/pages/dashboard/user-management/UserManagementPage.tsx index 725512c8a..8c3806165 100644 --- a/apps/edr-freight-web/backoffice/src/pages/dashboard/user-management/UserManagementPage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/dashboard/user-management/UserManagementPage.tsx @@ -785,13 +785,19 @@ const UserManagementPage = () => { const refreshSelectedUnit = useCallback(async () => { if (!selectedUnitId) { setPositions([]); + setPositionTypes([]); + setPositionTypesError(null); setPositionMembers([]); setUnitAdminUserIds(new Set()); return; } - await Promise.all([loadPositions(selectedUnitId), loadUnitAdmins(selectedUnitId)]); - }, [loadPositions, loadUnitAdmins, selectedUnitId]); + await Promise.all([ + loadPositions(selectedUnitId), + loadPositionTypes(selectedUnitId), + loadUnitAdmins(selectedUnitId), + ]); + }, [loadPositionTypes, loadPositions, loadUnitAdmins, selectedUnitId]); useEffect(() => { void loadOrganizations(); @@ -850,9 +856,23 @@ const UserManagementPage = () => { return; } - if (!units.some((unit) => unit.id === selectedUnitId)) { - setSelectedUnitId(null); + if (units.some((unit) => unit.id === selectedUnitId)) { + return; } + + setSelectedUnitId(units[0]?.id ?? null); + }, [selectedOrgId, selectedUnitId, units]); + + useEffect(() => { + if (!selectedOrgId || !units.length) { + return; + } + + if (selectedUnitId && units.some((unit) => unit.id === selectedUnitId)) { + return; + } + + setSelectedUnitId(units[0]?.id ?? null); }, [selectedOrgId, selectedUnitId, units]); useEffect(() => { @@ -868,6 +888,14 @@ const UserManagementPage = () => { } }, [selectedUnitId]); + useEffect(() => { + if (!selectedUnitId) { + return; + } + + void refreshSelectedUnit(); + }, [refreshSelectedUnit, selectedUnitId]); + useEffect(() => { if (!selectedUnitId || !selectedPositionId) { return; @@ -930,15 +958,11 @@ const UserManagementPage = () => { setSelectedPositionId(null); setExpandedDepartmentIds(new Set()); setPositions([]); + setPositionTypes([]); + setPositionTypesError(null); setPositionMembers([]); setUnitAdminUserIds(new Set()); resetMessages(); - - try { - await Promise.all([loadPositions(unitId), loadUnitAdmins(unitId)]); - } catch { - // Individual loaders already handle their own error state. - } }; const handleToggleDepartment = (departmentId: string) => {