[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:
@@ -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,
|
||||||
// 향후 추가될 다른 단독 패널들 여기에 추가
|
// 향후 추가될 다른 단독 패널들 여기에 추가
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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]);
|
||||||
|
|||||||
Reference in New Issue
Block a user