feat: 설정 화면 구현 (JSA-37)

- SettingsScreen 컴포넌트 추가 (언어선택, BGM 토글, 앱 버전, 게임 초기화)
- 게임 데이터 초기화: 2단계 확인 다이얼로그 (localStorage 전체 삭제 후 리로드)
- 언어 설정: 한국어/English 세그먼트 버튼 (language 상태 persist)
- BGM 토글 스위치 (bgmEnabled 상태 persist)
- 마지막 저장 시각 및 오프라인 보상 최대 24시간 안내 텍스트
- BottomTabBar에 ⚙️ 설정 탭 추가
- useGameStore에 TabName 'settings', Language 타입 및 관련 액션 추가

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-01 00:41:36 +09:00
parent e1cc6b2ea8
commit c9ab987e02
4 changed files with 448 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ 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 { SettingsScreen } from '../src/components/screens/SettingsScreen';
import { useIdleTick } from '../src/hooks/useIdleTick';
import { useGameStore } from '../src/store/useGameStore';
import { trackGameEvent } from '../src/analytics';
@@ -54,6 +55,7 @@ export default function IndexPage() {
{activeTab === 'evolution' && <EvolutionScreen />}
{activeTab === 'fusion' && <FusionScreen />}
{activeTab === 'shop' && <ShopScreen />}
{activeTab === 'settings' && <SettingsScreen />}
</div>
<BottomTabBar activeTab={activeTab} onTabChange={setActiveTab} />
</div>