From 8d718f807185fd52412160d6777394047aa3e431 Mon Sep 17 00:00:00 2001 From: Ivan Iankovskyi Date: Thu, 10 May 2018 13:40:13 +0300 Subject: [PATCH 1/5] fix delete position --- index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 56edce5..4048777 100644 --- a/index.js +++ b/index.js @@ -349,7 +349,8 @@ class Search extends PureComponent { tintColor: this.props.tintColorDelete }, this.props.positionRightDelete && { - [isRtl ? 'left' : 'right']: this.props.positionRightDelete + [isRtl ? 'left' : 'right']: this.props.positionRightDelete, + [isRtl ? 'right' : 'left']: undefined, }, { opacity: this.iconDeleteAnimated } ]} From 7aaf288f04551dbad286bbf3e49d13de9ae13c3b Mon Sep 17 00:00:00 2001 From: Ivan Iankovskyi Date: Thu, 10 May 2018 13:54:51 +0300 Subject: [PATCH 2/5] add onblur handler --- index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/index.js b/index.js index 4048777..19434ca 100644 --- a/index.js +++ b/index.js @@ -178,6 +178,16 @@ class Search extends PureComponent { this.props.afterCancel && (await this.props.afterCancel()); }; + onBlur = async () => { + this.props.beforeCancel && (await this.props.beforeBlur()); + await this.setState(prevState => { + return { expanded: !prevState.expanded }; + }); + await this.collapseAnimation(true); + this.props.onBlur && (await this.props.onBlur()); + this.props.afterBlur && (await this.props.afterBlur()); + }; + expandAnimation = () => { return new Promise((resolve, reject) => { Animated.parallel([ @@ -304,6 +314,7 @@ class Search extends PureComponent { keyboardType={this.props.keyboardType || 'default'} autoCapitalize={this.props.autoCapitalize} onFocus={this.onFocus} + onBlur={this.onBlur} underlineColorAndroid="transparent" /> From 873460047a9963d7fbfd6603c22d306499ef6a7e Mon Sep 17 00:00:00 2001 From: Ivan Iankovskyi Date: Thu, 10 May 2018 15:10:19 +0300 Subject: [PATCH 3/5] fix prop-types --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 19434ca..ea65250 100644 --- a/index.js +++ b/index.js @@ -514,7 +514,7 @@ Search.propTypes = { ViewPropTypes.style, Text.propTypes.style ]), - direction: PropTypes.oneOf['ltr', 'rtl'], + direction: PropTypes.string, cancelButtonStyle: PropTypes.oneOfType([ PropTypes.number, PropTypes.object, From b79149e214d5a69a9b740e7952e172359b386764 Mon Sep 17 00:00:00 2001 From: Ivan Iankovskyi Date: Wed, 23 May 2018 14:57:06 +0300 Subject: [PATCH 4/5] add collapseOnBlur prop --- index.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index ea65250..e294387 100644 --- a/index.js +++ b/index.js @@ -180,10 +180,12 @@ class Search extends PureComponent { onBlur = async () => { this.props.beforeCancel && (await this.props.beforeBlur()); - await this.setState(prevState => { - return { expanded: !prevState.expanded }; - }); - await this.collapseAnimation(true); + if (this.props.collapseOnBlur) { + await this.setState(prevState => { + return { expanded: !prevState.expanded }; + }); + await this.collapseAnimation(true); + } this.props.onBlur && (await this.props.onBlur()); this.props.afterBlur && (await this.props.afterBlur()); }; @@ -553,6 +555,7 @@ Search.propTypes = { searchIconExpandedMargin: PropTypes.number, placeholderCollapsedMargin: PropTypes.number, placeholderExpandedMargin: PropTypes.number, + collapseOnBlur: PropTypes.bool, /** * Shadow @@ -568,6 +571,7 @@ Search.propTypes = { }; Search.defaultProps = { + collapseOnBlur: true, editable: true, blurOnSubmit: true, keyboardShouldPersist: false, From d925747dab1ba647d4ae6463276ff509162e0eef Mon Sep 17 00:00:00 2001 From: Ivan Iankovskyi Date: Wed, 23 May 2018 15:58:38 +0300 Subject: [PATCH 5/5] fix beforeBlur --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index e294387..566c797 100644 --- a/index.js +++ b/index.js @@ -179,7 +179,7 @@ class Search extends PureComponent { }; onBlur = async () => { - this.props.beforeCancel && (await this.props.beforeBlur()); + this.props.beforeBlur && (await this.props.beforeBlur()); if (this.props.collapseOnBlur) { await this.setState(prevState => { return { expanded: !prevState.expanded };