diff --git a/com.twin.app.shoptime/src/components/GlobalPopup/GlobalPopup.jsx b/com.twin.app.shoptime/src/components/GlobalPopup/GlobalPopup.jsx
index 96dc3849..35b2291a 100644
--- a/com.twin.app.shoptime/src/components/GlobalPopup/GlobalPopup.jsx
+++ b/com.twin.app.shoptime/src/components/GlobalPopup/GlobalPopup.jsx
@@ -6,6 +6,7 @@
import React, {
useCallback,
+ useEffect,
useMemo,
} from 'react';
@@ -14,6 +15,8 @@ import {
useSelector,
} from 'react-redux';
+import Spotlight from '@enact/spotlight';
+
import { setHidePopup } from '../../actions/commonActions';
import { getPopupConfig } from '../../constants/popupConfig';
import usePrevious from '../../hooks/usePrevious';
@@ -139,6 +142,18 @@ const GlobalPopup = () => {
setImageDimensions(dimensions);
}, []);
+ // Spotlight 제어: 팝업 오픈/클로즈 시 포커스 트래핑
+ useEffect(() => {
+ if (popupVisible && activePopup === 'topBannerImagePopup') {
+ console.log("[GLOBAL-POPUP] Pausing Spotlight for modal popup");
+ Spotlight.pause();
+ return () => {
+ console.log("[GLOBAL-POPUP] Resuming Spotlight after modal close");
+ Spotlight.resume();
+ };
+ }
+ }, [popupVisible, activePopup]);
+
// 현재 팝업 설정
const currentConfig = useMemo(() => {
if (!activePopup) return null;
@@ -231,27 +246,33 @@ const GlobalPopup = () => {
const popupHeight = '804px';
return (
-
-
+ justifyContent: 'center',
+ alignItems: 'center',
+ zIndex: 9999
+ }}
+ onClick={handlers.handleClose}
+ >
+
e.stopPropagation()}
+ >
{
const dispatch = useDispatch();
const [imageDimensions, setImageDimensions] = useState({ width: 0, height: 0 });
+ const closeButtonRef = useRef(null);
const handleImageLoad = useCallback((e) => {
const img = e.target;
@@ -29,6 +30,14 @@ const TopBannerPopup = memo(({ title, imageUrl, imageAlt, onImageLoad }) => {
dispatch(setHidePopup());
}, [dispatch]);
+ // 팝업이 마운트되었을 때 Close 버튼에 포커스
+ useEffect(() => {
+ console.log("[TOP-BANNER-POPUP] Component mounted - focusing close button");
+ if (closeButtonRef.current) {
+ closeButtonRef.current.focus();
+ }
+ }, []);
+
return (
{/* Title Section */}
@@ -48,7 +57,12 @@ const TopBannerPopup = memo(({ title, imageUrl, imageAlt, onImageLoad }) => {
{/* Button Section */}
-
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerPopup.module.less b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerPopup.module.less
index bc108b95..d2b4fa6c 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerPopup.module.less
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerPopup.module.less
@@ -1,3 +1,6 @@
+@import "../../../style/CommonStyle.module.less";
+@import "../../../style/utils.module.less";
+
.container {
width: 100%;
height: 100%;
@@ -86,12 +89,12 @@
text-align: center;
&:hover {
- background: #6a7278;
+ background: @PRIMARY_COLOR_RED;
}
&:focus {
- outline: 2px solid #fff;
- outline-offset: 2px;
+ background: @PRIMARY_COLOR_RED;
+ outline: none;
}
&:active {