1fe3ba0d12
리팩토링 3단계: Symbol.jsx 분리 (717 → 346 줄)
...
- features/symbol/utils.js: formatKoreanDate, computeCompletion, TYPE_ORDER
- features/symbol/pc/user/CharacterCard.jsx: 캐릭터 카드 (memo)
- features/symbol/pc/user/SymbolCard.jsx: 심볼 카드 (memo, 계산 로직 포함)
- Symbol.jsx: 검색/탭/그리드/요약 렌더링만 담당
- basicQueries/symbolQueries 배열을 useMemo로 감쌈 (매 렌더 재생성 방지)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 11:43:52 +09:00
c6ac3366cc
리팩토링 1단계: 공용 utils/FormField 추출
...
- utils/formatting.js 신설 (formatMeso, formatMesoKorean 통합)
- components/common/FormField.jsx 신설 (label+hint+error 공용 래퍼
+ formInputClass/formInputStyle 상수)
- 중복 정의 제거:
* BossForm, SymbolForm, AdminMenuForm의 Field 로컬 정의 삭제
* boss-crystal constants.js의 formatMeso → utils re-export
* SymbolForm의 formatMesoKorean 로컬 정의 삭제
* 3개 폼의 inputCls/inputStyle 상수 삭제
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 11:39:23 +09:00
b423d0ac82
구조 개편 2단계: features 내부에 pc/ 폴더 생성 + 이동
...
- features/boss-crystal/pc/: BossCrystal, BossCrystalAdmin, admin/, user/
- features/symbol/pc/: Symbol, SymbolAdmin, admin/
- features/liberation/pc/: Liberation, components/
- store.js, data.js는 feature 루트에 유지 (device 공용)
- registry.js: import.meta.glob 패턴을 './*/\{pc,mobile\}/*.jsx' 로 변경
- getMobileComponent 추가
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 11:26:12 +09:00