Commit graph

10 commits

Author SHA1 Message Date
218b825878 refactor: 일정 관리 컴포넌트 분리 (Phase 3)
- AnimatedNumber 공통 컴포넌트 추출 (32줄)
- BotCard 컴포넌트 분리 + XIcon, MeilisearchIcon 포함 (233줄)
- CategoryFormModal 컴포넌트 분리 (195줄)
- ScheduleBots.jsx: 570줄 → 339줄 (231줄 감소)
- ScheduleCategory.jsx: 441줄 → 289줄 (152줄 감소)
- 문서 업데이트: 개선 결과 테이블 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 10:21:06 +09:00
21639171e1 fix(lightbox): X 버튼 이벤트 버블링 및 닫기 애니메이션 수정
- PC Lightbox X 버튼에 e.stopPropagation() 추가 (이중 닫힘 방지)
- MobileLightbox AnimatePresence 구조 수정 (exit 애니메이션 활성화)
- 모바일 앨범 상세/갤러리 페이지에 헤더 표시 (hideHeader → pageTitle)
- 문서에 MobileLightbox 컴포넌트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:21:56 +09:00
791a3d699a refactor(lightbox): MobileLightbox 공통 컴포넌트 분리
- MobileLightbox 컴포넌트 생성 (Swiper 기반 터치 스와이프)
  - 사진 정보 바텀시트 내장
  - 다운로드, 카운터, 비디오 지원
- Mobile AlbumDetail에서 MobileLightbox 사용 (-185줄)
- Mobile AlbumGallery에서 MobileLightbox 사용 (-188줄)
- 코드 중복 제거로 총 414줄 감소

라이트박스 컴포넌트 구조:
- Lightbox: PC용 (키보드/클릭 네비게이션)
- MobileLightbox: Mobile용 (Swiper 터치 스와이프)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:11:52 +09:00
6cbe4fe6e2 refactor(lightbox): PC AlbumDetail에서 공통 Lightbox 컴포넌트 사용
- 공통 Lightbox 컴포넌트에 비디오 지원 추가 (teasers prop)
- 사진 메타데이터 표시 지원 (photos prop으로 컨셉/멤버 정보)
- showCounter, showDownload props 추가
- PC AlbumDetail의 인라인 라이트박스 코드 제거 (-285줄)
- 코드 중복 제거 및 유지보수성 향상

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 13:31:41 +09:00
57d4f1dd5c refactor: High 우선순위 코드 품질 개선
- utils/youtube.js: YouTube URL 파싱 유틸리티 생성
  - getYoutubeVideoId, getYoutubeThumbnail, getYoutubeEmbedUrl
- utils/format.js: parseCredits, calculateTotalDuration 함수 추가
- hooks/useLightbox.js: 라이트박스 상태 관리 훅 생성
- components/common/ErrorMessage.jsx: 에러 메시지 컴포넌트 생성
- components/common/Loading.jsx: size prop 추가 (sm, md, lg)
- TrackDetail (PC/Mobile): 중복 함수 제거, 유틸리티 사용
- AlbumDetail (PC/Mobile): getTotalDuration -> calculateTotalDuration 유틸리티 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 12:40:31 +09:00
d9b8e67b9a refactor: Critical 코드 품질 개선
- useAdminAuth: useRef로 logout 함수 안정화하여 무한 루프 방지
- useAdminAuth/useRedirectIfAuthenticated: queryKey 충돌 해결
- useAuthStore: 미사용 getToken, checkAuth 메서드 제거
- useUIStore: 미사용 confirmDialog 관련 코드 제거
- 카드 컴포넌트 React.memo 적용 (PC/Mobile ScheduleCard, BirthdayCard 등)
- 접근성(a11y) 개선: aria-label, role 속성 추가
  - Toast: role="alert", aria-live="polite"
  - Lightbox: role="dialog", aria-modal, aria-label
  - Calendar: 버튼 aria-label, aria-pressed, aria-expanded
  - LightboxIndicator: aria-label, aria-current

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 12:33:26 +09:00
86bf2359f2 feat(frontend): Phase 6 - 공통 컴포넌트 및 레이아웃 구현
- 공통 컴포넌트: Loading, ErrorBoundary, Toast, Tooltip, ScrollToTop, Lightbox
- PC 레이아웃: Layout, Header, Footer
- Mobile 레이아웃: Layout (Header + BottomNav 통합)
- CSS: pc.css, mobile.css (디바이스별 스타일)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:16:09 +09:00
2d42bf1603 revert(frontend): Phase 5로 롤백 - 구조 재설계
Phase 6-9에서 추가된 파일 제거
- react-device-detect 미사용 문제로 인한 구조 재설계
- 올바른 폴더 구조로 재시작 예정:
  - pages/{feature}/pc/, pages/{feature}/mobile/ 구조
  - react-device-detect BrowserView/MobileView 사용
  - components/pc/, components/mobile/ 레이아웃 분리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:11:21 +09:00
84030019cd feat(frontend): Phase 6 - 공통 컴포넌트 구현
- ErrorBoundary: 에러 경계 컴포넌트
- Loading: 로딩 스피너 (sm/md/lg, FullPageLoading, InlineLoading)
- Toast, ToastContainer: 토스트 알림 (useUIStore 연동)
- Lightbox: 이미지 라이트박스 (키보드 네비게이션)
- ScheduleCard: 스케줄 카드 (public/admin variant)
  - public: 공개 페이지용 카드 스타일
  - admin: 관리자 페이지용 리스트 스타일 (수정/삭제 버튼 포함)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:39:48 +09:00
4ec368c936 feat(frontend): Phase 1 - 리팩토링을 위한 frontend-temp 프로젝트 셋업
- frontend-temp/ 폴더 생성 (Strangler Fig Pattern)
- package.json: clsx 추가, 버전 2.0.0
- vite.config.js: @ path alias 추가
- 기본 폴더 구조 생성 (api, components, hooks, pages, stores, utils, constants)
- docker-compose.yml: fromis9-frontend-dev 서비스 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:04:18 +09:00