diff --git a/com.twin.app.shoptime/src/components/TabLayout/TabLayout.jsx b/com.twin.app.shoptime/src/components/TabLayout/TabLayout.jsx index 89915d7c..0878e154 100644 --- a/com.twin.app.shoptime/src/components/TabLayout/TabLayout.jsx +++ b/com.twin.app.shoptime/src/components/TabLayout/TabLayout.jsx @@ -448,13 +448,36 @@ export default function TabLayout({ topPanelName, onTabActivated, panelInfo }) { } }, [showSubTab]); - const spotToPanel = useCallback(() => { + const spotToPanelJob = useRef( + new Job(() => { + const node = document.querySelector(`[id="${SpotlightIds.TPANEL}"]`); + + if (node) { + Spotlight.focus(node); + } + }) + ); + + const spotToPanel = useCallback((delayed = false) => { const node = document.querySelector(`[id="${SpotlightIds.TPANEL}"]`); + if (node) { - Spotlight.focus(node); + if (delayed) { + spotToPanelJob.current.start(() => { + Spotlight.focus(node); + }); + } else { + Spotlight.focus(node); + } } }, []); + useEffect(() => { + return () => { + spotToPanelJob.current.stop(); + }; + }, []); + const handleNavigation = useCallback( ({ index, target }) => { setMainSelectedIndex(index); @@ -481,7 +504,7 @@ export default function TabLayout({ topPanelName, onTabActivated, panelInfo }) { // 홈패널일 경우 if (target && target[0]?.name === panel_names.HOME_PANEL) { deActivateTab(); - spotToPanel(); + spotToPanel(true); dispatch(resetPanels()); dispatch(checkEnterThroughGNB(true)); dispatch(resetHomeInfo()); diff --git a/com.twin.app.shoptime/src/utils/helperMethods.js b/com.twin.app.shoptime/src/utils/helperMethods.js index 2f6a394b..2c894a4c 100644 --- a/com.twin.app.shoptime/src/utils/helperMethods.js +++ b/com.twin.app.shoptime/src/utils/helperMethods.js @@ -547,9 +547,11 @@ export const getErrorMessage = (errorCode, retMsg, retDetailCode) => { group.codes.includes(Number(errorCode)) ); - const errorPrefix = retDetailCode - ? `[${errorCode}-${retDetailCode}] ` - : `[${errorCode}] `; + const errorPrefix = errorCode + ? retDetailCode + ? `[${errorCode}-${retDetailCode}] ` + : `[${errorCode}] ` + : ""; if (group) { return errorPrefix + group.message;