From ac479175d7964a20d224ead09cfbc36f85050c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=A0=EB=AF=BC=EA=B7=A0?= <97932282+skyblue1232@users.noreply.github.com> Date: Mon, 23 Mar 2026 13:45:32 +0900 Subject: [PATCH 01/60] Update next.config.ts --- apps/customer/next.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/customer/next.config.ts b/apps/customer/next.config.ts index 66e1566..2fd9b78 100644 --- a/apps/customer/next.config.ts +++ b/apps/customer/next.config.ts @@ -6,3 +6,4 @@ const nextConfig: NextConfig = { }; export default nextConfig; + From daf250fd2962c8cb8a4b5867316bfb75f05db2a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=A0=EB=AF=BC=EA=B7=A0?= <97932282+skyblue1232@users.noreply.github.com> Date: Mon, 23 Mar 2026 19:37:45 +0900 Subject: [PATCH 02/60] feat/order-status --- .../(tabs)/order/_components/OrderCard.tsx | 40 +++++++++++++++++++ .../app/(tabs)/order/_constants/mockOrders.ts | 28 +++++++++++++ .../src/app/(tabs)/order/_types/order.ts | 9 +++++ apps/customer/src/app/(tabs)/order/page.tsx | 40 ++++++++++++++++++- .../src/components/Button/Button.tsx | 2 +- .../design-system/src/components/index.ts | 3 +- 6 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 apps/customer/src/app/(tabs)/order/_components/OrderCard.tsx create mode 100644 apps/customer/src/app/(tabs)/order/_constants/mockOrders.ts create mode 100644 apps/customer/src/app/(tabs)/order/_types/order.ts diff --git a/apps/customer/src/app/(tabs)/order/_components/OrderCard.tsx b/apps/customer/src/app/(tabs)/order/_components/OrderCard.tsx new file mode 100644 index 0000000..ccff9ed --- /dev/null +++ b/apps/customer/src/app/(tabs)/order/_components/OrderCard.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { Button, Card } from "@compasser/design-system"; +import type { OrderItem } from "../_types/order"; + +interface OrderCardProps { + order: OrderItem; +} + +export default function OrderCard({ order }: OrderCardProps) { + return ( + +
+

{order.storeName}

+ +
+ 주문 내역 + {order.orderSummary} + + 총 결제금액 + {order.totalPrice} + + 픽업 예정일 + {order.pickupTime} +
+ +
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/apps/customer/src/app/(tabs)/order/_constants/mockOrders.ts b/apps/customer/src/app/(tabs)/order/_constants/mockOrders.ts new file mode 100644 index 0000000..8e93063 --- /dev/null +++ b/apps/customer/src/app/(tabs)/order/_constants/mockOrders.ts @@ -0,0 +1,28 @@ +import type { OrderItem } from "../_types/order"; + +export const IN_PROGRESS_ORDERS: OrderItem[] = [ + { + id: 1, + storeName: "별동네 베이커리카페 별내본점", + orderSummary: "랜덤박스 Level.1 3개", + totalPrice: "15,000원", + pickupTime: "2/30 19:00 ~ 20:00", + }, + { + id: 2, + storeName: "별동네 베이커리카페 별내본점", + orderSummary: "랜덤박스 Level.1 3개", + totalPrice: "15,000원", + pickupTime: "2/30 19:00 ~ 20:00", + }, +]; + +export const DONE_ORDERS: OrderItem[] = [ + { + id: 3, + storeName: "별동네 베이커리카페 별내본점", + orderSummary: "랜덤박스 Level.1 1개", + totalPrice: "5,000원", + pickupTime: "2/28 18:00 ~ 19:00", + }, +]; \ No newline at end of file diff --git a/apps/customer/src/app/(tabs)/order/_types/order.ts b/apps/customer/src/app/(tabs)/order/_types/order.ts new file mode 100644 index 0000000..6cf7099 --- /dev/null +++ b/apps/customer/src/app/(tabs)/order/_types/order.ts @@ -0,0 +1,9 @@ +export type OrderTabKey = "in-progress" | "done"; + +export interface OrderItem { + id: number; + storeName: string; + orderSummary: string; + totalPrice: string; + pickupTime: string; +} \ No newline at end of file diff --git a/apps/customer/src/app/(tabs)/order/page.tsx b/apps/customer/src/app/(tabs)/order/page.tsx index d66065a..d1d6344 100644 --- a/apps/customer/src/app/(tabs)/order/page.tsx +++ b/apps/customer/src/app/(tabs)/order/page.tsx @@ -1,7 +1,43 @@ +"use client"; + +import { useState } from "react"; +import { Header, TopTabBar } from "@compasser/design-system"; +import OrderCard from "./_components/OrderCard"; +import { DONE_ORDERS, IN_PROGRESS_ORDERS } from "./_constants/mockOrders"; +import type { OrderTabKey } from "./_types/order"; + export default function OrderPage() { + const [activeTab, setActiveTab] = useState("in-progress"); + + const orders = + activeTab === "in-progress" ? IN_PROGRESS_ORDERS : DONE_ORDERS; + return ( -
-
Order Page
+
+
+ + setActiveTab(key as OrderTabKey)} + /> + +
+ {orders.length > 0 ? ( +
+ {orders.map((order) => ( + + ))} +
+ ) : ( +
+

주문 내역이 없어요.

+
+ )} +
); } \ No newline at end of file diff --git a/packages/design-system/src/components/Button/Button.tsx b/packages/design-system/src/components/Button/Button.tsx index 2d16d22..93423ac 100644 --- a/packages/design-system/src/components/Button/Button.tsx +++ b/packages/design-system/src/components/Button/Button.tsx @@ -12,7 +12,7 @@ const kindClasses = { default: "", simple: "body1-r py-[0.6rem] px-[2rem] rounded-[999px]", register: "body1-r py-[0.2rem] px-[0.8rem] rounded-[8px]", - move: "body1-r py-[0.4rem] px-[1rem] rounded-[999px]", + move: "body1-r py-[0.4rem] px-[1rem] rounded-[10px]", }; const getVariantClass = ({ diff --git a/packages/design-system/src/components/index.ts b/packages/design-system/src/components/index.ts index 9b2bbd9..b9ea4c3 100644 --- a/packages/design-system/src/components/index.ts +++ b/packages/design-system/src/components/index.ts @@ -5,4 +5,5 @@ export * from "./BottomSheet"; export * from "./Card"; export * from "./Tag"; export * from "./Header"; -export * from "./BottomTabBar"; \ No newline at end of file +export * from "./BottomTabBar"; +export * from "./TopTabBar"; \ No newline at end of file From 9afa3fac103c8dfe682c6272d6f31f5f680b97f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=A0=EB=AF=BC=EA=B7=A0?= <97932282+skyblue1232@users.noreply.github.com> Date: Mon, 23 Mar 2026 19:49:27 +0900 Subject: [PATCH 03/60] chore/tab-layout --- apps/customer/src/app/(tabs)/layout.tsx | 6 ++++-- apps/customer/src/app/(tabs)/order/_constants/mockOrders.ts | 4 ++-- apps/customer/src/app/(tabs)/order/page.tsx | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/customer/src/app/(tabs)/layout.tsx b/apps/customer/src/app/(tabs)/layout.tsx index 22f80ff..5a8a8f1 100644 --- a/apps/customer/src/app/(tabs)/layout.tsx +++ b/apps/customer/src/app/(tabs)/layout.tsx @@ -44,8 +44,10 @@ export default function TabsLayout({ children }: TabsLayoutProps) { }; return ( -
-
{children}
+
+
+ {children} +
+
Date: Mon, 23 Mar 2026 19:58:24 +0900 Subject: [PATCH 04/60] chore/tab-layout --- apps/customer/src/app/(tabs)/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/customer/src/app/(tabs)/layout.tsx b/apps/customer/src/app/(tabs)/layout.tsx index 5a8a8f1..5159713 100644 --- a/apps/customer/src/app/(tabs)/layout.tsx +++ b/apps/customer/src/app/(tabs)/layout.tsx @@ -44,7 +44,7 @@ export default function TabsLayout({ children }: TabsLayoutProps) { }; return ( -
+
{children}
From 4c44d76d044aecc22b6a111331ddbe1bb7d813a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=A0=EB=AF=BC=EA=B7=A0?= <97932282+skyblue1232@users.noreply.github.com> Date: Tue, 24 Mar 2026 07:46:01 +0900 Subject: [PATCH 05/60] chore/kakao-map --- apps/customer/src/app/(tabs)/layout.tsx | 4 ++-- .../app/(tabs)/main/_components/KakaoMap.tsx | 23 ++++++++++++++----- .../components/BottomTabBar/BottomTabBar.tsx | 2 +- .../src/icons/generated/iconNames.ts | 4 +++- .../src/icons/generated/spriteSymbols.ts | 2 +- .../src/icons/source/NextButton.svg | 1 + .../src/icons/source/ProfileCharacter.svg | 1 + packages/tailwind-config/theme.css | 11 +++++++++ 8 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 packages/design-system/src/icons/source/NextButton.svg create mode 100644 packages/design-system/src/icons/source/ProfileCharacter.svg diff --git a/apps/customer/src/app/(tabs)/layout.tsx b/apps/customer/src/app/(tabs)/layout.tsx index 5159713..944ce9a 100644 --- a/apps/customer/src/app/(tabs)/layout.tsx +++ b/apps/customer/src/app/(tabs)/layout.tsx @@ -44,8 +44,8 @@ export default function TabsLayout({ children }: TabsLayoutProps) { }; return ( -
-
+
+
{children}
diff --git a/apps/customer/src/app/(tabs)/main/_components/KakaoMap.tsx b/apps/customer/src/app/(tabs)/main/_components/KakaoMap.tsx index fa435c8..dd8bb5c 100644 --- a/apps/customer/src/app/(tabs)/main/_components/KakaoMap.tsx +++ b/apps/customer/src/app/(tabs)/main/_components/KakaoMap.tsx @@ -11,20 +11,31 @@ declare global { export default function KakaoMap() { const mapRef = useRef(null); + const mapInstanceRef = useRef(null); const [isLoaded, setIsLoaded] = useState(false); + useEffect(() => { + if (window.kakao?.maps) { + setIsLoaded(true); + } + }, []); + useEffect(() => { if (!isLoaded || !mapRef.current || !window.kakao?.maps) return; window.kakao.maps.load(() => { if (!mapRef.current) return; - const options = { - center: new window.kakao.maps.LatLng(37.503206, 126.766872), - level: 4, - }; + if (!mapInstanceRef.current) { + const options = { + center: new window.kakao.maps.LatLng(37.503206, 126.766872), + level: 4, + }; - new window.kakao.maps.Map(mapRef.current, options); + mapInstanceRef.current = new window.kakao.maps.Map(mapRef.current, options); + } else { + mapInstanceRef.current.relayout(); + } }); }, [isLoaded]); @@ -33,7 +44,7 @@ export default function KakaoMap() {