diff --git a/package.json b/package.json index 8a55947..4d9c2c1 100644 --- a/package.json +++ b/package.json @@ -47,5 +47,8 @@ "mocha": "^2.3.4", "sinon": "^1.17.2", "wd": "^0.4.0" + }, + "dependencies": { + "prop-types": "^15.5.8" } } diff --git a/src/Prompt.js b/src/Prompt.js index d778d0a..49b5752 100644 --- a/src/Prompt.js +++ b/src/Prompt.js @@ -1,13 +1,15 @@ -import React, { Component, PropTypes } from 'react'; +import React, { Component } from 'react'; import { Modal, Platform, Text, TextInput, TouchableWithoutFeedback, - View + View, + ViewPropTypes } from 'react-native'; import styles from './styles'; +import PropTypes from 'prop-types'; export default class Prompt extends Component { static propTypes = { @@ -21,15 +23,50 @@ export default class Prompt extends Component { submitText: PropTypes.string, onChangeText: PropTypes.func.isRequired, borderColor: PropTypes.string, - promptStyle: PropTypes.object, - titleStyle: PropTypes.object, - buttonStyle: PropTypes.object, - buttonTextStyle: PropTypes.object, - submitButtonStyle: PropTypes.object, - submitButtonTextStyle: PropTypes.object, - cancelButtonStyle: PropTypes.object, - cancelButtonTextStyle: PropTypes.object, - inputStyle: PropTypes.object, + promptStyle: PropTypes.oneOfType([ + PropTypes.object, + ViewPropTypes.style, + PropTypes.array + ]), + titleStyle: PropTypes.oneOfType([ + PropTypes.object, + Text.propTypes.style, + PropTypes.array + ]), + buttonStyle: PropTypes.oneOfType([ + PropTypes.object, + ViewPropTypes.style, + PropTypes.array + ]), + buttonTextStyle: PropTypes.oneOfType([ + PropTypes.object, + Text.propTypes.style, + PropTypes.array + ]), + submitButtonStyle: PropTypes.oneOfType([ + PropTypes.object, + ViewPropTypes.style, + PropTypes.array + ]), + submitButtonTextStyle: PropTypes.oneOfType([ + PropTypes.object, + Text.propTypes.style, + PropTypes.array + ]), + cancelButtonStyle: PropTypes.oneOfType([ + PropTypes.object, + ViewPropTypes.style, + PropTypes.array + ]), + cancelButtonTextStyle: PropTypes.oneOfType([ + PropTypes.object, + Text.propTypes.style, + PropTypes.array + ]), + inputStyle: PropTypes.oneOfType([ + PropTypes.object, + PropTypes.array + ]), textInputProps: PropTypes.object, }; @@ -61,8 +98,8 @@ export default class Prompt extends Component { } componentWillReceiveProps(nextProps) { - const { visible, defaultValue } = nextProps; - this.setState({ visible, value:defaultValue }); + const { visible } = nextProps; + this.setState({ visible }); } _onChangeText = (value) => { @@ -143,7 +180,7 @@ export default class Prompt extends Component { render() { return ( - this.close()} transparent={true} visible={this.props.visible}> + {this._renderDialog()} );