import { Edit } from "lucide-react"; import { useRef, useState } from "react"; import Avatar from "@/components/avatar"; import { Button } from "@/components/ui/button"; import { Label } from "@/components/ui/label"; import { user } from "@/lib/server"; import { cn } from "@/lib/utils"; export function UploadAvatar({ name, username, avatarURL, onAvatarUploaded, className, }: { name?: string; username?: string; avatarURL?: string | null; onAvatarUploaded: (avatarURL: string) => void; label?: string; className?: string; }) { const [uploading, setUploading] = useState(false); const [error, setError] = useState(null); const fileInputRef = useRef(null); const [showEdit, setShowEdit] = useState(false); const handleFileChange = async (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (!file) return; setUploading(true); setError(null); await user.uploadAvatar({ file, onSuccess: (url) => { onAvatarUploaded(url); setUploading(false); }, onError: (msg) => { setError(msg); setUploading(false); }, }); }; return (
{error && }
); }