Commit graph

53 commits

Author SHA1 Message Date
1a9fa54981 fix: 생일 표시 버그 수정 및 데이트픽커 개선
- 생일이 생년 이전 년도에 표시되는 버그 수정
- 페이지 진입 애니메이션 추가 (사전 관리, 일정 추가)
- 데이트픽커 12년 단위 이동으로 변경
- 년도 선택 시 월 선택 화면 전환 제거
- 시작 년도 2025년 고정, 이전 이동 비활성화
- PC/모바일 일정 페이지, 관리자 페이지 모두 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:41:34 +09:00
c5f5639b11 fix: 모바일 일정 페이지 카테고리 API 형식 수정 및 X source.name 비움
- 모바일 Schedule.jsx: category 객체 형식 지원 (category.id, category.name 등)
- 백엔드 API: X 일정의 source.name을 빈 문자열로 변경
- Meilisearch: 검색 결과도 source 객체 형식으로 통일

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:16:24 +09:00
d4697ad996 refactor: 일정 API source 객체 구조 변경
- source_name, source_url → source: { name, url } 형태로 변경
- YouTube: schedule_youtube에서 video_id로 URL 생성
- X: schedule_x에서 post_id로 URL 생성
- 프론트엔드 전체 파일 source 객체 형태로 수정
- 문서 업데이트 (api.md, architecture.md, migration.md 등)
- tracks → album_tracks 테이블명 변경 반영

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 21:50:04 +09:00
b89255780e refactor: 일정 API 응답 형식에 맞게 프론트엔드 수정
- API 응답(날짜별 그룹화)을 플랫 배열로 변환하는 로직 추가
- 별도 카테고리 API 호출 제거, 일정 데이터에서 카테고리 추출
- PC/모바일 Schedule.jsx, AdminSchedule.jsx 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 17:52:15 +09:00
9d6d4a1ad3 refactor: 모바일 스케줄 페이지 수정 2026-01-16 02:16:03 +09:00
b023e08750 fix: 일정 상세 화면 UI 개선
PC/모바일 웹:
- 콘서트 선택된 일정 텍스트 볼드체 제거
- 모바일 콘서트 헤더 장소 표시 제거
- 모바일 콘서트 포스터 여백 제거

Flutter 앱:
- lucide_icons 사용하여 웹과 동일한 아이콘 적용
- 콘서트 헤더 장소 제거 및 포스터 여백 제거
- 콘서트 선택된 일정 볼드체 제거
- 지도 플레이스홀더 추가 (탭시 카카오맵 이동)
- 길찾기 버튼 색상 blue-500으로 변경
- 유튜브 섹션: 숏츠 둥근 테두리, 버튼 제거, 유튜브 아이콘으로 교체
- X 섹션: 웹과 동일한 디자인 (프로필, @username, 인증배지, X로고 버튼)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 21:39:29 +09:00
7d96407bfe 모바일 콘서트 섹션 개선 및 달력 일정 점 표시 수정
- 콘서트 UI 최적화: 포스터 썸네일화, 공연 일정 세로 배치
- 카카오맵 SDK 연동으로 실제 지도 표시
- 회차 변경 시 keepPreviousData로 부드러운 전환
- 달력 다른 달 이동 시 일정 점 표시 (비동기 조회)
- PC 콘서트 섹션 그림자 통일 (shadow-lg shadow-black/5)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 21:20:27 +09:00
8ec2b1d6be 모바일 일정 상세 페이지 X 섹션 구현
- X 스타일 카드 UI (프로필, 본문, 이미지, 날짜)
- 프로필 정보 API 연동 (getXProfile)
- X 스타일 날짜/시간 포맷팅
- X에서 보기 버튼

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 21:02:48 +09:00
e4859471ba 모바일 일정 상세 페이지 구현 (유튜브 섹션)
- 모바일 일정 상세 페이지 기본 구조 구현
- 유튜브 섹션: 일반 영상/숏츠 구분 렌더링
- 전체화면 시 가로 회전 (숏츠 제외)
- 일정 목록에서 상세 페이지로 이동 클릭 이벤트 추가
- mobile-layout 클래스 시스템으로 스크롤바 숨김 처리
- zustand store로 날짜 상태 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 20:57:55 +09:00
f51a3f754a feat: 모바일 일정 상세 페이지 및 에러 UI 추가
- MobileScheduleDetail 컴포넌트 생성
- 404 에러 페이지 UI (애니메이션 포함)
- /schedule/:id 라우트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 20:12:23 +09:00
6275f0f92a feat: 생일 기능 추가 및 일정 페이지 개선
- 생일 카드 컴포넌트 추가 (PC/모바일)
- 생일 폭죽(confetti) 애니메이션 적용 (하루에 한 번)
- 생일 상세 페이지 추가 (/birthday/멤버이름/년도)
- 관리자 일정 페이지에 생일 표시 (수정/삭제 버튼 숨김)
- 일정 상세 페이지 404 에러 UI 개선
- 일정 상세 페이지 불필요한 재시도 방지 (retry: false)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 20:09:26 +09:00
94fc7b4c7f feat(frontend): PC/모바일 404 페이지 추가
- PC/모바일 각각 사이트 스타일에 맞는 404 페이지 생성
- framer-motion 애니메이션 적용
- PC Layout 수정으로 푸터 하단 고정
- 모바일은 100dvh로 스크롤 없이 전체 화면 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:57:28 +09:00
2de5cb8f93 feat(mobile/schedule): 검색 UX 개선 및 데이트픽커 스타일 수정
- 데이트픽커 년/월 선택에서 오늘 날짜 초록색 강조
- 검색어 변경 시 스크롤 초기화 개선 (requestAnimationFrame)
- 유튜브 스타일 검색 UX 구현
  - X 버튼 클릭 시 추천 검색어 화면으로 전환
  - 뒤로가기 시 검색 결과 복원 및 검색어 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 23:06:08 +09:00
