@@ -4,12 +4,7 @@ import '../../assets/ReactDatepicker.css';
44import * as React from 'react' ;
55import { useState , useMemo , useRef , useEffect } from 'react' ;
66import { getFormatDatetime } from '../utils/datetime' ;
7- import {
8- setCenturyPage ,
9- setDecadePage ,
10- setYearPage ,
11- setMonthPage ,
12- } from '../utils/page' ;
7+ import { setCenturyPage , setDecadePage , setMonthPage } from '../utils/page' ;
138import ViewCentury from './view/Century' ;
149import { NAME_SPACE } from './constants/core' ;
1510import Controller from './Controller' ;
@@ -19,12 +14,16 @@ import ViewMonth from './view/Month';
1914import { addLeadingZero } from '../utils/string' ;
2015import useOutsideClick from '../hooks/useOutsideClick' ;
2116
22- function Container ( ) {
17+ interface Iprops {
18+ initValue ?: Date ;
19+ onChange ?: ( activeDate : Date ) => void ;
20+ }
21+
22+ function Container ( { initValue = new Date ( ) , onChange } : Iprops ) {
2323 // 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
24- const NEW_DATE = new Date ( ) ;
25- const [ activeDate , setActiveDate ] = useState < Date > ( NEW_DATE ) ;
24+ const [ activeDate , setActiveDate ] = useState < Date > ( initValue ) ;
2625 const [ viewDate , setViewDate ] = useState < string > (
27- getFormatDatetime ( NEW_DATE , 'YYYY-MM-DD' )
26+ getFormatDatetime ( initValue , 'YYYY-MM-DD' )
2827 ) ;
2928 const [ viewType , setViewType ] = useState <
3029 'century' | 'decade' | 'year' | 'month'
@@ -33,7 +32,7 @@ function Container() {
3332
3433 const centuryPage = useMemo ( ( ) => setCenturyPage ( viewDate ) , [ viewDate ] ) ;
3534 const decadePage = useMemo ( ( ) => setDecadePage ( viewDate ) , [ viewDate ] ) ;
36- const yearPage = useMemo ( ( ) => setYearPage ( viewDate ) , [ viewDate ] ) ;
35+ // const yearPage = useMemo(() => setYearPage(viewDate), [viewDate]);
3736 const monthPage = useMemo ( ( ) => setMonthPage ( viewDate ) , [ viewDate ] ) ;
3837 const container = useRef ( null ) ;
3938
@@ -76,13 +75,15 @@ function Container() {
7675 } ;
7776
7877 const handleFocus = ( ) => {
79- console . log ( 'handleFocus' ) ;
8078 setIsVisible ( true ) ;
8179 } ;
8280
8381 useEffect ( ( ) => {
8482 setIsVisible ( false ) ;
85- } , [ activeDate ] ) ;
83+ if ( onChange ) {
84+ onChange ( activeDate ) ;
85+ }
86+ } , [ activeDate , onChange ] ) ;
8687
8788 // const [centuryPage, setCenturyPage] = useState<number>(0);
8889 // const [decadePage, setDecadePage] = useState<number>(0);
0 commit comments