From 03b41c04fc4125c5d6be34b93b0f5d39755fa311 Mon Sep 17 00:00:00 2001 From: optrader Date: Fri, 14 Nov 2025 16:57:47 +0900 Subject: [PATCH] =?UTF-8?q?[251114]=20fix:=20ProductAllSection=20Focus?= =?UTF-8?q?=EB=B3=B5=EA=B5=AC=20=EB=A1=9C=EC=A7=81-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🕐 커밋 시간: 2025. 11. 14. 16:57:47 📊 변경 통계: • 총 파일: 1개 • 추가: +18줄 📝 수정된 파일: ~ com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx --- .../src/views/DetailPanel/DetailPanel.jsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx b/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx index 40c51d8c..5b72bc1b 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx +++ b/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx @@ -713,6 +713,24 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); // 마운트/언마운트 시에만 실행 + // MediaPanel modal 상태 변화 감지 -> ProductVideo로 포커스 이동 + useEffect(() => { + const topPanel = panels[panels.length - 1]; + + // MediaPanel이 modal=true로 복귀했을 때 포커스를 ProductVideo로 이동 + if ( + topPanel && + topPanel.name === panel_names.MEDIA_PANEL && + topPanel.panelInfo.modal === true + ) { + console.log('[DetailPanel] MediaPanel modal=true detected - focusing ProductVideo'); + const focusTimer = setTimeout(() => { + Spotlight.focus('product-video-player'); + }, 500); + return () => clearTimeout(focusTimer); + } + }, [panels]); + return (