import React, { useEffect } from 'react';
import { Routes, Route, useLocation } from 'react-router-dom';
import { AnimatePresence, motion } from 'framer-motion';
import DeviceLayout, { useIsMobile } from './components/DeviceLayout';
import Sidebar from './components/Sidebar';
import ServerDetail from './pages/ServerDetail';
import WorldsPage from './pages/WorldsPage';
import PlayersPage from './pages/PlayersPage';
import PlayerStatsPage from './pages/PlayerStatsPage';
import WorldMapPage from './pages/WorldMapPage';
import LoginPage from './pages/LoginPage';
import RegisterPage from './pages/RegisterPage';
import VerifyEmailPage from './pages/VerifyEmailPage';
import Admin from './pages/Admin';
import ProfilePage from './pages/ProfilePage';
// 페이지 전환 애니메이션 래퍼 컴포넌트
const PageWrapper = ({ children }) => (
{children}
);
function App() {
const isMobile = useIsMobile();
const location = useLocation();
// 인증 페이지 여부 확인 (사이드바 없이 렌더링)
const isAuthPage = ['/login', '/register'].includes(location.pathname) ||
location.pathname.startsWith('/verify/');
// 별도 레이아웃 페이지 (관리자, 프로필)
const isStandalonePage = ['/admin', '/profile'].includes(location.pathname);
// 라우트 전환 시 스크롤 맨 위로
useEffect(() => {
window.scrollTo(0, 0);
}, [location.pathname]);
// 인증 페이지는 사이드바 없이 렌더링
if (isAuthPage) {
return (