-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMyTodo.tsx
More file actions
86 lines (80 loc) · 2.61 KB
/
MyTodo.tsx
File metadata and controls
86 lines (80 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import * as styles from './MyTodo.css';
import { RecommendSection } from './component/RecommendSection/RecommendSection';
import { TodoCheckSection } from './component/TodoCheckSection/TodoCheckSection';
import { useMyTodo } from './hook/useMyTodo';
import { DEFAULT_MANDALART_DATA } from './constant/mock';
import type { MandalartData } from './constant/mock';
import { DatePicker } from '@/page/todo/myTodo/component/DatePicker';
import type { TodoItemTypes } from '@/page/todo/myTodo/component/TodoBox/TodoBox.types';
import { useGetMandalAll } from '@/api/domain/myTodo/hook/useMyMandal';
import { useMandalartId } from '@/common/hook/useMandalartId';
interface MyTodoProps {
userName?: string;
mandalartData?: MandalartData;
selectedDate?: Date;
initialRecommendTodos?: TodoItemTypes[];
initialMyTodos?: TodoItemTypes[];
}
const MyTodo = ({
userName = '김도트',
mandalartData,
selectedDate,
initialRecommendTodos,
initialMyTodos,
}: MyTodoProps) => {
const {
currentDate,
selectedCycle,
selectedParentId,
setSelectedParentId,
recommendTodos,
hasPreviousDate,
hasNextDate,
handleDateChange,
handleCycleClick,
handleRecommendTodoClick,
handleMyTodoClick,
} = useMyTodo({
initialDate: selectedDate,
initialRecommendTodos,
initialMyTodos,
});
const mandalartId = useMandalartId();
const { data } = useGetMandalAll(mandalartId);
return (
<>
<div className={styles.myTodoBg} />
<main className={styles.myTodoContainer}>
<div className={styles.contentWrapper}>
<section className={styles.datePickerSection}>
<DatePicker
currentDate={currentDate}
onDateChange={handleDateChange}
hasPrev={hasPreviousDate}
hasNext={hasNextDate}
/>
</section>
<section className={styles.mainContentWrapper}>
<RecommendSection
userName={userName}
recommendTodos={recommendTodos}
onTodoClick={handleRecommendTodoClick}
/>
<TodoCheckSection
selectedCycle={selectedCycle}
mandalartData={{
...(mandalartData || DEFAULT_MANDALART_DATA),
title: data?.title || mandalartData?.title || DEFAULT_MANDALART_DATA.title,
}}
onCycleClick={handleCycleClick}
onTodoClick={handleMyTodoClick}
onMandalartClick={setSelectedParentId}
selectedParentId={selectedParentId}
/>
</section>
</div>
</main>
</>
);
};
export default MyTodo;