'use client'; import * as React from "react" import { cn } from "@/lib/utils" import { Button } from "@/components/ui/button" import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, } from "@/components/ui/drawer" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { useUser } from "@/hooks/admin/user/use-user"; import { User } from "@/lib/types/user"; import { Skeleton } from "@/components/ui/skeleton"; import { updateUser } from "@/lib/api/admin/user"; import { AdminApi } from "@/lib/api"; import { toast } from "sonner"; export function UserInfoEditor({ onClose, onUserUpdate, userId, }: { onClose: () => void, onUserUpdate: (user: User) => void, userId: string }) { const { user, isLoading, error } = userId ? useUser(userId) : {}; const handleSave = async (user: updateUser) => { try { const res = await AdminApi.user.update(userId, user); if (res) { toast.success("保存成功"); onUserUpdate(res); onClose(); } else { throw new Error(); } } catch (error) { toast.error((error as Error).message || "保存失败"); } } return ( 编辑用户信息 确保你在保存之前检查所有更改 {user && { e.preventDefault() const formData = new FormData(e.currentTarget); handleSave({ username: formData.get("username")?.toString()!, nickname: formData.get("nickname")?.toString()!, email: formData.get("email")?.toString() || null, phone: formData.get("phone")?.toString() || null, }) }} />} {isLoading && [...Array(5)].map((_, i) => ( )) } ) } function ProfileForm({ className, user, ...props }: React.ComponentProps<"form"> & { user: User }) { return (
) }