@@ -20,12 +20,16 @@ export default function InfoCalendar() {
20
20
setClickedDate ( clickedDate ) ;
21
21
} ;
22
22
23
+ // API 관리
23
24
const { data } = useGetMonthCalendar ( ) ;
24
25
26
+ const handleDayDataClick = ( programIdx : number ) => {
27
+ console . log ( "API 호출: " , programIdx ) ;
28
+ } ;
29
+
25
30
const customTileContent = ( { date, view } : { date : Date ; view : string } ) => {
26
- let isOpen = true ;
27
- if ( data && view === "month" ) {
28
- const dayData = data . find ( ( dayData : MonthCalendarProps ) => {
31
+ if ( Array . isArray ( data ) && view === "month" ) {
32
+ const dayData = data . filter ( ( dayData : MonthCalendarProps ) => {
29
33
const openDate = new Date (
30
34
dayData . openDate . year ,
31
35
dayData . openDate . month - 1 ,
@@ -38,24 +42,36 @@ export default function InfoCalendar() {
38
42
dayData . dueDate . day ,
39
43
) ;
40
44
41
- if ( date . getTime ( ) === openDate . getTime ( ) ) isOpen = true ;
42
- else isOpen = false ;
43
-
44
45
return (
45
46
date . getTime ( ) === openDate . getTime ( ) ||
46
47
date . getTime ( ) === dueDate . getTime ( )
47
48
) ;
48
49
} ) ;
49
50
50
- if ( dayData ) {
51
+ if ( dayData . length > 0 ) {
51
52
return (
52
53
< div className = "custom-tile-content" >
53
- < div className = " flex flex-row justify-center items-center gap-1 " >
54
- < Dot color = { isOpen ? "#F06459" : "#8E8E93" } />
55
- < div className = "h6 custom-tile-text text-grey-900 whitespace-nowrap overflow-hidden text-ellipsis" >
56
- { dayData . name }
57
- </ div >
58
- </ div >
54
+ { dayData . map ( ( day : MonthCalendarProps , index : number ) => {
55
+ const isOpen =
56
+ date . getTime ( ) ===
57
+ new Date (
58
+ day . openDate . year ,
59
+ day . openDate . month - 1 ,
60
+ day . openDate . day ,
61
+ ) . getTime ( ) ;
62
+ console . log ( day ) ;
63
+ return (
64
+ < div key = { index } className = "flex flex-row items-center gap-1" >
65
+ < Dot color = { isOpen ? "#F06459" : "#8E8E93" } />
66
+ < div
67
+ className = "h6 custom-tile-text text-grey-900 whitespace-nowrap overflow-hidden text-ellipsis"
68
+ onClick = { ( ) => handleDayDataClick ( day . programIdx ) }
69
+ >
70
+ { day . name }
71
+ </ div >
72
+ </ div >
73
+ ) ;
74
+ } ) }
59
75
</ div >
60
76
) ;
61
77
}
@@ -96,9 +112,10 @@ const StyledCalendarWrapper = styled.div`
96
112
.custom-tile-content {
97
113
/* position: absolute; */
98
114
display: flex;
115
+ flex-direction: column;
99
116
justify-content: center;
100
- align-items: center;
101
117
z-index: 1;
118
+ gap: 1px;
102
119
}
103
120
104
121
.custom-tile-text {
0 commit comments