7a1e04b6ae 모바일 웹: 멤버 페이지 UI 개선 (앱 디자인 적용)
- 그리드 레이아웃에서 카드 스와이프 스타일로 변경
- 상단 썸네일 인디케이터 추가 (자동 스크롤, 클릭 이동)
- 멤버 페이지 헤더 그림자 제거 (noShadow prop)
- Swiper 라이브러리로 좌우 스와이프 구현
- 카드 그림자 및 레이아웃 최적화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:38:59 +09:00
300fe18a8d Flutter 앱: 컨셉포토 갤러리, UI 개선, 앱 이름 변경
- 컨셉포토 전체보기 화면 추가 (2열 Masonry 레이아웃)
- ConceptPhoto 모델에 width, height, members, concept 필드 추가
- 앨범 상세/갤러리 화면 스크롤 시 툴바 색상 고정
- 멤버 인디케이터 중앙 정렬 수정
- 티저 포토 → 티저 이미지로 명칭 변경
- 뒤로가기 두 번 종료 기능 제거
- 앱 이름 fromis9 → fromis_9로 변경

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 13:02:40 +09:00
255839a598 비디오 티저 썸네일 추출 기능 추가
- DB: album_teasers 테이블에 video_url 컬럼 추가
- 백엔드: 비디오 업로드 시 ffmpeg로 썸네일 추출 후 WebP 저장
- 백엔드: video_url에 MP4 URL 저장, 썸네일은 기존 URL 필드 사용
- 프론트엔드: 썸네일 이미지 표시, 클릭 시 video_url로 재생
- Flutter 앱: Teaser 모델에 videoUrl 필드 추가 및 비디오 재생 수정
- Docker: ffmpeg 설치 추가 (Dockerfile, docker-compose.dev.yml)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 11:59:58 +09:00
7e570d3408 모바일 곡 상세: 뒤로가기 헤더 제거 2026-01-12 19:01:22 +09:00
db6949d53e 모바일 곡 상세: YouTube 전체화면 시 자동 가로 회전 시도 2026-01-12 18:58:06 +09:00
b5f668a8f9 모바일 곡 상세: YouTube iframe fullscreen 권한 추가 2026-01-12 18:54:31 +09:00
5f2c86b783 모바일 곡 상세: 가사 더보기/접기 기능 추가, 하단 여백 조정 2026-01-12 18:51:38 +09:00
5d4c2f32fc 모바일 곡 상세: 수록곡 섹션 제거 2026-01-12 18:49:45 +09:00
e5d403655e 모바일: 곡 상세 화면 구현 (TrackDetail 페이지) 2026-01-12 18:48:00 +09:00
dc65858d6b 웹: AlbumDetail, AlbumGallery 페이지 useQuery로 리팩토링 2026-01-12 17:44:28 +09:00
443bd203ca 모바일 갤러리: 높이 기반 균등 분배 알고리즘 적용 2026-01-12 16:08:00 +09:00
b06e9c0ad9 모바일 갤러리: 홀수개 사진일 때 레이아웃 균형 보정 2026-01-12 16:06:00 +09:00
3adefdb38a 모바일: 홈 앨범 카드 그림자 강화 2026-01-12 15:54:00 +09:00
0664c7b594 모바일: 홈 앨범 섹션 배경색 통일, 바텀바 페이지 전환 시 스크롤 맨 위로 2026-01-12 15:53:01 +09:00
d999872517 웹: Schedule 페이지 일정/카테고리 로딩 useQuery로 리팩토링 2026-01-12 15:51:27 +09:00
990d360520 웹: useEffect를 useQuery로 리팩토링 (PC/모바일 공개 페이지) 2026-01-12 15:46:34 +09:00
a89139f056 앱: 애니메이션 및 네비게이션 개선, 문서 업데이트 2026-01-12 15:44:05 +09:00
64e12e47ae 앨범 상세: 바텀시트 웹 동일 애니메이션, 동영상 썸네일 지원 2026-01-12 14:51:15 +09:00
58411f3dca feat(app): 멤버 화면 블러 효과 및 dayjs 날짜 처리 적용
- expo-blur로 모달 배경 블러 효과 구현 (experimentalBlurMethod)
- dayjs로 생일 날짜 형식 처리 (YYYY.MM.DD)
- dayjs로 나이 계산 로직 개선
- 헤더 타이틀 '멤버'로 변경 (웹과 동일)
- .easignore 추가 (상위 폴더 데이터 제외)
- redis_data 폴더 gitignore 추가
2026-01-12 12:47:59 +09:00
d6bc8d79ba 모바일 앨범 갤러리 UI 대폭 개선
- Swiper 라이브러리로 ViewPager 스타일 라이트박스 구현
- LightboxIndicator 컴포넌트에 width prop 추가 (모바일 120px)
- 2열 지그재그 Masonry 그리드 레이아웃
- 바텀시트 정보 표시 (드래그 핸들 지원)
- 뒤로가기 처리 (라이트박스/다이얼로그 닫기)
- 앨범 조회 API: folder_name 또는 title로 검색 (PC/모바일 호환)
2026-01-11 23:15:56 +09:00
de2e02fcd9 feat(Mobile Album): 앨범 상세 UI 개선
- 히어로 섹션 (커버 중앙 + 블러 배경)
- 앨범 소개 바텀시트 다이얼로그 (드래그 닫기)
- 수록곡 더보기/접기 기능
- 컨셉 포토 전체보기 버튼 모바일화
- 뮤직비디오 버튼 제거
- 라이트박스 showNav 조건 추가
- 앨범 API folder_name 검색으로 수정
2026-01-11 22:17:28 +09:00
79a3501ef1 feat(Album): PC 타이틀곡 텍스트 제거 + 모바일 상세 UI 개선
- PC: 앨범 상세에서 '타이틀곡: OOO' 텍스트 제거
- 모바일: 앨범 상세 UI 전면 개선
  - 티저 포토 섹션 추가
  - 수록곡 리스트 스타일 개선 (트랙번호, TITLE 뱃지)
  - 컨셉 포토 6장 프리뷰 + 전체보기 링크
  - 라이트박스 (다운로드, 이전/다음 네비게이션)
