+
+ {mode === "end" ? "목표 날짜 설정" : "시작 날짜 설정"}
+
+
+
+
+ {format(currentMonth, "yyyy.MM")}
+
+
+
+
+
+ {daysOfWeek.map((day) => (
+
+ {day}
+
+ ))}
+
+
+
+ {days.map((date, index) => {
+ const isBeforeToday = date < new Date();
+ const isInRange =
+ startDate &&
+ selectedDate &&
+ date > startDate &&
+ date < selectedDate;
+ const isStartOrEnd =
+ (startDate &&
+ format(startDate, "yyyy-MM-dd") ===
+ format(date, "yyyy-MM-dd")) ||
+ (selectedDate &&
+ format(selectedDate, "yyyy-MM-dd") ===
+ format(date, "yyyy-MM-dd"));
+
+ return (
+
+ );
+ })}
+
+
+
+
+ 최소 7일, 최대 3개월까지 설정할 수 있어요.
+
+
+
+ {mode === "end" && startDate && selectedDate && (
+
+ {format(startDate, "yyyy-MM-dd")} ~{" "}
+ {format(selectedDate, "yyyy-MM-dd")}{" "}
+
+ {differenceInDays(selectedDate, startDate) + 1}일
+
+
+ )}
+
+
+
+
+ );
+};
+
+export default DatePick;
diff --git a/src/config/envs.ts b/src/config/envs.ts
index de6c8f6..95f1d3d 100644
--- a/src/config/envs.ts
+++ b/src/config/envs.ts
@@ -6,9 +6,10 @@ export const USE_ENC = import.meta.env.VITE_USE_ENC;
export const MEDIUM_REQUEST_TIMEOUT = Number(
import.meta.env.VITE_MEDIUM_REQUEST_TIMEOUT
);
-export const KAKAO_CLIENT_ID = import.meta.env.VITE_KAKAO_CLIENT_ID;
+export const KAKAO_APP_KEY = import.meta.env.VITE_KAKAO_APP_KEY;
export const KAKAO_REDIRECT_URI = import.meta.env.VITE_KAKAO_REDIRECT_URI;
export const GOOGLE_CLIENT_ID = import.meta.env.VITE_GOOGLE_CLIENT_ID;
+export const KAKAO_CLIENT_ID = import.meta.env.VITE_KAKAO_CLIENT_ID;
export const GOOGLE_REDIRECT_URI = import.meta.env.VITE_GOOGLE_REDIRECT_URI;
export const isProduction = NODE_ENV === "production";
diff --git a/src/features/goal/components/create-goal/RepeatDaysSelector.tsx b/src/features/goal/components/create-goal/RepeatDaysSelector.tsx
new file mode 100644
index 0000000..ef30e7b
--- /dev/null
+++ b/src/features/goal/components/create-goal/RepeatDaysSelector.tsx
@@ -0,0 +1,40 @@
+const DAYS = ["월", "화", "수", "목", "금", "토", "일"];
+
+const RepeatDaysSelector = ({ selectedDays, setSelectedDays }) => {
+ const toggleDay = (day) => {
+ if (selectedDays.includes(day)) {
+ setSelectedDays(selectedDays.filter((d) => d !== day));
+ } else {
+ setSelectedDays([...selectedDays, day]);
+ }
+ };
+
+ const selectAllDays = () => {
+ setSelectedDays(DAYS);
+ };
+
+ return (
+