diff --git a/apps/nowait-user/src/assets/waitSuccess.png b/apps/nowait-user/src/assets/waitSuccess.png deleted file mode 100644 index 41df78a4..00000000 Binary files a/apps/nowait-user/src/assets/waitSuccess.png and /dev/null differ diff --git a/apps/nowait-user/src/assets/waitingSuccess.png b/apps/nowait-user/src/assets/waitingSuccess.png new file mode 100644 index 00000000..94bbe1b5 Binary files /dev/null and b/apps/nowait-user/src/assets/waitingSuccess.png differ diff --git a/apps/nowait-user/src/components/common/QuantitySelector.tsx b/apps/nowait-user/src/components/common/QuantitySelector.tsx index af4c0dbe..6c8a5163 100644 --- a/apps/nowait-user/src/components/common/QuantitySelector.tsx +++ b/apps/nowait-user/src/components/common/QuantitySelector.tsx @@ -7,6 +7,8 @@ interface stateProps { mode: "state"; quantity: number; setQuantity: React.Dispatch>; + min?: number; + max?: number; } interface storeProps { @@ -16,13 +18,18 @@ interface storeProps { price: number; increaseQuantity: (id: number, price: number) => void; decreaseQuantity: (id: number, price: number) => void; + min?: number; + max?: number; } type PropsType = stateProps | storeProps; const QuantitySelector = (props: PropsType) => { - const isQuantityMin = props.quantity === 1; - const isQuantityMax = props.quantity === 99; + // min과 max를 props로 받고 기본값은 1,99 + const min = props.min ?? 1; + const max = props.max ?? 99; + const isQuantityMin = props.quantity <= min; + const isQuantityMax = props.quantity >= max; const increaseQuantityButton = () => { // 전체 주문 페이지에서 수량 컨트롤(로컬 스토리지에 바로 반영) diff --git a/apps/nowait-user/src/components/common/SuccessMessagePage.tsx b/apps/nowait-user/src/components/common/SuccessMessagePage.tsx index 70659203..a44e6809 100644 --- a/apps/nowait-user/src/components/common/SuccessMessagePage.tsx +++ b/apps/nowait-user/src/components/common/SuccessMessagePage.tsx @@ -5,6 +5,8 @@ import CenteredContentLayout from "../layout/CenteredContentLayout"; interface PropsType { imageSrc: string; imageAlt: string; + width?: string; + height?: string; title: string; message: string; onClick: () => void; @@ -14,6 +16,8 @@ interface PropsType { const SuccessMessagePage = ({ imageSrc, imageAlt, + width = "150px", + height = "150px", title, message, onClick, @@ -23,7 +27,7 @@ const SuccessMessagePage = ({ const { storeId } = useParams(); return ( - {imageAlt} + {imageAlt}

{title}

{message} diff --git a/apps/nowait-user/src/pages/order/home/StorePage.tsx b/apps/nowait-user/src/pages/order/home/StorePage.tsx index e0bad4ab..ae424d4c 100644 --- a/apps/nowait-user/src/pages/order/home/StorePage.tsx +++ b/apps/nowait-user/src/pages/order/home/StorePage.tsx @@ -44,7 +44,7 @@ const StorePage = () => { {cart && cart.length > 0 && ( - + diff --git a/apps/nowait-user/src/pages/order/remittenceWait/RemittanceWaitPage.tsx b/apps/nowait-user/src/pages/order/remittenceWait/RemittanceWaitPage.tsx index 6f79265a..73f117f8 100644 --- a/apps/nowait-user/src/pages/order/remittenceWait/RemittanceWaitPage.tsx +++ b/apps/nowait-user/src/pages/order/remittenceWait/RemittanceWaitPage.tsx @@ -11,7 +11,7 @@ import LoadingSpinner from "../../../components/LoadingSpinner"; const RemittanceWaitPage = () => { const navigate = useNavigate(); const location = useLocation(); - const payer = location.state; + const payer = location.state as string; const { storeId } = useParams(); const tableId = localStorage.getItem("tableId"); const { cart, clearCart } = useCartStore(); @@ -34,18 +34,23 @@ const RemittanceWaitPage = () => { Number(tableId!), payload ); + console.log(res, "주문 생성"); if (res?.success) { - //세션 아이디, 입금자명 로컬스토리지 저장 + //입금자명 로컬스토리지 저장 localStorage.setItem("depositorName", res.response.depositorName); + //장바구니 비우기 + clearCart(); + navigate(`/${storeId}/order/success`); + } else { + // 서버가 success:false 반환한 경우 + console.error("주문 실패:", res); + alert("주문 처리에 실패했습니다. 다시 시도해주세요."); } - //장바구니 비우기 - clearCart(); } catch (error) { console.log(error); } finally { setIsLoading(true); } - navigate(`/${storeId}/order/success`); }; return ( @@ -53,7 +58,9 @@ const RemittanceWaitPage = () => { : "이체했어요"} + buttonText={ + isLoading ? : "이체했어요" + } > { if (isLoading) return ; return ( -
+
@@ -51,11 +51,18 @@ const WaitingSummaryPage = () => { 대기하고 있어요

-
+

부스

-

- {store?.name} / {store?.departmentName} -

+
+

{store?.name} /

+ 14 ? "block" : "inline" + } w-[100%] truncate`} + > + {store?.departmentName} + +

입장 인원

@@ -83,7 +90,11 @@ const WaitingSummaryPage = () => {
diff --git a/apps/nowait-user/src/pages/waiting/storeDetail/StoreDetailPage.tsx b/apps/nowait-user/src/pages/waiting/storeDetail/StoreDetailPage.tsx index 483fc7e7..4cb777b6 100644 --- a/apps/nowait-user/src/pages/waiting/storeDetail/StoreDetailPage.tsx +++ b/apps/nowait-user/src/pages/waiting/storeDetail/StoreDetailPage.tsx @@ -18,7 +18,6 @@ import NotFound from "../../NotFound/NotFound"; import { getStoreMenus } from "../../../api/menu"; import FullPageLoader from "../../../components/FullPageLoader"; - const StoreDetailPage = () => { const navigate = useNavigate(); const { id: storeId } = useParams(); @@ -38,7 +37,7 @@ const StoreDetailPage = () => { queryFn: () => getStore(Number(storeId!)), select: (data) => data?.response, }); - + console.log(store) const { data: menus, isLoading: menusIsLoading } = useQuery({ queryKey: ["storeMenus", storeId], queryFn: () => getStoreMenus(Number(storeId!)), @@ -103,10 +102,14 @@ const StoreDetailPage = () => { {formatTimeRange(store?.openTime)}

-

+

{store?.description}

- {/* 공지사항(데이터 변경 예정) */} + {/* 공지사항 */} {store?.noticeTitle && (