- 앨범 API에서 folder_name 반환 추가
2026-01-11 22:04:08 +09:00
2ad5341f9c feat(Search): Mobile Schedule 추천 검색어 API 연동 2026-01-11 21:44:55 +09:00
043925dcb2 feat(Mobile Schedule): 유튜브 스타일 추천 검색어 리스트 추가
- 드롭다운 대신 컨텐츠 영역 전체에 추천 검색어 표시
- 입력값에 따른 실시간 필터링
- 키패드 검색 버튼(Enter) 클릭 시 키패드 닫기
- 검색 결과 모드에서는 autoFocus 비활성화
2026-01-11 18:59:38 +09:00
0376c0ac73 feat: 검색 카드 제목 2줄 ellipsis 적용
- line-clamp-2 추가하여 긴 제목 잘림 처리
2026-01-10 10:37:11 +09:00
3b79aa13c2 feat: 검색 카드 날짜 레이아웃 개선
- 왼쪽에 날짜 세로 배치 (년도/월.일/요일)
- 일요일 빨간색, 토요일 파란색 요일 색상 적용
- 오른쪽 콘텐츠 영역으로 분리
2026-01-10 10:35:00 +09:00
54fe3074dc feat: 검색 결과 카드 디자인 개선
- TimelineScheduleCard 스타일로 리디자인
- 날짜 뱃지 추가 (M.D (요일) 형식)
- 시간/카테고리 뱃지 스타일 통일
- 멤버 태그 그라데이션 적용
- 스프링 애니메이션 추가
2026-01-10 10:31:22 +09:00
83e3689f02 feat: 모바일 검색 뒤로가기 버튼 처리
- enterSearchMode()에서 history.pushState로 히스토리 상태 추가
- popstate 이벤트로 뒤로가기 시 검색 모드 종료
- 이전 페이지로 이동하지 않고 일정 화면으로 복귀
2026-01-10 10:28:21 +09:00
0521e3d0ec fix: 모바일 일정 HTML 엔티티 디코딩 적용
- decodeHtmlEntities 함수 추가
- ScheduleCard, TimelineScheduleCard title에 적용
- &amp; → & 등으로 올바르게 표시
2026-01-10 10:26:21 +09:00
d84ab36a83 fix: 검색 스크롤 초기화 개선
- virtualizer.scrollToOffset(0) 사용
- DOM 스크롤도 함께 초기화 (fallback)
2026-01-10 10:23:03 +09:00
ff2c596865 fix: 검색 시 스크롤 위치 초기화
- searchTerm 변경 시 scrollContainerRef.scrollTop = 0 적용
- 검색 취소 후 재검색 시 맨 위부터 표시
2026-01-10 10:16:19 +09:00
54bbe75ecc fix: 검색 모드 진입 시 기존 일정 숨김
- isSearchMode일 때 searchTerm 없으면 '검색어를 입력하세요' 표시
- 기존 날짜별 일정이 보이지 않도록 조건 수정
2026-01-10 10:14:59 +09:00
c8ec8de946 fix: 모바일 검색 X버튼 중복 및 하단 여백 수정
- type='search' → type='text'로 변경하여 브라우저 기본 X버튼 제거
- 무한 스크롤 트리거 여백 py-4 → py-2로 축소
2026-01-10 10:12:32 +09:00
660acd0007 feat: 모바일 일정 검색에 가상 스크롤 적용
- @tanstack/react-virtual useVirtualizer 적용
- 동적 높이 지원 (measureElement, data-index)
- SEARCH_LIMIT 10 → 20으로 증가
- 검색 결과가 많아도 DOM에는 화면에 보이는 요소만 렌더링
2026-01-10 10:10:36 +09:00
b35dab5eea feat: 모바일 일정 검색 UX 개선
- 입력 시마다 검색 → 키패드 검색 버튼 눌러야 검색으로 변경
- searchInput과 searchTerm 분리
- type='search', enterKeyHint='search' 추가로 모바일 키보드 최적화
- 취소 버튼 잘림 현상 수정 (flex-shrink-0, min-w-0)
2026-01-10 10:05:56 +09:00
d6eb8d410c feat: 모바일 홈 화면 섹션별 애니메이션 추가
- 히어로 섹션: 페이드인 + 텍스트 슬라이드업
- 멤버 섹션: 프로필 팝 애니메이션
- 앨범 섹션: 카드 슬라이드업
- 일정 섹션: 카드 슬라이드인
- 순차적 딜레이로 자연스러운 로딩 효과
2026-01-10 00:11:04 +09:00
dc879fc60d feat: 모바일 멤버 페이지 카드 애니메이션 추가
- 페이드인 + 슬라이드업 애니메이션 적용
- 순차적 딜레이로 자연스러운 등장 효과
2026-01-10 00:09:13 +09:00