'use client'; import { Camera, Loader2 } from 'lucide-react'; import { useId } from 'react'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Skeleton } from '@/components/ui/skeleton'; import { useResilientBlobUrl } from '@/hooks/use-resilient-blob-url'; import { cn } from '@/lib/utils'; interface HoverUploadAvatarProps { name: string; imageUrl?: string | null; imageToken?: string | null; uploading?: boolean; onFileSelect: (file: File) => void; className?: string; fallbackClassName?: string; } export function HoverUploadAvatar({ name, imageUrl, imageToken = null, uploading = false, onFileSelect, className, fallbackClassName }: HoverUploadAvatarProps) { const inputId = useId(); const { blobUrl, isLoading } = useResilientBlobUrl(imageUrl, imageToken, { enabled: Boolean(imageUrl && imageToken), label: `аватар ${name}` }); const resolvedUrl = blobUrl ?? (imageToken ? null : imageUrl); return ( ); }