refactor: force ui refreshe after group changes

This commit is contained in:
zhom
2025-08-07 01:11:19 +04:00
parent 58d82d12c4
commit 63e125738d
2 changed files with 27 additions and 11 deletions
+5
View File
@@ -638,6 +638,10 @@ export default function Home() {
setSelectedProfilesForGroup([]);
}, [loadProfiles, loadGroups]);
const handleGroupManagementComplete = useCallback(async () => {
await loadGroups();
}, [loadGroups]);
useEffect(() => {
void loadProfilesWithUpdateCheck();
void loadGroups();
@@ -845,6 +849,7 @@ export default function Home() {
onClose={() => {
setGroupManagementDialogOpen(false);
}}
onGroupManagementComplete={handleGroupManagementComplete}
/>
<GroupAssignmentDialog
+22 -11
View File
@@ -30,11 +30,13 @@ import type { ProfileGroup } from "@/types";
interface GroupManagementDialogProps {
isOpen: boolean;
onClose: () => void;
onGroupManagementComplete: () => void;
}
export function GroupManagementDialog({
isOpen,
onClose,
onGroupManagementComplete,
}: GroupManagementDialogProps) {
const [groups, setGroups] = useState<ProfileGroup[]>([]);
const [isLoading, setIsLoading] = useState(false);
@@ -60,21 +62,30 @@ export function GroupManagementDialog({
}
}, []);
const handleGroupCreated = useCallback((newGroup: ProfileGroup) => {
setGroups((prev) => [...prev, newGroup]);
}, []);
const handleGroupCreated = useCallback(
(newGroup: ProfileGroup) => {
setGroups((prev) => [...prev, newGroup]);
onGroupManagementComplete();
},
[onGroupManagementComplete],
);
const handleGroupUpdated = useCallback((updatedGroup: ProfileGroup) => {
setGroups((prev) =>
prev.map((group) =>
group.id === updatedGroup.id ? updatedGroup : group,
),
);
}, []);
const handleGroupUpdated = useCallback(
(updatedGroup: ProfileGroup) => {
setGroups((prev) =>
prev.map((group) =>
group.id === updatedGroup.id ? updatedGroup : group,
),
);
onGroupManagementComplete();
},
[onGroupManagementComplete],
);
const handleGroupDeleted = useCallback(() => {
void loadGroups();
}, [loadGroups]);
onGroupManagementComplete();
}, [loadGroups, onGroupManagementComplete]);
const handleEditGroup = useCallback((group: ProfileGroup) => {
setSelectedGroup(group);