From e205fdc90cf8667742e1c2e31cd715fba229325c Mon Sep 17 00:00:00 2001 From: Kim Helberg Date: Wed, 11 Apr 2018 21:22:15 +0200 Subject: [PATCH 1/4] Add new include for PropTypes --- src/Prompt.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Prompt.js b/src/Prompt.js index d778d0a..d719c09 100644 --- a/src/Prompt.js +++ b/src/Prompt.js @@ -1,4 +1,5 @@ -import React, { Component, PropTypes } from 'react'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import { Modal, Platform, From e5225c59ef8d802855cd54097644934d492fd86c Mon Sep 17 00:00:00 2001 From: Kim Helberg Date: Thu, 12 Apr 2018 23:06:29 +0200 Subject: [PATCH 2/4] Keep value on re-render Only reset value to defaultValue when the Prompt goes from hidden to visible, allowing for alterations to other properties without resetting any inputted text. --- src/Prompt.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Prompt.js b/src/Prompt.js index d719c09..56eef31 100644 --- a/src/Prompt.js +++ b/src/Prompt.js @@ -63,7 +63,9 @@ export default class Prompt extends Component { componentWillReceiveProps(nextProps) { const { visible, defaultValue } = nextProps; - this.setState({ visible, value:defaultValue }); + if(visible !== this.props.visible && visible) { + this.setState({ visible, value: defaultValue }); + } } _onChangeText = (value) => { @@ -115,6 +117,7 @@ export default class Prompt extends Component { Date: Tue, 31 Mar 2020 21:15:39 +0200 Subject: [PATCH 3/4] Remove componentWillReceiveProps --- src/Prompt.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Prompt.js b/src/Prompt.js index 56eef31..ece8f44 100644 --- a/src/Prompt.js +++ b/src/Prompt.js @@ -61,11 +61,18 @@ export default class Prompt extends Component { this.setState({value: this.props.defaultValue}); } - componentWillReceiveProps(nextProps) { + /*componentWillReceiveProps(nextProps) { const { visible, defaultValue } = nextProps; if(visible !== this.props.visible && visible) { this.setState({ visible, value: defaultValue }); } + }*/ + static getDerivedStateFromProps(nextProps, prevState) { + const { visible, defaultValue } = nextProps; + if(visible !== nextProps.visible && visible) { + return { visible: defaultValue }; + } + return null; } _onChangeText = (value) => { From 40632964990e560d659cf16f4fb446862340139e Mon Sep 17 00:00:00 2001 From: Kim Helberg Date: Thu, 2 Apr 2020 10:56:21 +0200 Subject: [PATCH 4/4] Upped version number. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8a55947..2c33c92 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-prompt", - "version": "1.0.0", + "version": "1.0.1", "description": "A cross-platform prompt component for React Native.", "repository": { "type": "git",