feat: 프레스티지/업적 UI 컴포넌트 추가 및 게임 상태 업데이트 (JSA-55)

- AchievementToast, PrestigeModal, AchievementsScreen 컴포넌트 추가
- BottomTabBar에 업적 탭 연결
- useGameStore 프레스티지/업적 상태 로직 수정
- pages/index.tsx 라우팅 업데이트

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-02 04:19:19 +09:00
parent 3178d880f2
commit 9800d067b9
6 changed files with 1434 additions and 2 deletions

View File

@@ -2,10 +2,12 @@ import { css } from '@emotion/react';
import { useEffect } from 'react';
import { BottomTabBar } from '../src/components/BottomTabBar';
import { OfflineRewardModal } from '../src/components/OfflineRewardModal';
import { AchievementToast } from '../src/components/AchievementToast';
import { ElementsScreen } from '../src/components/screens/ElementsScreen';
import { EvolutionScreen } from '../src/components/screens/EvolutionScreen';
import { FusionScreen } from '../src/components/screens/FusionScreen';
import { ShopScreen } from '../src/components/screens/ShopScreen';
import { AchievementsScreen } from '../src/components/screens/AchievementsScreen';
import { SettingsScreen } from '../src/components/screens/SettingsScreen';
import { useIdleTick } from '../src/hooks/useIdleTick';
import { useGameStore } from '../src/store/useGameStore';
@@ -50,11 +52,13 @@ export default function IndexPage() {
return (
<div css={rootStyle}>
<OfflineRewardModal />
<AchievementToast />
<div css={contentStyle}>
{activeTab === 'elements' && <ElementsScreen />}
{activeTab === 'evolution' && <EvolutionScreen />}
{activeTab === 'fusion' && <FusionScreen />}
{activeTab === 'shop' && <ShopScreen />}
{activeTab === 'achievements' && <AchievementsScreen />}
{activeTab === 'settings' && <SettingsScreen />}
</div>
<BottomTabBar activeTab={activeTab} onTabChange={setActiveTab} />