Skip to content

Commit 72b420e

Browse files
committed
chore :: 급식 추가
1 parent 055b5f2 commit 72b420e

File tree

10 files changed

+265
-209
lines changed

10 files changed

+265
-209
lines changed

src/apis/meal/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,13 @@ export const TodayMeals = () => {
1616
},
1717
});
1818
};
19+
20+
export function useMonthMeals(date: string) {
21+
return useQuery<TodayMealsType>({
22+
queryKey: ["monthMeals", date],
23+
queryFn: async () => {
24+
const { data } = await instance.get(`${router}/date?date=${date}`);
25+
return data;
26+
},
27+
})
28+
}

src/assets/svg/mealIcon.svg

Lines changed: 10 additions & 0 deletions
Loading

src/components/calendar/weeklyCalendar.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React from "react";
22
import styled from "styled-components";
3-
import { format, startOfWeek, addDays, isSameDay } from "date-fns";
43
import { theme } from "@/styles/theme";
54
import upArrow from "@/assets/svg/upArrow.svg";
65
import useCalendarContext from "./useCalendarContext";

src/components/helfMenu.tsx

Lines changed: 0 additions & 72 deletions
This file was deleted.

src/components/helpMenu/helpMenu.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { styled } from "styled-components";
22
import { theme } from "@/styles/theme";
3-
import { useState } from "react";
43
import HelpContent from "../helpContent/helpcontent";
54
import Face from "@/assets/svg/face.svg";
65
import Bug from "@/assets/svg/bug.svg";
76
import Out from "@/assets/svg/out.svg";
87
import { useNavigate } from "react-router-dom";
98
import { cookie } from "@/utils/auth";
9+
import melasIcon from "@/assets/svg/mealIcon.svg";
1010

1111
const HelfMenu = () => {
1212
const navigate = useNavigate();
@@ -43,6 +43,13 @@ const HelfMenu = () => {
4343
content="버그 제보"
4444
icon={<img src={Bug} alt="" />}
4545
/>
46+
<HelpContent
47+
onClick={() => {
48+
navigate("/meals");
49+
}}
50+
content="급식 확인"
51+
icon={<img src={melasIcon} />}
52+
/>
4653
<TestTitle>계정</TestTitle>
4754
<HelpContent
4855
onClick={() => {

src/components/sidebar.tsx

Lines changed: 0 additions & 135 deletions
This file was deleted.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import { useState } from "react";
2+
import styled from "styled-components";
3+
import Calendar from "@/components/calendar";
4+
import WeeklyCalendar from "@/components/calendar/weeklyCalendar";
5+
import useCalendarContext from "@/components/calendar/useCalendarContext";
6+
import downArrow from "@/assets/svg/downarrow.svg";
7+
import { theme } from "@/styles/theme";
8+
9+
interface CalendarComponentsProps {
10+
onDateChange: (date: string) => void;
11+
}
12+
13+
const CalendarComponents = ({ onDateChange }: CalendarComponentsProps) => {
14+
const [isMonthlyView, setIsMonthlyView] = useState(false);
15+
const { selectedDate } = useCalendarContext();
16+
17+
const handleDateClick = (date: string) => {
18+
const selected = new Date(date);
19+
20+
const formattedDate = selected.toISOString().split("T")[0];
21+
22+
selectedDate.selectDate(date);
23+
setIsMonthlyView(false);
24+
if (onDateChange) {
25+
onDateChange(formattedDate);
26+
}
27+
};
28+
29+
const handleBackToMonthlyClick = () => {
30+
setIsMonthlyView(true);
31+
};
32+
33+
return (
34+
<Container>
35+
{isMonthlyView ? (
36+
<>
37+
<img src={downArrow} alt="" onClick={() => setIsMonthlyView(false)} />
38+
<Calendar.Header />
39+
<Calendar.Body onClickDate={handleDateClick} />
40+
</>
41+
) : (
42+
<WeeklyCalendar
43+
selectedDate={selectedDate.date}
44+
onBackToMonthlyClick={handleBackToMonthlyClick}
45+
onDateSelect={handleDateClick}
46+
/>
47+
)}
48+
</Container>
49+
);
50+
};
51+
52+
const WrappedCalendarComponents = ({
53+
onDateChange,
54+
}: CalendarComponentsProps) => (
55+
<Calendar>
56+
<CalendarComponents onDateChange={onDateChange} />
57+
</Calendar>
58+
);
59+
60+
export default WrappedCalendarComponents;
61+
62+
const Container = styled.div`
63+
width: 100%;
64+
height: fit-content;
65+
margin: 0 auto;
66+
display: flex;
67+
flex-direction: column;
68+
justify-content: center;
69+
align-items: center;
70+
position: fixed;
71+
bottom: 0;
72+
background-color: ${theme.color.normal.white};
73+
border-top-right-radius: 20px;
74+
border-top-left-radius: 20px;
75+
box-shadow: ${theme["box-shadow"]};
76+
`;

0 commit comments

Comments
 (0)