feat: add prestige system and skill upgrades with comprehensive documentation
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 5m57s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 5m57s
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Refactor Plan: page.tsx
|
||||
|
||||
## Current State
|
||||
- **File:** `src/app/page.tsx`
|
||||
- **Lines:** 650
|
||||
- **Target:** ≤400 lines (reduce by ~250 lines)
|
||||
|
||||
## Proposed File Structure
|
||||
|
||||
### 1. `src/components/game/tabs/PrestigeTab.tsx` (NEW, ≈60 lines)
|
||||
**Contains:**
|
||||
- `PrestigeTab` component (extracted from `renderGrimoireTab`)
|
||||
- Grimoire/Prestige tab UI
|
||||
|
||||
**Rationale:** Self-contained tab component; only depends on store, PRESTIGE_DEF, GUARDIANS.
|
||||
|
||||
### 2. `src/app/page.tsx` (≈300 lines)
|
||||
**Keeps:**
|
||||
- Main `ManaLoopGame` component shell
|
||||
- Tabs definition and lazy loading
|
||||
- Core game loop integration
|
||||
- Most tab content (other tabs remain via lazy loading)
|
||||
|
||||
**Rationale:** Reduces main page by extracting only the Grimoire tab which is standalone.
|
||||
|
||||
## Circular Import Risks
|
||||
|
||||
**LOW RISK:**
|
||||
- `PrestigeTab` depends on store, PRESTIGE_DEF, GUARDIANS - all stable dependencies.
|
||||
- No circular dependency with `page.tsx`.
|
||||
|
||||
**MITIGATION:**
|
||||
- Import store and constants normally in new component.
|
||||
|
||||
## Extraction Order
|
||||
|
||||
**1 → 2**
|
||||
|
||||
1. Create `PrestigeTab.tsx`, move `renderGrimoireTab` content, adapt to be standalone (receive store via hook internally), export component.
|
||||
2. Update `page.tsx`: replace `renderGrimoireTab` call with `<PrestigeTab />`, remove extracted code.
|
||||
3. Verify typecheck, verify ≤400 lines.
|
||||
|
||||
## Notes
|
||||
|
||||
This addresses the main line bloat by only ~60 lines (renderGrimoireTab). To get page.tsx under 400 lines fully would require more extensive splitting (extracting each tab into separate route files, extracting sidebar, etc.). The plan here is conservative - if page.tsx is still >400 after extracting PrestigeTab, we can consider:
|
||||
- Extracting StatsTab/LabTab content further
|
||||
- Extracting activity log rendering
|
||||
- Extracting action buttons
|
||||
But per phase instructions we must get ALL THREE target files under 400 lines, so we must be more aggressive if needed.
|
||||
Reference in New Issue
Block a user