<๊ฐ์>
์ฐ๋ฆฌ๋ ์บ๋ฆฐ๋ ๊ตฌํ ๋ฟ๋ง ์๋๋ผ ToDo List ๊ตฌํ๋ ํด์ผํ๊ธฐ ๋๋ฌธ์, ์์ชฝ ์ํ๋ณ์๋ค์ด ์์ฌ ์ ํ๋ฉด ๊ฐ๋ ์ฑ์ด ํ์ ํ ๋จ์ด์ง๊ฒ ๋๊ณ ์ ์ง๋ณด์์ ํฐ ์ด๋ ค์์ ๊ฒช์ ์ ์๋ค.
๋ฐ๋ผ์ ์ง๊ธ๊น์ง ๋ง๋ค์๋ ์บ๋ฆฐ๋์ ์ํ๋ณ์ ๋ฐ ํ์ํ ํจ์๋ค์ ๋ฐ๋ก useCalendar๋ผ๋ Custom ํ ์ ๋ฃ์ด์ ์ ๋ฆฌํ๋ค.
App.js ์์ ํ์ํ ๊ฐ๋ค์ useCalendar์ return ๊ฐ์์ ๋ฐ์์จ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๋ถํฐ ๋ง๋ค useTodoList๋ ์ฒ์๋ถํฐ ๋ฐ๋ก ์ปค์คํ ํ ํ์ผ์ ๋ง๋ค๊ณ ๊ฑฐ๊ธฐ์ ํ์ํ ์ํ๋ณ์๋ค๊ณผ ํจ์๋ค์ ์ ๊ฒ ๋ค.
1. use-Calendar.js
import dayjs from "dayjs";
import { useState } from "react";
export const useCalendar = (now) => {
const[selectedDate, setSelectedDate] = useState(now);
const [isDatePickerVisible, setDatePickerVisibility] = useState(false);
const showDatePicker = () => {
setDatePickerVisibility(true);
};
const hideDatePicker = () => {
setDatePickerVisibility(false);
};
const handleConfirm = (date) => {
setSelectedDate(dayjs(date));
hideDatePicker();
};
const subtract1Month = () => {
const newSelectedDate = dayjs(selectedDate).subtract(1,"month");
setSelectedDate(newSelectedDate);
}
const add1Month = () => {
const newSelectedDate = dayjs(selectedDate).add(1,"month");
setSelectedDate(newSelectedDate);
}
return {
selectedDate,
setSelectedDate,
isDatePickerVisible,
showDatePicker,
hideDatePicker,
handleConfirm,
subtract1Month,
add1Month
}
}
2. use- todo-list ์
0