mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
AdjusteD
This commit is contained in:
@@ -97,21 +97,6 @@ export const UserProvider = ({ children }) => {
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/users/:id (soft delete) ────────────────────────────
|
||||
const deactivateUser = useCallback(
|
||||
(userId) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/users/${userId}`);
|
||||
|
||||
setUsers((prev) =>
|
||||
prev.map((u) => (u.user_id === userId ? { ...u, is_active: false } : u))
|
||||
);
|
||||
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── GET /api/admin/users/archived ────────────────────────────────────────────
|
||||
const fetchArchivedUsers = useCallback(
|
||||
({ page = 1, limit = 10, filters = [], sort = [] } = {}) =>
|
||||
@@ -135,6 +120,44 @@ export const UserProvider = ({ children }) => {
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/users/:id (soft delete) ────────────────────────────
|
||||
const deactivateUser = useCallback(
|
||||
(userId) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/users/${userId}`);
|
||||
|
||||
setUsers((prev) =>
|
||||
prev.map((u) => (u.user_id === userId ? { ...u, is_active: false } : u))
|
||||
);
|
||||
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── DELETE /api/admin/users/bulk ─────────────────────────────────────────────
|
||||
const deactivateUsers = useCallback(
|
||||
({ ids }) =>
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/users/bulk`, { data: { ids } });
|
||||
|
||||
const { deactivated_ids } = res.data?.data ?? {}; // ← unwrap nested data
|
||||
|
||||
if (deactivated_ids?.length) {
|
||||
setUsers((prev) =>
|
||||
prev.map((u) =>
|
||||
deactivated_ids.includes(u.user_id)
|
||||
? { ...u, is_active: false }
|
||||
: u
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── POST /api/admin/users/:id/restore ────────────────────────────────────
|
||||
const restoreUser = useCallback(
|
||||
(userId) =>
|
||||
@@ -150,6 +173,28 @@ export const UserProvider = ({ children }) => {
|
||||
[request]
|
||||
);
|
||||
|
||||
const restoreUsers = useCallback(
|
||||
({ ids }) =>
|
||||
request(async () => {
|
||||
const res = await api.post(`${BASE}/users/bulk/restore`, { ids });
|
||||
|
||||
const { restored_ids } = res.data?.data ?? {}; // ← same unwrap
|
||||
|
||||
if (restored_ids?.length) {
|
||||
setUsers((prev) =>
|
||||
prev.map((u) =>
|
||||
restored_ids.includes(u.user_id)
|
||||
? { ...u, is_active: true }
|
||||
: u
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
);
|
||||
|
||||
// ─── GET /api/admin/users/:id/sessions ────────────────────────────────────
|
||||
const fetchUserSessions = useCallback(
|
||||
(userId) =>
|
||||
@@ -209,7 +254,9 @@ export const UserProvider = ({ children }) => {
|
||||
fetchUser,
|
||||
updateUser,
|
||||
deactivateUser,
|
||||
deactivateUsers,
|
||||
restoreUser,
|
||||
restoreUsers,
|
||||
fetchUserSessions,
|
||||
terminateSession,
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user