- 만렙(isMax): 빨강 (--progress-red: #ef4444)
- 만렙 도달 가능(effectivelyMax, 성장치 초과): 기존 앰버 유지
- 그 외: 에메랄드
기존엔 두 상태 모두 앰버라 구분이 안 됐던 문제 해결.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- computeCompletion 에서 day 0(오늘)의 주간 지급 스킵. 주간퀘 획득 드롭다운
값(0이 아닐 때)이 이미 '이번 주에 받은 수량'을 반영한다고 가정. 목요일이
오늘이어도 day 1(다음 목요일)부터 누적 시작.
별도 토글 없이 드롭다운 값만으로 해결.
- 일일 퀘스트 완료 토글 title 'oldgr 일퀘 완료 여부' → '금일 일일 퀘스트
완료 여부' (표기 일관성)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
유저 체감 개선이 확실치 않고 오히려 버벅임 느낌이 남아있어 관련 6개
커밋 (d1764de, 1344a2f, 48f43ec, f5c5c69, 670d8ab, f63c1e0) 을 git revert.
StaggerGroup 컴포넌트 제거, Feature/Admin 페이지의 Suspense 스피너 복원,
보스 리스트의 border 구조 원복.
prefetch(7ebfe4a), backdrop-blur 제거(669b358), font-display optional
(6e2159c) 은 애니메이션 무관한 최적화라 유지.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- FeaturePage / AdminFeaturePage의 Suspense fallback 스피너를 null로 변경
- components/common/StaggerGroup: 자식을 각 motion.div로 감싸 순차
페이드인 (staggerChildren 0.07s, duration 0.35s, ease 0.22,1,0.36,1)
- Liberation(Genesis/Destiny), Symbol 페이지 root를 StaggerGroup으로 교체
- BossCrystal은 grid 레이아웃 특성상 root 전체를 motion.div로 감싸 fade-in
- hover prefetch와 함께 chunk 로드 시 깜빡임 없이 자연스럽게 등장
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
index.css 의 전역 button:disabled { cursor: not-allowed } 규칙과 개별
컴포넌트의 disabled:cursor-not-allowed / cursor-not-allowed 클래스를 모두
제거해 비활성 상태에서 기본 화살표 커서를 유지한다. opacity 등 기존 시각
피드백은 유지.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Nexon Open API의 character/skill(grade=0) 응답에서 '그란디스/아케인리버
일일퀘스트 완료 시 획득 심볼 N개 증가' 문구를 파싱해 심볼 타입별 보너스를
일퀘 획득량 기본값에 바로 합산한다.
skill_level 필드는 이벤트 스킬에 한해 실제 레벨이 아닌 1로 고정 반환되므로
심볼 증가 개수 → 레벨 역산 테이블로 실제 레벨을 복원한다. 입력창 hover 시
'기본 X + 보약 Y (메이플 스위츠 Lv.Z)' 툴팁으로 근거를 노출.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- SymbolCard / CharacterCard를 React.memo로 감쌈
(심볼 그리드에서 형제 카드 변경 시 불필요 리렌더 방지)
- Liberation의 computeCompletionDate() 호출을 useMemo로 감쌈
(520회 루프가 매 렌더마다 돌던 것을 관련 state 변경 시만 실행)
- Symbol.jsx의 로컬 formatMesoKorean 중복 정의 제거 (utils import)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 푸터를 홈 경로에서만 렌더링 (!fullscreen → isHome)
이동 시 푸터가 잠깐 보였다 사라지는 플래시 제거
- 심볼 관리 타입 배지(아케인/어센틱/그랜드 어센틱) 테마별 토큰화
라이트 모드에서 violet/sky/amber-300이 흰 배경에 안 보이던 문제 해결
- 계산기 페이지의 fullscreen 훅을 useLayoutEffect로 변경
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- API 키 로그인 다이얼로그 + 헤더 로그인 버튼
- /api/character/list 프록시 엔드포인트 (월드 아이콘 매핑 포함)
- 캐릭터 입력 포커스 시 드롭다운 (월드 아이콘, 레벨 정렬, 기존 캐릭 제외, 페이드 애니메이션)
- 관리자 인증을 API 키로 통합 (URL ?key= 파라미터 폐기)
- 헤더에 관리자 링크 버튼 / 홈 링크 버튼 (경로별 배타적 표시)
- 관리자 페이지에서 타이틀 우측에 "관리자" 텍스트
- 이미지 관리 페이지 테마 토큰화
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- CharacterCard/SymbolCard/검색 패널/탭/요약 카드 전체 이관
- 입력/버튼/진행바/메소·체납·MAX 텍스트 모두 semantic 토큰
- equipped 아닌 심볼 카드 opacity 0.6 유지
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
보스 수익 계산기/심볼 계산기에서 저장된 캐릭터의 character_image, level,
직업 정보를 페이지 로드마다 /api/character/search로 재조회해 반영.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 성장치가 만렙까지 cascade 가능한 경우(effectivelyMax) 완료로 취급:
성장치에 (MAX) 표기, 남은 심볼/남은 일수/예상 완료일 '-', 입력/일퀘 버튼 비활성
- 체납 메소/남은 심볼을 성장치 cascade 방식으로 재계산:
여러 레벨을 한 번에 올릴 수 있는 경우도 정확히 반영
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 완료일 계산: 매일 일퀘 + 매 목요일 주간퀘 n회분 일괄 지급으로 시뮬레이션
(extra는 즉시 적용, 금일 일퀘 완료면 오늘 제외)
- 각 카드의 남은 일수/예상 완료일, 탭 전체의 완료 예상일 표시
- 주간퀘에 0회(0개) 옵션 추가
- 성장치 호버 시 현재 성장치로 올릴 수 있는 최대 레벨 툴팁
- 선택 탭(아케인/어센틱/그랜드 어센틱)을 캐릭터별로 persist
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /api/character/symbols 엔드포인트: Nexon API의 symbol-equipment를
(type, region, level, growth, force) 구조로 정제 후 반환
- 프론트: useQueries로 각 캐릭터 심볼 자동 로드, 새로고침마다 갱신,
syncCharacterSymbols로 store의 progress에 병합
- equipped 판정을 store 기반으로 전환
- 남은 심볼/필요 메소/체납 메소 실제 계산, 만렙 시 '-' 표시
- 성장치 라벨 현재 레벨 기준 표시, 만렙 시 MAX/amber 색상 + 퍼센트 숨김
- 일퀘/주간퀘/추가 심볼 비활성화 및 완료 토글 숨김 (만렙)
- 하단 요약 누적 체납/남은 필요 메소 실제 합산, 라벨 색상 통일
- 메소 값 호버 시 '억/만' 한글 축약 툴팁
- Select 비활성 상태에서 금지 커서 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 공개 /api/symbols 엔드포인트 추가 (레벨 포함)
- 심볼 계산기가 DB 데이터 기반으로 탭·카드 구성, 하드코딩 data.js 제거
- 심볼 카드 입력: 일퀘/주간퀘 Select(회→개 표기)/추가 심볼 3열
- 카드 상단에 '금일 일퀘 완료/미완료' 토글 (완료=에메랄드, 미완료=빨간색)
- 관리자 페이지: 목록/폼 실 API 연결, dnd-kit 드래그 순서 변경,
레벨별 메소 입력 쉼표 포매팅 및 한글 요약 표시
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 모델 2개 추가: Symbol (type/region/image/max_level/daily_default/weekly_default/sort_order)
+ SymbolLevel (symbol_id/level/required_count/meso_cost)
- /admin/symbol 라우트와 심볼 목록/편집 UI (결정석 관리 스타일 차용)
- 심볼 목록 dnd-kit 드래그앤드랍 순서 변경
- 심볼 폼: 이미지 업로더, 종류/지역 입력, 만렙·일퀘·주간퀘 입력
- 레벨별 필요 개수/메소 테이블 (만렙에 따라 행 자동 조정)
- 메소 입력 쉼표 포매팅 + "N억 N,NNN만" 한글 요약 (amber, 고정 높이)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /symbol 경로에 Symbol 페이지 추가 (풀스크린 레이아웃)
- 아케인/어센틱/그랜드 어센틱 탭 (DB에서 대표 심볼 아이콘 가져옴)
- 캐릭터 닉네임 검색 → /api/character/search 연동 및 여러 캐릭터 추가 가능
- 캐릭터 카드: 큰 이미지 + 닉네임 + 레벨/직업 (좌우 스크롤)
- 카드 우상단 삭제 버튼
- 캐릭터 목록 + 선택 상태 localStorage 영속화
- 심볼 카드 그리드: 아이콘, 레벨, 성장치 진행바, 일퀘/주퀘 획득 입력,
남은 심볼/필요 메소/체납 메소/남은 일수/예상 완료일 (목업)
- 하단 요약 카드: 만렙 완료 예상일 + 누적 체납 메소 + 누적 필요 메소
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>