11import React , { useRef , useState , useEffect } from 'react' ;
22import ReactDOM from 'react-dom/client' ;
33import './index.css' ;
4- import { IgrButton , IgrDatePicker , IgrDatePickerModule } from 'igniteui-react' ;
5-
4+ import { IgrButton , IgrDatePicker } from 'igniteui-react' ;
65import 'igniteui-webcomponents/themes/light/bootstrap.css' ;
76
8- IgrDatePickerModule . register ( ) ;
9-
107export default function App ( ) {
11- const datePickerRef = useRef < IgrDatePicker > ( null ) ;
128 const formRef = useRef < HTMLFormElement > ( null ) ;
139
14- const [ datePickerValue , setDatePickerValue ] = useState < Date | null > ( new Date ( 2024 , 4 , 15 ) ) ;
10+ const initialDate = new Date ( 2024 , 4 , 15 ) ;
11+ const minDate = new Date ( initialDate . getFullYear ( ) , initialDate . getMonth ( ) , initialDate . getDate ( ) - 10 ) ;
12+ const maxDate = new Date ( initialDate . getFullYear ( ) , initialDate . getMonth ( ) , initialDate . getDate ( ) + 15 ) ;
13+
14+ const [ datePickerValue , setDatePickerValue ] = useState < Date | null > ( initialDate ) ;
1515 const [ formStatus , setFormStatus ] = useState < string > ( '' ) ;
1616
1717 useEffect ( ( ) => {
18- const date = new Date ( 2024 , 4 , 15 ) ;
19- const minDate = new Date ( date . getFullYear ( ) , date . getMonth ( ) , date . getDate ( ) - 10 ) ;
20- const maxDate = new Date ( date . getFullYear ( ) , date . getMonth ( ) , date . getDate ( ) + 15 ) ;
21-
22- if ( datePickerRef . current ) {
23- datePickerRef . current . value = date ;
24- datePickerRef . current . min = minDate ;
25- datePickerRef . current . max = maxDate ;
26- }
27-
2818 updateFormStatus ( ) ;
29- } , [ ] ) ;
19+ } , [ datePickerValue ] ) ;
3020
3121 const updateFormStatus = ( ) => {
3222 if ( formRef . current ) {
@@ -37,24 +27,22 @@ export default function App() {
3727 const handleDateChange = ( e : any ) => {
3828 const newValue = e . detail ;
3929 setDatePickerValue ( newValue ) ;
40- updateFormStatus ( ) ;
4130 } ;
4231
4332 const handleReset = ( event : React . MouseEvent < IgrButton > ) => {
4433 event . preventDefault ( ) ;
45- if ( formRef . current ) {
46- formRef . current . reset ( ) ;
47- setDatePickerValue ( null ) ;
48- setFormStatus ( 'false' ) ;
49- }
34+ setDatePickerValue ( null ) ;
35+ setFormStatus ( 'false' ) ;
5036 } ;
5137
5238 return (
5339 < div className = "container sample" >
5440 < div className = "container" >
5541 < form ref = { formRef } >
5642 < div >
57- < IgrDatePicker id = 'datePicker' ref = { datePickerRef } onChange = { handleDateChange } />
43+ < IgrDatePicker id = 'datePicker' value = { datePickerValue ?? undefined } min = { minDate } max = { maxDate }
44+ onChange = { handleDateChange }
45+ />
5846 < IgrButton id = "resetButton" onClick = { handleReset } > < span > Reset</ span > </ IgrButton >
5947 </ div >
6048 </ form >
0 commit comments