mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
@@ -208,6 +208,33 @@ export function UserGroupProvider({ children }) {
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/groups/:gid/permanent ──────────────────────────────
|
||||
const permanentlyDeleteGroup = useCallback(
|
||||
(gid) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/groups/${gid}/permanent`);
|
||||
setGroups((prev) => prev.filter((g) => g.group_id !== gid));
|
||||
toast.success("Group permanently deleted.");
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/groups/bulk/permanent ──────────────────────────────
|
||||
const permanentlyDeleteGroups = useCallback(
|
||||
({ ids }) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/groups/bulk/permanent`, { data: { ids } });
|
||||
const { deleted_ids } = res.data?.data ?? {};
|
||||
if (deleted_ids?.length) {
|
||||
setGroups((prev) => prev.filter((g) => !deleted_ids.includes(g.group_id)));
|
||||
toast.success(`${deleted_ids.length} group(s) permanently deleted.`);
|
||||
}
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── POST /api/admin/groups/:gid/users ────────────────────────────────────
|
||||
const addUsersToGroup = useCallback(
|
||||
(gid, user_ids) =>
|
||||
@@ -242,6 +269,7 @@ export function UserGroupProvider({ children }) {
|
||||
createGroup, updateGroup,
|
||||
deactivateGroup, deactivateGroups,
|
||||
restoreGroup, restoreGroups,
|
||||
permanentlyDeleteGroup, permanentlyDeleteGroups,
|
||||
addUsersToGroup, removeUsersFromGroup,
|
||||
}}>
|
||||
{children}
|
||||
|
||||
Reference in New Issue
Block a user