This commit is contained in:
Michael Abebe
2026-06-02 15:59:58 +03:00
parent 88a280eea2
commit b5dbfc25c3
2 changed files with 38 additions and 14 deletions

View File

@@ -47,10 +47,10 @@ const baseSidebarItems: SidebarItem[] = [
label: "Position Type", label: "Position Type",
href: "/dashboard/user-management/position-types", href: "/dashboard/user-management/position-types",
}, },
{ // {
label: "Employees", // label: "Employees",
href: "/dashboard/user-management/employees", // href: "/dashboard/user-management/employees",
}, // },
{ {
label: "Permissions", label: "Permissions",
href: "/dashboard/user-management/permissions", href: "/dashboard/user-management/permissions",

View File

@@ -785,13 +785,19 @@ const UserManagementPage = () => {
const refreshSelectedUnit = useCallback(async () => { const refreshSelectedUnit = useCallback(async () => {
if (!selectedUnitId) { if (!selectedUnitId) {
setPositions([]); setPositions([]);
setPositionTypes([]);
setPositionTypesError(null);
setPositionMembers([]); setPositionMembers([]);
setUnitAdminUserIds(new Set()); setUnitAdminUserIds(new Set());
return; return;
} }
await Promise.all([loadPositions(selectedUnitId), loadUnitAdmins(selectedUnitId)]); await Promise.all([
}, [loadPositions, loadUnitAdmins, selectedUnitId]); loadPositions(selectedUnitId),
loadPositionTypes(selectedUnitId),
loadUnitAdmins(selectedUnitId),
]);
}, [loadPositionTypes, loadPositions, loadUnitAdmins, selectedUnitId]);
useEffect(() => { useEffect(() => {
void loadOrganizations(); void loadOrganizations();
@@ -850,9 +856,23 @@ const UserManagementPage = () => {
return; return;
} }
if (!units.some((unit) => unit.id === selectedUnitId)) { if (units.some((unit) => unit.id === selectedUnitId)) {
setSelectedUnitId(null); 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]); }, [selectedOrgId, selectedUnitId, units]);
useEffect(() => { useEffect(() => {
@@ -868,6 +888,14 @@ const UserManagementPage = () => {
} }
}, [selectedUnitId]); }, [selectedUnitId]);
useEffect(() => {
if (!selectedUnitId) {
return;
}
void refreshSelectedUnit();
}, [refreshSelectedUnit, selectedUnitId]);
useEffect(() => { useEffect(() => {
if (!selectedUnitId || !selectedPositionId) { if (!selectedUnitId || !selectedPositionId) {
return; return;
@@ -930,15 +958,11 @@ const UserManagementPage = () => {
setSelectedPositionId(null); setSelectedPositionId(null);
setExpandedDepartmentIds(new Set()); setExpandedDepartmentIds(new Set());
setPositions([]); setPositions([]);
setPositionTypes([]);
setPositionTypesError(null);
setPositionMembers([]); setPositionMembers([]);
setUnitAdminUserIds(new Set()); setUnitAdminUserIds(new Set());
resetMessages(); resetMessages();
try {
await Promise.all([loadPositions(unitId), loadUnitAdmins(unitId)]);
} catch {
// Individual loaders already handle their own error state.
}
}; };
const handleToggleDepartment = (departmentId: string) => { const handleToggleDepartment = (departmentId: string) => {