'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"; import { CreateUserEditor } from "./components/create-user-editor"; 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, } ) } const handleUserDelete = async (userId: string) => { await mutate( (data) => { if (!data) return data; return { ...data, items: data.items.filter((user) => user.userId !== userId), }; }, { revalidate: false, } ) } return ( <>