From 5ecd9321ccd1e93257cd57d1aad9327942d60c98 Mon Sep 17 00:00:00 2001 From: Nirav Malsattar Date: Tue, 26 Jun 2018 17:49:15 +0200 Subject: [PATCH] PropType Error Included PropType Separately as per RN > 0.5 --- lib/index.js | 89 +++++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/lib/index.js b/lib/index.js index b423a28..a640e74 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,5 +1,5 @@ -var React = require('react-native'); - +var React = require("react-native"); +import PropTypes from "prop-types"; var { StyleSheet, Component, @@ -8,15 +8,14 @@ var { Image, ScrollView, TouchableWithoutFeedback, - NativeModules: { - UIManager - } + NativeModules: { UIManager } } = React; -var window = require('Dimensions').get('window'); +var window = require("Dimensions").get("window"); var arrow = { - uri: 'data:image/png;base64,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', + uri: + "data:image/png;base64,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", isStatic: true, width: 15, height: 15 @@ -25,12 +24,12 @@ var arrow = { var styles = StyleSheet.create({ container: { height: 40, - borderColor: '#BDBDC1', + borderColor: "#BDBDC1", borderWidth: 2 / window.scale }, select: { - position: 'absolute', - borderColor: '#BDBDC1', + position: "absolute", + borderColor: "#BDBDC1", borderWidth: 2 / window.scale, left: -1 }, @@ -59,7 +58,7 @@ class DropDown extends Component { } _toggleDropDownMenu() { - var selectDisplay = this.refs['select_display']; + var selectDisplay = this.refs["select_display"]; var { open } = this.state; var handle; @@ -109,20 +108,19 @@ class DropDown extends Component { _renderOptions() { var { options } = this.props; - return options.map((option, index) => + return options.map((option, index) => ( + onPress={this._onSelect.bind(this, index)} + > {this.renderOption(option)} - ); + )); } _onScroll(event) { var { - nativeEvent: { - contentOffset - } + nativeEvent: { contentOffset } } = event; this.contentOffset = { ...contentOffset }; @@ -140,19 +138,19 @@ class DropDown extends Component { height = optionHeight * options.length; } - return !open? null : - ( - - - {this._renderOptions()} - - - ); + return !open ? null : ( + + + {this._renderOptions()} + + + ); } getSelectedItem() { @@ -173,9 +171,16 @@ class DropDown extends Component { return ( - - {option.label} - + + + {option.label} + + + + {this._renderPopupWindow()} @@ -185,17 +190,15 @@ class DropDown extends Component { } DropDown.propTypes = { - defaultOption: React.PropTypes.number, - options: React.PropTypes.arrayOf( - React.PropTypes.shape( - { - label: React.PropTypes.string.isRequired - } - ) + defaultOption: PropTypes.number, + options: PropTypes.arrayOf( + PropTypes.shape({ + label: PropTypes.string.isRequired + }) ), - onSelect: React.PropTypes.func, - optionHeight: React.PropTypes.number, - numberOptionsDisplay: React.PropTypes.number + onSelect: PropTypes.func, + optionHeight: PropTypes.number, + numberOptionsDisplay: PropTypes.number }; DropDown.defaultProps = {