mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-01 22:46:38 +08:00
用户详情
This commit is contained in:
@@ -37,8 +37,10 @@ interface AdminUsersContextState {
|
||||
|
||||
fetchUsers: (force?: boolean) => Promise<void>
|
||||
refresh: () => Promise<void>
|
||||
getUserDetail: (id: string) => Promise<AdminUser>
|
||||
updateUserStatus: (user: AdminUser) => Promise<void>
|
||||
createUser: (req: CreateUserRequest) => Promise<AdminUser>
|
||||
deleteUser: (user: AdminUser) => Promise<void>
|
||||
}
|
||||
|
||||
const CACHE_DURATION = 5 * 60 * 1000 // 5 minutes cache
|
||||
@@ -189,6 +191,10 @@ export function AdminUsersProvider({ children }: { children: React.ReactNode })
|
||||
}
|
||||
}
|
||||
|
||||
const getUserDetail = async (id: string) => {
|
||||
return AdminService.getUser(id)
|
||||
}
|
||||
|
||||
const createUser = async (req: CreateUserRequest) => {
|
||||
try {
|
||||
const newUser = await AdminService.createUser(req)
|
||||
@@ -204,6 +210,19 @@ export function AdminUsersProvider({ children }: { children: React.ReactNode })
|
||||
}
|
||||
}
|
||||
|
||||
const deleteUser = async (user: AdminUser) => {
|
||||
try {
|
||||
await AdminService.deleteUser(user.id)
|
||||
setUsers(prev => prev.filter(u => u.id !== user.id))
|
||||
setTotal(prev => Math.max(0, prev - 1))
|
||||
cacheRef.current = {}
|
||||
toast.success(`已删除用户 ${ user.username }`)
|
||||
} catch (err) {
|
||||
toast.error(err instanceof Error ? err.message : '删除用户失败')
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
const value = {
|
||||
users,
|
||||
total,
|
||||
@@ -221,8 +240,10 @@ export function AdminUsersProvider({ children }: { children: React.ReactNode })
|
||||
setStatusFilter,
|
||||
fetchUsers,
|
||||
refresh,
|
||||
getUserDetail,
|
||||
updateUserStatus,
|
||||
createUser
|
||||
createUser,
|
||||
deleteUser
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user