@@ -6,18 +6,26 @@ import DateTimePicker from "@react-native-community/datetimepicker";
66const areEqual = ( prevProps , nextProps ) => {
77 return (
88 prevProps . isVisible === nextProps . isVisible &&
9- prevProps . date . getTime ( ) === nextProps . date . getTime ( )
9+ ( prevProps . date ? .getTime ( ) === nextProps . date ? .getTime ( ) )
1010 ) ;
1111} ;
1212
1313const DateTimePickerModal = memo (
14- ( { date, mode, isVisible, onCancel, onConfirm, onHide, ...otherProps } ) => {
14+ ( {
15+ date = new Date ( ) ,
16+ mode = 'date' ,
17+ isVisible = false ,
18+ onCancel,
19+ onConfirm,
20+ onHide = ( ) => { } ,
21+ ...otherProps
22+ } ) => {
1523 const currentDateRef = useRef ( date ) ;
1624 const [ currentMode , setCurrentMode ] = useState ( null ) ;
1725
1826 useEffect ( ( ) => {
1927 if ( isVisible && currentMode === null ) {
20- setCurrentMode ( mode === " time" ? " time" : " date" ) ;
28+ setCurrentMode ( mode === ' time' ? ' time' : ' date' ) ;
2129 } else if ( ! isVisible ) {
2230 setCurrentMode ( null ) ;
2331 }
@@ -26,18 +34,18 @@ const DateTimePickerModal = memo(
2634 if ( ! isVisible || ! currentMode ) return null ;
2735
2836 const handleChange = ( event , date ) => {
29- if ( event . type === " dismissed" ) {
37+ if ( event . type === ' dismissed' ) {
3038 onCancel ( ) ;
3139 onHide ( false ) ;
3240 return ;
3341 }
3442 let nextDate = date ;
35- if ( mode === " datetime" ) {
36- if ( currentMode === " date" ) {
37- setCurrentMode ( " time" ) ;
43+ if ( mode === ' datetime' ) {
44+ if ( currentMode === ' date' ) {
45+ setCurrentMode ( ' time' ) ;
3846 currentDateRef . current = new Date ( date ) ;
3947 return ;
40- } else if ( currentMode === " time" ) {
48+ } else if ( currentMode === ' time' ) {
4149 const year = currentDateRef . current . getFullYear ( ) ;
4250 const month = currentDateRef . current . getMonth ( ) ;
4351 const day = currentDateRef . current . getDate ( ) ;
@@ -62,6 +70,8 @@ const DateTimePickerModal = memo(
6270 areEqual
6371) ;
6472
73+ export default DateTimePickerModal ;
74+
6575DateTimePickerModal . propTypes = {
6676 date : PropTypes . instanceOf ( Date ) ,
6777 isVisible : PropTypes . bool ,
@@ -72,10 +82,4 @@ DateTimePickerModal.propTypes = {
7282 minimumDate : PropTypes . instanceOf ( Date ) ,
7383} ;
7484
75- DateTimePickerModal . defaultProps = {
76- date : new Date ( ) ,
77- isVisible : false ,
78- onHide : ( ) => { } ,
79- } ;
80-
81- export { DateTimePickerModal } ;
85+ export { DateTimePickerModal } ;
0 commit comments