- Meilisearch 기반 일정 검색 API 구현
- 멤버 별명으로 검색 지원 (하냥 → 송하영)
- 영문 자판 → 한글 변환 검색 지원
- 검색 응답 구조 개선 (category 객체, datetime 통합, members 배열)
- 개발/배포 환경 Dockerfile 통합 (주석 전환 방식)
- docker-compose.yml 단일 파일로 통합
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 생일 카드 컴포넌트 추가 (PC/모바일)
- 생일 폭죽(confetti) 애니메이션 적용 (하루에 한 번)
- 생일 상세 페이지 추가 (/birthday/멤버이름/년도)
- 관리자 일정 페이지에 생일 표시 (수정/삭제 버튼 숨김)
- 일정 상세 페이지 404 에러 UI 개선
- 일정 상세 페이지 불필요한 재시도 방지 (retry: false)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- dayjs 패키지 설치 (타임존 지원)
- utils/date.js 유틸리티 생성 (getTodayKST, formatDate, parseDateKST 등)
- PC/모바일 Home.jsx의 날짜 계산을 유틸리티로 교체
- PC Schedule.jsx, AdminSchedule.jsx의 getTodayKST 함수를 유틸리티로 교체
- KST 타임존 기준으로 정확한 날짜 계산 보장
- 모바일 레이아웃 및 하단 네비게이션 추가
- 홈 페이지: 히어로, 멤버, 앨범(2개), 일정 섹션
- 멤버 페이지: 현재/전 멤버 분리, 상세 모달
- 앨범 페이지: 목록, 상세, 갤러리
- 일정 페이지: 캘린더 피커, 세로 스크롤 목록
- ScrollToTop 컴포넌트로 페이지 이동 시 스크롤 초기화
- PC 홈 일정 API startDate+limit 방식으로 변경
- react-infinite-scroll-component를 useInfiniteQuery + useInView로 대체
- Schedule.jsx, AdminSchedule.jsx에 안정적인 무한 스크롤 적용
- source_name에 Link2 아이콘 추가 (카테고리 오른쪽 인라인 표시)
- 멤버 5명 이상일 경우 '프로미스나인'으로 표시 (탈퇴 멤버 고려)
- AdminSchedule 일반 모드에서 members 배열도 확인하여 멤버 표시
- QueryClientProvider 설정 추가 (main.jsx)
- 일정 카테고리 CRUD API 추가 (backend/routes/admin.js)
- AdminScheduleCategory 페이지 신규 추가
- 카테고리 추가/수정/삭제 기능
- 드래그 앤 드롭 정렬 (framer-motion Reorder)
- react-colorful 기반 커스텀 색상 선택기
- 중복 카테고리 체크
- AdminScheduleForm에 동적 카테고리 로드 기능 추가
- 삭제 다이얼로그 앨범 스타일로 통일 (AlertTriangle 아이콘, 경고 메시지)
- Toast 컴포넌트 exit 애니메이션 수정
- 토스트 3초 자동 닫힘 기능 추가
- AdminSchedule, AdminScheduleForm 페이지 추가
- 커스텀 타임피커 구현 (오전/오후 지원, 드래그/휠 스크롤)
- Lightbox 공통 컴포넌트 분리 (components/common/Lightbox.jsx)
- 이미지 드래그 앤 드롭 정렬 기능
- 이미지 삭제 확인 다이얼로그
- 이미지 추가 버튼 첫번째 위치 고정
- 일정 이미지 순서 번호 표시
- react-ios-time-picker 라이브러리 CSS 제거
- 컨셉 포토 갤러리 페이지 추가 (AlbumGallery.jsx)
- react-photo-album 라이브러리로 Justified 레이아웃 구현
- 썸네일/원본 이미지 분리 (thumb_400, original 폴더)
- 라우터 변경: /discography → /album
- URL 형식 변경: ID 기반 → 앨범명 기반 (/album/하얀 그리움)
- 앨범명 기반 API 추가 (/api/albums/by-name/:name)
- 브레드크럼 스타일 네비게이션 적용
- 라이트박스 슬라이드 애니메이션 추가
- 점 형태 인디케이터로 변경