"use client"; import { useState, useEffect } from "react"; import { ArrowUp } from "lucide-react"; import { Button } from "@/components/ui/button"; /** * Scroll to Top 버튼 컴포넌트 * - 모바일/태블릿에서만 표시 (lg 미만) * - 스크롤 시 페이드 인/아웃 애니메이션 * - 부드러운 스크롤 효과 */ export function ScrollToTop() { const [isVisible, setIsVisible] = useState(false); useEffect(() => { // 스크롤 이벤트 핸들러 const toggleVisibility = () => { // 200px 이상 스크롤 시 버튼 표시 if (window.scrollY > 200) { setIsVisible(true); } else { setIsVisible(false); } }; // 스크롤 이벤트 리스너 등록 window.addEventListener("scroll", toggleVisibility); // 초기 상태 설정 toggleVisibility(); // 클린업 return () => { window.removeEventListener("scroll", toggleVisibility); }; }, []); // 상단으로 스크롤 const scrollToTop = () => { window.scrollTo({ top: 0, behavior: "smooth", // 부드러운 스크롤 애니메이션 }); }; return ( ); }