mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
@@ -194,6 +194,33 @@ export const UserProvider = ({ children }) => {
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/users/:id/permanent ────────────────────────────────
|
||||
const permanentlyDeleteUser = useCallback(
|
||||
(userId) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/users/${userId}/permanent`);
|
||||
setUsers((prev) => prev.filter((u) => u.user_id !== userId));
|
||||
toast.success("User permanently deleted.");
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/users/bulk/permanent ───────────────────────────────
|
||||
const permanentlyDeleteUsers = useCallback(
|
||||
({ ids }) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/users/bulk/permanent`, { data: { ids } });
|
||||
const { deleted_ids } = res.data?.data ?? {};
|
||||
if (deleted_ids?.length) {
|
||||
setUsers((prev) => prev.filter((u) => !deleted_ids.includes(u.user_id)));
|
||||
toast.success(`${deleted_ids.length} user(s) permanently deleted.`);
|
||||
}
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── GET /api/admin/users/:id/sessions ────────────────────────────────────
|
||||
const fetchUserSessions = useCallback(
|
||||
(userId) =>
|
||||
@@ -380,6 +407,7 @@ export const UserProvider = ({ children }) => {
|
||||
addStaffUser, updateUser,
|
||||
deactivateUser, deactivateUsers,
|
||||
restoreUser, restoreUsers,
|
||||
permanentlyDeleteUser, permanentlyDeleteUsers,
|
||||
fetchUserSessions, terminateSession,
|
||||
fetchUserFieldValues,
|
||||
fetchUserAchievements,
|
||||
|
||||
Reference in New Issue
Block a user