diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx b/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx index 1cc5dc22..b64d8a57 100644 --- a/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx +++ b/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx @@ -1,3 +1,4 @@ +import { useState } from "react"; import { useGetPopularMenu } from "../../hooks/analytics/useGetPopularMenu"; import { useGetSalesByDate } from "../../hooks/analytics/useGetSalesByDate"; import { useGetTopSales } from "../../hooks/analytics/useGetTopSalse"; @@ -18,6 +19,12 @@ interface BoothRanking { const AdminAnalytics = () => { const today = new Date(); const formatted = today.toISOString().slice(0, 10); + const [currentDate, setCurrentDate] = useState(() => { + const today = new Date(); + return today.toISOString().slice(0, 10); + }); + console.log(formatted, "오늘날짜"); + const width = useWindowWidth(); const isTablet = width >= 768; const isMobile = width < 432; @@ -27,10 +34,6 @@ const AdminAnalytics = () => { const boothDisabled = boothRank?.length === 0; const storeId = localStorage.getItem("storeId"); - const saleDisabled = - typeof sales === "string" || - sales === undefined || - (sales?.todaySalesSum === 0 && sales?.yesterdaySalesSum === 0); const poupularMenuDisabled = popularMenu?.length === 0; const boothRankingData: BoothRanking[] = @@ -46,6 +49,12 @@ const AdminAnalytics = () => { })) : []; + const changeDate = (days: number) => { + const newDate = new Date(currentDate); + newDate.setDate(newDate.getDate() + days); + setCurrentDate(newDate.toISOString().slice(0, 10)); + }; + console.log(popularMenu, "인기메뉴 원래데이터"); return ( @@ -58,9 +67,10 @@ const AdminAnalytics = () => { isTablet={isTablet} isMobile={isMobile} sales={sales} + currentDate={currentDate} popularMenu={popularMenu} - saleDisabled={saleDisabled} poupularMenuDisabled={poupularMenuDisabled} + onDateChange={changeDate} /> void; } const HeaderStatus: React.FC = ({ sales, + currentDate, popularMenu, - saleDisabled, poupularMenuDisabled, isTablet, isMobile, + onDateChange, }) => { const todayAmount = sales?.todaySalesSum ?? 0; const yesterdayAmount = sales?.yesterdaySalesSum ?? 0; const totalAmount = (sales?.cumulativeSalesBeforeYesterday ?? 0) + todayAmount; const diffAmount = todayAmount - yesterdayAmount; - const percent = yesterdayAmount - ? parseFloat(((diffAmount / yesterdayAmount) * 100).toFixed(1)) - : 0; + // const percent = yesterdayAmount + // ? parseFloat(((diffAmount / yesterdayAmount) * 100).toFixed(1)) + // : 0; const formatDate = (date: Date | string): string => { if (typeof date === "string") { @@ -56,7 +58,7 @@ const HeaderStatus: React.FC = ({ yesterday.setDate(today.getDate() - 1); const todayDate = formatDate(today); - const yesterdayDate = formatDate(yesterday); + // const yesterdayDate = formatDate(yesterday); console.log(popularMenu, "인기 메뉴"); @@ -70,25 +72,29 @@ const HeaderStatus: React.FC = ({ >
diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx b/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx index 5723ff85..50cbd222 100644 --- a/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx +++ b/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx @@ -1,36 +1,30 @@ -import backIcon from "../../../assets/analytics/arrow_back.svg"; +// import backIcon from "../../../assets/analytics/arrow_back.svg"; import forwardIcon from "../../../assets/analytics/arrow_forward.svg"; import activeBackIcon from "../../../assets/analytics/arrow_back_active.svg"; import activeForwardIcon from "../../../assets/analytics/arrow_forward_active.svg"; -import { useState } from "react"; interface SalesCardProps { - today: { + sales?: { date: string; amount: number; diffAmount: number; percent: number; }; - previous: { - date: string; - amount: number; - }; - disabled: boolean; isTablet: boolean; + onDateChange: (days: number) => void; + currentDate: string; } const SalesCard: React.FC = ({ - today, - previous, - disabled, + sales, isTablet, + onDateChange, + currentDate, }) => { - const [showToday, setShowToday] = useState(true); - - const formatDate = (date: String) => { - if (!date) return ""; - return `${date.replace(/-/g, ".")}`; - }; + const todayISO = new Date().toISOString().slice(0, 10); + const isFuture = currentDate > todayISO; // 오늘보다 미래인지 확인 + const isToday = currentDate === todayISO; + console.log(sales, "오늘 판배 목록"); return (
= ({ isTablet ? "p-6 w-full h-full" : "p-5 w-[335px] min-h-[150px]" }`} > + {/* 상단 헤더 */}

- {showToday ? "오늘 매출" : "이전 매출"} -

-

- {showToday ? formatDate(today.date) : formatDate(previous.date)} + {isToday ? "오늘 매출" : "이전 매출"}

+

{currentDate}

- {/* 이전 버튼 */} + {/* 왼쪽(과거) 버튼 */} - {/* 다음 버튼 */} + + {/* 오른쪽(미래) 버튼 */}
+ {/* 하단 내용 */}

- {showToday - ? today.amount.toLocaleString() - : previous.amount.toLocaleString()} - 원 + {`${(sales?.amount ?? 0).toLocaleString()}원`}

- - {!disabled && showToday && ( - - {today.percent > 0 ? `+${today.percent}%` : ""} - + {!!sales?.percent && sales.percent > 0 && ( + {`+${sales?.percent}%`} )}
- {!disabled && showToday && ( + {!!sales?.diffAmount && sales.diffAmount > 0 && (

- {today.diffAmount > 0 - ? `어제보다 ${today.diffAmount.toLocaleString()}원 더 벌었어요!` - : ""} + {`어제보다 ${sales.diffAmount.toLocaleString()}원 더 벌었어요!`}

)} - {disabled && showToday && <>}
); diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/components/TotalSalesCard.tsx b/apps/nowait-admin/src/pages/AdminAnalytics/components/TotalSalesCard.tsx index 0be67b7a..29a429ea 100644 --- a/apps/nowait-admin/src/pages/AdminAnalytics/components/TotalSalesCard.tsx +++ b/apps/nowait-admin/src/pages/AdminAnalytics/components/TotalSalesCard.tsx @@ -4,7 +4,6 @@ interface TotalSalesCardProps { title: string; // 예: "누적매출" date: string; // 예: "2025. 07.18 - 07.19" amount: number; // 예: 1800000 - disabled: boolean; isTablet: boolean; } @@ -12,7 +11,6 @@ const TotalSalesCard: React.FC = ({ title, date, amount, - disabled, isTablet, }) => { return ( @@ -30,7 +28,7 @@ const TotalSalesCard: React.FC = ({ {/* 금액 + 퍼센트 변화 */}

- {disabled ? 0 : amount.toLocaleString()}원 + {amount.toLocaleString()}원