import React, { useState, useEffect } from 'react'; import { Bell } from 'lucide-react'; import { useAuth } from '@/contexts/auth'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Skeleton } from '@/components/ui/skeleton'; import { useIsMobile } from '@/hooks/use-mobile'; const Header: React.FC = () => { const { user } = useAuth(); const userName = user?.user_metadata?.username || '익명'; const [imageLoaded, setImageLoaded] = useState(false); const [imageError, setImageError] = useState(false); const isMobile = useIsMobile(); // 이미지 프리로딩 처리 useEffect(() => { const preloadImage = new Image(); preloadImage.src = '/zellyy.png'; preloadImage.onload = () => { setImageLoaded(true); }; preloadImage.onerror = () => { console.error('아바타 이미지 로드 실패'); setImageError(true); }; }, []); return
{!imageLoaded && !imageError ?
: <> setImageLoaded(true)} onError={() => setImageError(true)} /> {(imageError || !imageLoaded) && ZY} }

{user ? `${userName}님, 반갑습니다` : '반갑습니다'}

젤리의 적자탈출

; }; export default Header;