@@ -15,27 +15,32 @@ import InputRange from './input/Range';
1515
1616interface IProps {
1717 // initValue?: Date | null;
18+ initStartValue ?: Date | null ;
19+ initEndValue ?: Date | null ;
1820 useClearButton ?: boolean ;
1921 showsMultipleCalendar ?: boolean ;
2022 valueFormat ?: string ;
2123 labelFormat ?: string ;
2224 closesAfterChange ?: boolean ;
23- onChange ?: ( activeDate : Date | null ) => void ;
25+ weekdayLabels ?: string [ ] ;
26+ onChange ?: ( startDate : Date | null , endDate : Date | null ) => void ;
2427}
2528
2629function Rangepicker ( {
27- // initValue = null,
30+ initStartValue = null ,
31+ initEndValue = null ,
2832 useClearButton = false ,
2933 showsMultipleCalendar = false ,
3034 valueFormat = 'YYYY-MM-DD' ,
3135 labelFormat = 'YYYY / MM' ,
3236 closesAfterChange = true ,
37+ weekdayLabels = [ 'Su' , 'Mo' , 'Tu' , 'We' , 'Th' , 'Fr' , 'Sa' ] ,
3338 onChange,
3439} : IProps ) {
3540 // 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
3641 const NEW_DATE = new Date ( ) ;
37- const [ startValue , setStartValue ] = useState < Date | null > ( null ) ;
38- const [ endValue , setEndValue ] = useState < Date | null > ( null ) ;
42+ const [ startValue , setStartValue ] = useState < Date | null > ( initStartValue ) ;
43+ const [ endValue , setEndValue ] = useState < Date | null > ( initEndValue ) ;
3944 const [ hoverValue , setHoverValue ] = useState < Date | null > ( null ) ;
4045 const [ viewDate , setViewDate ] = useState < string > (
4146 formatDate ( startValue || NEW_DATE , 'YYYY-MM-DD' )
@@ -61,6 +66,12 @@ function Rangepicker({
6166 // eslint-disable-next-line react-hooks/exhaustive-deps
6267 } , [ endValue , onChange , setViewDate ] ) ;
6368
69+ useEffect ( ( ) => {
70+ if ( onChange ) {
71+ onChange ( startValue , endValue ) ;
72+ }
73+ } , [ startValue , endValue , onChange ] ) ;
74+
6475 return (
6576 < div className = { `${ NAME_SPACE } __wrapper` } >
6677 < InputRange
@@ -91,6 +102,7 @@ function Rangepicker({
91102 hoverValue = { hoverValue }
92103 valueFormat = { valueFormat }
93104 monthPage = { monthPage }
105+ weekdayLabels = { weekdayLabels }
94106 setStartValue = { setStartValue }
95107 setEndValue = { setEndValue }
96108 setHoverValue = { setHoverValue }
@@ -102,6 +114,7 @@ function Rangepicker({
102114 hoverValue = { hoverValue }
103115 valueFormat = { valueFormat }
104116 monthPage = { monthPage + 1 }
117+ weekdayLabels = { weekdayLabels }
105118 setStartValue = { setStartValue }
106119 setEndValue = { setEndValue }
107120 setHoverValue = { setHoverValue }
0 commit comments