🕐 커밋 시간: 2025. 11. 12. 20:31:11
📊 변경 통계:
• 총 파일: 1개
• 추가: +114줄
• 삭제: -9줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• 중간 규모 기능 개선
catch 블록의 'error' 변수명을 'err'로 변경하여
외부 state 변수와의 명칭 충돌 해결:
- MediaPlayer.v2.jsx (Line 447)
- ProductVideo.v2.jsx (Line 595)
- MediaPanel.jsx (Line 344)
🎯 효과:
- ESLint no-catch-shadow 경고 제거
- 코드 명확성 향상
📝 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
비디오 플레이어 관련 컴포넌트들의 타이머와 이벤트 리스너를 체계적으로 정리하여 메모리 누수 방지:
## ProductVideo.v2.jsx
- autoPlay 타이머 정리 강화 (dependency 최적화)
- 전체화면 전환 시 타이머 정리 명시
- Optional chaining으로 null 안정성 향상
- Document 이벤트 리스너 정리 명확화
## MediaPanel.jsx
- onEnded 타이머를 useRef로 추적 및 정리
- 컴포넌트 언마운트 시 전체 cleanup 함수 추가
- 비디오 플레이어 강제 정지로 리소스 누수 방지
- Modal 스타일 설정 시 ResizeObserver 정리 준비
## MediaPlayer.v2.jsx
- proportionLoaded 업데이트 타이머 최적화 (비디오 재생 중일 때만)
- 컴포넌트 언마운트 시 모든 타이머 및 상태 정리 강화
- Optional chaining으로 안정성 향상
- hideControls 메서드 타이머 정리 의도 명확화
🎯 효과:
- 장시간 비디오 재생 시 메모리 누수 방지
- 여러 번 반복 재생/정지 시 타이머 누적 방지
- 전체화면 전환 시 리소스 누수 방지
- 컴포넌트 언마운트 시 완전한 정리
📝 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
🕐 커밋 시간: 2025. 11. 12. 17:35:22
📊 변경 통계:
• 총 파일: 2개
• 추가: +57줄
• 삭제: -28줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/components/VideoPlayer/MediaPlayer.jsx
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• UI 컴포넌트 아키텍처 개선
• 소규모 기능 개선
🕐 커밋 시간: 2025. 11. 12. 15:28:31
📊 변경 통계:
• 총 파일: 2개
• 추가: +67줄
• 삭제: -31줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.module.less
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• 소규모 기능 개선
🕐 커밋 시간: 2025. 11. 12. 13:06:56
📊 변경 통계:
• 총 파일: 1개
• 추가: +63줄
• 삭제: -3줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• 소규모 기능 개선
🕐 커밋 시간: 2025. 11. 12. 10:53:05
📊 변경 통계:
• 총 파일: 6개
• 추가: +42줄
• 삭제: -2줄
📁 추가된 파일:
+ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/ThemeContents.figma.jsx
+ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/ThemeContents.jsx
+ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/ThemeContents.module.less
📝 수정된 파일:
~ com.twin.app.shoptime/src/style/CommonStyle.module.less
~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/ShopNowContents.jsx
~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/ShopNowContents.v2.module.less
🔧 주요 변경 내용:
• 소규모 기능 개선
• 모듈 구조 개선
🕐 커밋 시간: 2025. 11. 11. 19:49:42
📊 변경 통계:
• 총 파일: 2개
• 추가: +2줄
• 삭제: -1줄
📁 추가된 파일:
+ com.twin.app.shoptime/.docs/player-panel/TabContainerV2-Divider-Problem-Analysis.md
📝 수정된 파일:
~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/ShopNowContents.jsx
🔧 주요 변경 내용:
• 개발 문서 및 가이드 개선
🕐 커밋 시간: 2025. 11. 11. 19:14:36
📊 변경 통계:
• 총 파일: 1개
• 추가: +9줄
• 삭제: -7줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• 코드 정리 및 최적화
🕐 커밋 시간: 2025. 11. 11. 19:08:01
📊 변경 통계:
• 총 파일: 6개
• 추가: +71줄
• 삭제: -70줄
📁 추가된 파일:
+ com.twin.app.shoptime/src/actions/mediaOverlayActions.js
+ com.twin.app.shoptime/src/middleware/mediaAutoCloseMiddleware.js
+ com.twin.app.shoptime/src/reducers/mediaOverlayReducer.js
📝 수정된 파일:
~ com.twin.app.shoptime/src/components/VideoPlayer/MediaPlayer.v2.jsx
~ com.twin.app.shoptime/src/store/store.js
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• UI 컴포넌트 아키텍처 개선
• 핵심 비즈니스 로직 개선
• 소규모 기능 개선
• 코드 정리 및 최적화
• 모듈 구조 개선
🕐 커밋 시간: 2025. 11. 11. 17:17:07
📊 변경 통계:
• 총 파일: 3개
• 추가: +55줄
• 삭제: -15줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
~ com.twin.app.shoptime/src/views/MainView/MainView.jsx
~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx
🔧 주요 변경 내용:
• 소규모 기능 개선
🕐 커밋 시간: 2025. 11. 11. 15:06:28
📊 변경 통계:
• 총 파일: 2개
• 추가: +149줄
• 삭제: -45줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/reducers/videoOverlayReducer.js
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• 핵심 비즈니스 로직 개선
• 중간 규모 기능 개선
🕐 커밋 시간: 2025. 11. 11. 14:07:12
📊 변경 통계:
• 총 파일: 3개
• 추가: +211줄
• 삭제: -37줄
📝 수정된 파일:
~ com.twin.app.shoptime/src/components/VideoPlayer/MediaPlayer.jsx
~ com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
🔧 주요 변경 내용:
• UI 컴포넌트 아키텍처 개선
• 대규모 기능 개발
- VideoPlayer 컴포넌트에 onClick={handleVideoPlayerClick} 추가
- MediaPlayer가 modal 모드일 때 onClick을 처리하는 기능 활용
- 비디오 재생 중 클릭으로 전체화면 토글 동작
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- VideoPlayer ref 호환성 문제로 인해 MediaPlayer.jsx로 복구
- MediaPlayerV2는 함수 컴포넌트로 ref 접근 불가능
- ProductVideoV2와의 ref 호환성을 위해 원래 MediaPlayer 유지
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- MediaPlayer -> MediaPlayer.v2로 import 변경
- VideoPlayer -> MediaPlayerV2 as VideoPlayer로 변경
- 최적화된 비디오 플레이어 컴포넌트 사용으로 클릭 이벤트 감지 개선 예상
- 불필요한 window 레벨 클릭 감지 로그 제거
MediaPlayer.v2 특징:
- 함수 컴포넌트 + React Hooks
- 최소한의 상태 관리 (6~9개)
- Modal ↔ Fullscreen 전환 지원
- 메모리 효율성 우선
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
🎬 태그를 붙인 상세한 콘솔 로그 추가:
- handleThumbnailClick: 썸네일 클릭 감지
- handleVideoPlayerClick: 비디오 재생 중 클릭 감지 및 상태 검사
- handleVideoPlayerMouseDown: MouseDown 이벤트 감지
- toggleFullscreen: 전체화면 토글 상태 변화
- videoPlayerWrapper onClick/onMouseDownCapture: wrapper 레벨 이벤트
- normalContainerRef onClick/onMouseDownCapture: 컨테이너 레벨 이벤트
각 로그에는 다음 정보 포함:
- 현재 isPlaying, isFullscreen 상태
- 이벤트 타입 (type, target 등)
- 조건 만족 여부
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- TItemCard에 전달되던 중복 productTitle prop 제거
- productName prop이 이미 동일한 값(prdtNm)을 전달하고 있음
- React 경고 메시지 해결: "React does not recognize the 'productTitle' prop on a DOM element"
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- normalContainerRef div에 onClick 및 onMouseDownCapture 핸들러 추가
- videoPlayerWrapper div에 onMouseDownCapture 추가 (capture phase 이벤트 처리)
- CSS에 pointer-events: auto 및 cursor: pointer 추가
- 콘솔 로그 추가로 이벤트 감지 디버깅
이제 비디오 재생 중 클릭 시 엔터 키와 동일하게 전체화면으로 전환됨
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- 비디오 재생 중 클릭 시에도 엔터 키와 동일하게 전체화면으로 전환되도록 개선
- handleVideoPlayerClick 핸들러 추가
- 일반 재생 모드에서만 작동하며, 이미 전체화면 상태일 때는 작동하지 않음
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
si 브랜치의 최신 변경사항을 병합하고 ProductVideoV2 오버레이 로직 개선 적용
- si 브랜치의 renderVideoPlayer() 함수 구조 채택
- ProductVideoV2에 오버레이 제어 로직 적용:
- noAutoShowMediaControls={!isFullscreen} 추가
- panelInfo={{ modal: !isFullscreen }} 동적 설정
- 작은 화면에서는 오버레이 숨김, 전체화면에서만 표시하도록 개선
- HomeBanner/PlayerPanel의 동작 방식과 동일하게 통일
Conflict 해결:
- ProductVideo.v2.jsx: renderVideoPlayer() 함수 방식 채택 + 오버레이 제어 로직 추가
작은 화면에서는 오버레이를 숨기고, 전체화면에서만 표시하도록 수정
- panelInfo.modal 값을 동적으로 설정 (!isFullscreen)
- noAutoShowMediaControls 추가로 일반 모드에서 자동 표시 방지
- HomeBanner/PlayerPanel의 동작 방식과 동일하게 개선
이제 DetailPanel의 ProductVideoV2도 다음과 같이 동작:
1. 썸네일 클릭 → 작은 화면 재생 (오버레이 숨김)
2. 엔터/클릭 → 전체화면 전환 (오버레이 표시)
3. 일정 시간 후 오버레이 자동 숨김
🕐 커밋 시간: 2025. 11. 11. 12:13:55
📊 변경 통계:
• 총 파일: 8개
• 추가: +84줄
• 삭제: -124줄
📁 추가된 파일:
+ com.twin.app.shoptime/src/components/VideoPlayer/MediaPlayer.module.less
📝 수정된 파일:
~ com.twin.app.shoptime/src/components/VideoPlayer/MediaPlayer.jsx
~ com.twin.app.shoptime/src/components/VideoPlayer/MediaPlayer.v2.jsx
~ com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx
~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx
~ com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.jsx
~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.module.less
~ com.twin.app.shoptime/src/views/SearchPanel/VoiceInputOverlay/VoiceInputOverlay.jsx
🔧 주요 변경 내용:
• UI 컴포넌트 아키텍처 개선
• 소규모 기능 개선
• 코드 정리 및 최적화
• 모듈 구조 개선
Performance: 코드 최적화로 성능 개선 기대
- claude/ 브랜치에서 누락된 .docs 폴더 복원 완료
- dispatch-async 관련 문서 9개 파일 복원
* 01-problem.md, 02-solution-dispatch-helper.md
* 03-solution-async-utils.md, 04-solution-queue-system.md
* 05-usage-patterns.md, 06-setup-guide.md
* 07-changelog.md, 08-troubleshooting.md, README.md
- MediaPlayer.v2 관련 문서 4개 파일 복원
* MediaPlayer-v2-README.md, MediaPlayer-v2-Required-Changes.md
* MediaPlayer-v2-Risk-Analysis.md, PR-MediaPlayer-v2.md
- 기타 분석 문서 2개 파일 복원
* modal-transition-analysis.md, video-player-analysis-and-optimization-plan.md
- .gitignore에서 .docs 항목 제거로 문서 추적 가능하도록 수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: GLM 4.6 <noreply@z.ai>