[구매 옵션 노출관련 처리]#2

- productallsection 에서 토스트 열렸을때 다시 열리는 부분 방지 처리.
This commit is contained in:
junghoon86.park
2025-11-10 12:14:12 +09:00
parent 761796a785
commit 3e547df1a4

View File

@@ -185,6 +185,9 @@ export default function ProductAllSection({
const [isShowQRCode, setIsShowQRCode] = useState(true);
const timerRef = useRef(null);
//구매 하단 토스트 노출 확인을 위한 용도
const [openToast, setOpenToast] = useState(false);
// 모든 timeout/timer를 추적하기 위한 ref
const timersRef = useRef([]);
@@ -378,31 +381,36 @@ export default function ProductAllSection({
prdtNm: productData?.prdtNm,
hasProductData: !!productData,
});
dispatch(
showToast({
id: productData.prdtId,
message: '',
type: 'buyOption',
duration: 0,
position: 'bottom-center',
// 🚀 BuyOption에 전달할 props 데이터
productInfo: productData,
selectedPatnrId: productData?.patnrId,
selectedPrdtId: productData?.prdtId,
// BuyOption Toast가 닫힐 때 BUY NOW 버튼으로 포커스 복구
onToastClose: () => {
setTimeout(() => {
Spotlight.focus('detail-buy-now-button');
}, 100);
},
})
);
}, [dispatch, productData]);
if(openToast === false){
dispatch(
showToast({
id: productData.prdtId,
message: '',
type: 'buyOption',
duration: 0,
position: 'bottom-center',
// 🚀 BuyOption에 전달할 props 데이터
productInfo: productData,
selectedPatnrId: productData?.patnrId,
selectedPrdtId: productData?.prdtId,
// BuyOption Toast가 닫힐 때 BUY NOW 버튼으로 포커스 복구
onToastClose: () => {
setTimeout(() => {
setOpenToast(false);
Spotlight.focus('detail-buy-now-button');
}, 100);
},
})
);
setOpenToast(true);
}
}, [dispatch, productData, openToast]);
//닫히도록
const handleCloseToast = useCallback(() => {
dispatch(clearAllToasts())
dispatch(clearAllToasts());
setOpenToast(false);
},[dispatch])
// ADD TO CART 버튼 클릭 핸들러