Commit graph

8 commits

Author SHA1 Message Date
67a41d78ea refactor: 폴더 구조 재편 (Phase 1)
- api/: common/, pc/common/, pc/public/, pc/admin/ 구조로 변경
- components/: pc/public/, pc/admin/ 구조로 변경
- hooks/: common/, pc/admin/ 구조로 변경
- pages/: pc/public/, mobile/ 구조로 변경
- confetti.js를 utils/로 이동
- 모든 import 경로 업데이트

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 18:37:30 +09:00
9d1f54c68a refactor: 컴포넌트 폴더 구조 정리
- PC 컴포넌트를 components/pc/로 이동 (Calendar, ScheduleCard, BirthdayCard, CategoryFilter)
- Mobile 컴포넌트를 components/mobile/로 이동 (Mobile 접두사 제거)
- components/schedule/에는 공용 코드만 유지 (confetti.js, AdminScheduleCard)
- Schedule, Home 페이지의 import 경로 업데이트
- 관련 문서 업데이트

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 12:08:47 +09:00
97850b12c1 refactor: 코드 구조 개선 및 중복 제거
- 페이지 폴더 구조를 문서대로 정리 (pc/, mobile/ 하위 폴더)
- Mobile Schedule 리팩토링 (1,495줄 → 780줄, 48% 감소)
- MobileCalendar를 별도 공통 컴포넌트로 분리
- MobileBirthdayCard에 motion/delay 지원 추가
- 중복 상수 통합: CATEGORY_ID, MIN_YEAR, SEARCH_LIMIT, MEMBER_ENGLISH_NAMES
- sections/utils.js 중복 함수 제거 (@/utils에서 re-export)
- formatXDateTime 함수 개선 (datetime 문자열 직접 처리)
- 모바일 유튜브 숏츠 표시 개선 (가로 비율, 전체화면시 세로)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:32:43 +09:00
7a076aaffd feat(frontend-temp): Phase 9 - 스케줄 페이지 구현
PC 스케줄 페이지:
- Calendar 컴포넌트 (년/월 선택, 날짜 선택, 일정 점 표시)
- CategoryFilter 컴포넌트 (카테고리별 필터링)
- 검색 기능 (무한 스크롤 + 가상 스크롤 + 자동완성)
- 생일 폭죽 애니메이션

Mobile 스케줄 페이지:
- 달력 뷰 / 리스트 뷰 전환
- 월 선택 드롭다운
- 검색 기능 (무한 스크롤)
- 날짜별 그룹화된 일정 목록

공통 컴포넌트:
- BirthdayCard (PC/Mobile)
- fireBirthdayConfetti 함수

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 09:08:30 +09:00
0255b35616 feat(frontend): 일정 카드 컴포넌트 5종 생성
PC 카드 (2종):
- ScheduleCard: 일반 일정 카드 (홈, 스케줄 페이지)
- AdminScheduleCard: 관리자 일정 카드 (편집/삭제 버튼 포함)

Mobile 카드 (3종):
- MobileScheduleCard: 홈 페이지용 (간결한 레이아웃)
- MobileScheduleListCard: 스케줄 타임라인용 (날짜 없이 시간/카테고리)
- MobileScheduleSearchCard: 검색 결과용 (왼쪽에 날짜 표시)

공통 변경:
- decodeHtmlEntities를 사용하여 HTML 엔티티 디코딩
- getDisplayMembers 유틸 추가 (5명 이상일 때 프로미스나인 표시)
- getMemberList가 member_names 문자열 처리하도록 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:40:07 +09:00
9b96c475a7 refactor(frontend): 일정 카드를 공유 컴포넌트로 분리
- ScheduleCard (PC): 카테고리와 source name 분리, Link2 아이콘 사용
- MobileScheduleCard (Mobile): 동일한 구조로 분리
- Home 페이지에서 컴포넌트 사용하도록 변경
- 멤버 5명 이상이면 '프로미스나인'으로 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:31:28 +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