From 2ac217fb1061944c45f989cc38efac36e5161c90 Mon Sep 17 00:00:00 2001 From: optrader Date: Sat, 15 Nov 2025 19:07:15 +0900 Subject: [PATCH] [251115] fix: DetailPanel FullScree issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit πŸ• 컀밋 μ‹œκ°„: 2025. 11. 15. 19:07:15 πŸ“Š λ³€κ²½ 톡계: β€’ 총 파일: 2개 β€’ μΆ”κ°€: +20쀄 β€’ μ‚­μ œ: -1쀄 πŸ“ μˆ˜μ •λœ 파일: ~ com.twin.app.shoptime/src/actions/panelActions.js ~ com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.v3.jsx πŸ”§ ν•¨μˆ˜ λ³€κ²½ λ‚΄μš©: πŸ“„ com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.v3.jsx (javascript): πŸ”„ Modified: normalizeModalStyle() πŸ”§ μ£Όμš” λ³€κ²½ λ‚΄μš©: β€’ 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 κ°œμ„  --- com.twin.app.shoptime/src/actions/panelActions.js | 14 ++++++++++++++ .../src/views/MediaPanel/MediaPanel.v3.jsx | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/com.twin.app.shoptime/src/actions/panelActions.js b/com.twin.app.shoptime/src/actions/panelActions.js index 2312e85a..9d4cabc7 100644 --- a/com.twin.app.shoptime/src/actions/panelActions.js +++ b/com.twin.app.shoptime/src/actions/panelActions.js @@ -1,5 +1,19 @@ import { types } from './actionTypes'; import Spotlight from '@enact/spotlight'; +import { panel_names } from '../utils/Config'; + +// μ‹œμž‘ 메뉴 좔적을 μœ„ν•œ μƒμˆ˜ +export const SOURCE_MENUS = { + HOME_BEST_SELLER: 'home_best_seller', + HOME_PICKED_FOR_YOU: 'home_picked_for_you', + HOME_SUB_CATEGORY: 'home_sub_category', + HOME_RANDOM_UNIT: 'home_random_unit', + HOME_ROLLING_UNIT: 'home_rolling_unit', + HOME_EVENT_POPUP: 'home_event_popup', + HOME_TODAYS_DEAL: 'home_todays_deal', + THEMED_PRODUCT: 'themed_product', + GENERAL_PRODUCT: 'general_product', +}; /* name: panel_names.PLAYER_PANEL, diff --git a/com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.v3.jsx b/com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.v3.jsx index ed424868..b4a87efe 100644 --- a/com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.v3.jsx +++ b/com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.v3.jsx @@ -210,6 +210,7 @@ const MediaPanel = React.forwardRef( }); const videoPlayer = useRef(null); + const isTransitioningToFullscreen = useRef(false); const [playListInfo, setPlayListInfo] = USE_STATE('playListInfo', ''); const [shopNowInfo, setShopNowInfo] = USE_STATE('shopNowInfo'); const [backupInitialIndex, setBackupInitialIndex] = USE_STATE('backupInitialIndex', 0); @@ -931,11 +932,14 @@ const MediaPanel = React.forwardRef( //todo if(modal) return () => { // νŒ¨λ„μ΄ 2개 μ‘΄μž¬ν• λ•Œλ§Œ popPanel μ§„ν–‰ - if (panelInfo.modal && !isOnTop) { + // fullscreen μ „ν™˜ 쀑이면 popPanelν•˜μ§€ μ•ŠμŒ + if (panelInfo.modal && !isOnTop && !isTransitioningToFullscreen.current) { dispatch(PanelActions.popPanel()); } else { Spotlight.focus('tbody'); } + // fullscreen μ „ν™˜ μ™„λ£Œ ν›„ ν”Œλž˜κ·Έ μ΄ˆκΈ°ν™” + isTransitioningToFullscreen.current = false; }; }, [panelInfo?.modal, isOnTop]); @@ -1100,6 +1104,7 @@ const MediaPanel = React.forwardRef( }, [dispatch]); const enterFullscreen = useCallback(() => { + isTransitioningToFullscreen.current = true; dispatch(switchMediaToFullscreen()); }, [dispatch]);