'use client'; import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { TooltipContent, TooltipProvider, TooltipTrigger, Tooltip } from "@/components/ui/tooltip"; import { useUserList } from "@/hooks/admin/user/use-user-list"; import { useState } from "react"; import { UserInfoEditor } from "./components/user-info-editor"; import { User } from "@/lib/types/user"; export default function Page() { const { users, isLoading, error, total, page, pageSize, mutate } = useUserList(); const [editorUserId, setEditorUserId] = useState(""); const handleUserUpdate = async (newUser: User) => { await mutate( (data) => { if (!data) return data; return { ...data, items: data.items.map((user) => user.userId === newUser.userId ? newUser : user ), }; }, { revalidate: false, } ) } return ( <> {error && {error.message}} userId 账户 昵称 邮箱 手机号 操作 { users.map((user) => (
{user.userId}

{user.userId}

{user.username} {user.nickname} {user.email} {user.phone}
)) } {isLoading && ( { Array.from({ length: 6 }).map((_, index) => ( )) } )}
setEditorUserId('')} userId={editorUserId} onUserUpdate={handleUserUpdate} /> ) }