From b3973d21fa67820c9bfd242cc0b18e56731d89f3 Mon Sep 17 00:00:00 2001 From: Samin Adhikari Date: Sat, 19 Sep 2020 15:55:50 +0545 Subject: [PATCH 1/5] index.d.ts added to disable ts error message --- datepicker.js | 13 ++++++++----- index.d.ts | 34 ++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 index.d.ts diff --git a/datepicker.js b/datepicker.js index ac6cacde29..fb2081bb90 100644 --- a/datepicker.js +++ b/datepicker.js @@ -50,10 +50,11 @@ class DatePicker extends Component { this.setModalVisible = this.setModalVisible.bind(this); } - componentWillReceiveProps(nextProps) { - if (nextProps.date !== this.props.date) { - this.setState({date: this.getDate(nextProps.date)}); + static getDerivedStateFromProps(nextProps, prevState) { + if (nextProps.date !== prevState.date) { + return ({ total: nextProps.date }) } + return null; } setModalVisible(visible) { @@ -66,7 +67,8 @@ class DatePicker extends Component { this.state.animatedHeight, { toValue: height, - duration: duration + duration: duration, + useNativeDriver: false } ).start(); } else { @@ -74,7 +76,8 @@ class DatePicker extends Component { this.state.animatedHeight, { toValue: 0, - duration: duration + duration: duration, + useNativeDriver: false } ).start(() => { this.setState({modalVisible: visible}); diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000000..7709d32279 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,34 @@ +import * as React from 'react'; + +interface DatePickerProps { + date?: Date; + style?: Object; + mode?: "date" | "datetime" | "time"; + androidMode?: "default" | "calendar" | "spinner"; + format?: string; + confirmBtnText?: string; + cancelBtnText?: string; + iconSource?: any; + minDate?: Date; + maxDate?: Date; + duration?: number; + customStyles?: Object; + showIcon?: boolean; + hideText?: boolean; + iconComponent?: Element; + disabled?: boolean; + is24Hour?: boolean; + allowFontScaling?: boolean; + placeholder?: string; + onDateChange?: Function; + onOpenModal?: Function; + onCloseModal?: Function; + onPressMask?: Function; + modalOnResponderTerminationRequest?: Function; + TouchableComponent?: any; + getDataStr?: Function; +} + +export default class DatePicker extends React.Component{ + +} diff --git a/package.json b/package.json index 61c053779c..ebf60eabb5 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "1.7.2", "description": "React Native DatePicker component for both Android and iOS, useing DatePickerAndroid, TimePickerAndroid and DatePickerIOS", "main": "datepicker.js", + "types": "index.d.ts", "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest --coverage", From 935303e1b71bdcadcecd249ad683845e65a4077d Mon Sep 17 00:00:00 2001 From: Samin Adhikari Date: Sat, 19 Sep 2020 15:56:16 +0545 Subject: [PATCH 2/5] index.d.ts added to disable ts error message --- datepicker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datepicker.js b/datepicker.js index fb2081bb90..32ecb8f3da 100644 --- a/datepicker.js +++ b/datepicker.js @@ -52,7 +52,7 @@ class DatePicker extends Component { static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.date !== prevState.date) { - return ({ total: nextProps.date }) + return ({total: nextProps.date}); } return null; } From eb0c24919bf98ffeb14e362d71872a6cbc1bdd40 Mon Sep 17 00:00:00 2001 From: samin Date: Sat, 19 Sep 2020 16:11:40 +0545 Subject: [PATCH 3/5] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 71eea61caa..9bfb14a706 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,8 @@ export default class MyDatePicker extends Component { You can check [index.js](https://github.com/xgfe/react-native-datepicker/blob/master/index.android.js) in the Example for detail. +> There has been changes to date component in iOS 14. To get the expected behaviour like iOS 13 and earlier, see [this](https://github.com/xgfe/react-native-datepicker/issues/425#issuecomment-691976594). + ## Properties | Prop | Default | Type | Description | From d7ef5f667e330c82cd5c7d0b91c4f0d28d3262c0 Mon Sep 17 00:00:00 2001 From: Samin Adhikari Date: Sat, 19 Sep 2020 17:03:09 +0545 Subject: [PATCH 4/5] minor fix --- datepicker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datepicker.js b/datepicker.js index 32ecb8f3da..6aab0e803d 100644 --- a/datepicker.js +++ b/datepicker.js @@ -52,7 +52,7 @@ class DatePicker extends Component { static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.date !== prevState.date) { - return ({total: nextProps.date}); + return ({date: nextProps.date}); } return null; } From e77b270f45256001d3e6481ef29b63e603c20253 Mon Sep 17 00:00:00 2001 From: Samin Adhikari Date: Sat, 19 Sep 2020 18:07:54 +0545 Subject: [PATCH 5/5] componentWillReceiveProps used to pass test --- datepicker.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/datepicker.js b/datepicker.js index 6aab0e803d..d672123215 100644 --- a/datepicker.js +++ b/datepicker.js @@ -50,11 +50,10 @@ class DatePicker extends Component { this.setModalVisible = this.setModalVisible.bind(this); } - static getDerivedStateFromProps(nextProps, prevState) { - if (nextProps.date !== prevState.date) { - return ({date: nextProps.date}); + componentWillReceiveProps(nextProps) { + if (nextProps.date !== this.props.date) { + this.setState({date: this.getDate(nextProps.date)}); } - return null; } setModalVisible(visible) {