From 3ab6727fd78038961aaa59c73c86788fa64240b0 Mon Sep 17 00:00:00 2001 From: Assem-Hafez Date: Wed, 10 Jan 2018 15:18:12 +0200 Subject: [PATCH] updated react.createClass and react.Proptypes --- DatePickerIOS.js | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/DatePickerIOS.js b/DatePickerIOS.js index 6475ceb..83f33b1 100644 --- a/DatePickerIOS.js +++ b/DatePickerIOS.js @@ -1,38 +1,19 @@ - 'use strict'; import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, - Text, View, NativeModules, requireNativeComponent, } from 'react-native'; -const DatePickerIOS = React.createClass({ - propTypes: { - date: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]), - onChange: React.PropTypes.func, - maximumDate: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]), - minimumDate: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]), - mode: React.PropTypes.oneOf(['date', 'time', 'datetime']), - timeZoneOffsetInMinutes: React.PropTypes.number, - dateFormat: React.PropTypes.string, - calendar: React.PropTypes.string, - }, - getDefaultProps: function () { - return { - mode: 'datetime', - date: new Date().getTime(), - dateFormat: "dd-MM-yyyy", - calendar: "Gregorian" - }; - }, - _onChange(event) { +class DatePickerIOS extends Component { + _onChange = (event) => { const timestamp = event.nativeEvent.timestamp; const date = event.nativeEvent.date; this.props.onChange && this.props.onChange({ date, timestamp }); - }, + } render() { const props = this.props; return ( @@ -50,7 +31,23 @@ const DatePickerIOS = React.createClass({ ); } -}); +}; +DatePickerIOS.propTypes = { + date: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + onChange: PropTypes.func, + maximumDate: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + minimumDate: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + mode: PropTypes.oneOf(['date', 'time', 'datetime']), + timeZoneOffsetInMinutes: PropTypes.number, + dateFormat: PropTypes.string, + calendar: PropTypes.string, +} +DatePickerIOS.defaultProps = { + mode: 'datetime', + date: new Date().getTime(), + dateFormat: "dd-MM-yyyy", + calendar: "Gregorian" +}; const styles = StyleSheet.create({ datePickerIOS: { height: 216, @@ -58,4 +55,4 @@ const styles = StyleSheet.create({ }); var RCTDatePickerIos = requireNativeComponent("RCTDatePickerIos", DatePickerIOS); -module.exports = DatePickerIOS; \ No newline at end of file +module.exports = DatePickerIOS;