[251104] fix: CheckOutPanel->WelcomPanel에서 resetPanel처리

🕐 커밋 시간: 2025. 11. 04. 12:36:06

📊 변경 통계:
  • 총 파일: 3개
  • 추가: +15줄
  • 삭제: -2줄

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/utils/Config.js
  ~ com.twin.app.shoptime/src/views/CheckOutPanel/components/PinCodeInput.jsx
  ~ com.twin.app.shoptime/src/views/ConfirmPanel/ConfirmPanel.jsx

🔧 주요 변경 내용:
  • 공통 유틸리티 함수 최적화
  • UI 컴포넌트 아키텍처 개선
This commit is contained in:
2025-11-04 12:36:06 +09:00
parent 219582aaf2
commit 80230bf88a
3 changed files with 15 additions and 2 deletions

View File

@@ -46,8 +46,10 @@ export const panel_names = {
// 단독으로 렌더링되어야 하는 패널 목록 // 단독으로 렌더링되어야 하는 패널 목록
// 이 패널들은 항상 isOnTop=true로 설정되고 다른 패널들과 함께 표시되지 않음 // 이 패널들은 항상 isOnTop=true로 설정되고 다른 패널들과 함께 표시되지 않음
export const STANDALONE_PANELS = [ export const STANDALONE_PANELS = [
panel_names.CHECKOUT_PANEL, panel_names.CHECKOUT_PANEL, // 주문 결제 페이지
panel_names.CART_PANEL, panel_names.CART_PANEL, // 장바구니
panel_names.CONFIRM_PANEL, // 주문 완료 페이지
panel_names.MY_PAGE_PANEL, // 마이페이지 (주문 조회 포함)
panel_names.JUST_FOR_YOU_TEST_PANEL, panel_names.JUST_FOR_YOU_TEST_PANEL,
// 향후 추가될 다른 단독 패널들 여기에 추가 // 향후 추가될 다른 단독 패널들 여기에 추가
]; ];

View File

@@ -236,6 +236,10 @@ export default function PinCodeInput({
setIsOrderSuccessful(true); setIsOrderSuccessful(true);
setPlaceOrderPopup(false); setPlaceOrderPopup(false);
// 🔴 CRITICAL: CheckOutPanel 제거 (ConfirmPanel push 전)
// CheckOutPanel이 stack에 남아있으면 다음 주문 시 문제 발생
dispatch(popPanel(Config.panel_names.CHECKOUT_PANEL));
// 바로 ConfirmPanel로 이동 // 바로 ConfirmPanel로 이동
dispatch( dispatch(
pushPanel({ pushPanel({
@@ -314,6 +318,10 @@ export default function PinCodeInput({
dispatch(sendLogTotalRecommend({ ...params, status: "true" })); dispatch(sendLogTotalRecommend({ ...params, status: "true" }));
setIsOrderSuccessful(true); setIsOrderSuccessful(true);
setPlaceOrderPopup(false); setPlaceOrderPopup(false);
// 🔴 CRITICAL: CheckOutPanel 제거 (API Mode - ConfirmPanel push 전)
dispatch(popPanel(Config.panel_names.CHECKOUT_PANEL));
dispatch( dispatch(
pushPanel({ pushPanel({
name: Config.panel_names.CONFIRM_PANEL, name: Config.panel_names.CONFIRM_PANEL,

View File

@@ -103,6 +103,9 @@ export default function ConfirmPanel({ spotlightId }) {
}, [dispatch, myOrder]); }, [dispatch, myOrder]);
const handleContinueClick = useCallback(() => { const handleContinueClick = useCallback(() => {
// 🔴 CRITICAL: ConfirmPanel은 STANDALONE_PANEL이므로 혼자만 있음
// "계속 쇼핑"은 모든 패널을 초기화하고 처음부터 시작하는 의미
// resetPanels()로 모든 패널 초기화 → HomePanel로 돌아가기
dispatch(resetPanels()); dispatch(resetPanels());
dispatch(popPanel()); dispatch(popPanel());
}, [dispatch]); }, [dispatch]);