-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[iOS] Fixes alert view block first responder #23240
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
facebook-github-bot
added
the
CLA Signed
This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
label
Feb 1, 2019
react-native-bot
added
API: Alert
Platform: iOS
iOS applications.
PR: Includes Changelog
labels
Feb 1, 2019
facebook-github-bot
added
the
Import Started
This pull request has been imported. This does not imply the PR has been approved.
label
Feb 1, 2019
cpojer
approved these changes
Feb 1, 2019
facebook-github-bot
approved these changes
Feb 1, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cpojer is landing this pull request. If you are a Facebook employee, you can view this diff on Phabricator.
@zhongwuzw merged commit e4364fa into |
hramos
removed
Import Started
This pull request has been imported. This does not imply the PR has been approved.
labels
Feb 6, 2019
matt-oakes
pushed a commit
to matt-oakes/react-native
that referenced
this pull request
Feb 7, 2019
Summary: Fixes facebook#23076 , the reason is `blur()` is managed by `UIManager`, `UIManager` maintains all operations and execute them each `batchDidComplete`, which means every time `JS` finish callback native , but `Alert` module would call directly, this mess up the order of method call, for example like below, even `this.$input.blur()` is called before `Alert.alert()`, but in native side, `Alert.alert()` is called before `this.$input.blur()`. ``` <TextInput style={{ borderWidth: 1 }} ref={$input => this.$input = $input} /> <Button title="Show Alert" onPress={() => { // // `blur` works if using without `Alert` this.$input && this.$input.blur() // // `blur` is not working Alert.alert('show alert', 'desc', [ { text: 'cancel', style: 'cancel' }, { text: 'show', onPress: () => { }}, ]) }} /> ``` [iOS] [Fixed] - Fixes alert view block first responder After fix, example like below, `blur` can works. ``` import * as React from 'react'; import { TextInput, View, Alert, Button } from 'react-native'; export default class App extends React.Component { render() { return ( <View style={{ flex: 1, justifyContent: 'center' }}> <TextInput style={{ borderWidth: 1 }} ref={$input => this.$input = $input} /> <Button title="Show Alert" onPress={() => { this.$input && this.$input.blur() Alert.alert('show alert', 'desc', [ { text: 'cancel', style: 'cancel' }, { text: 'show', onPress: () => { }}, ]) }} /> </View> ); } } ``` Pull Request resolved: facebook#23240 Differential Revision: D13915920 Pulled By: cpojer fbshipit-source-id: fe1916fcb5913e2b8128d045a6364c5e3d39c516
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
API: Alert
CLA Signed
This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Merged
This PR has been merged.
Platform: iOS
iOS applications.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #23076 , the reason is
blur()
is managed byUIManager
,UIManager
maintains all operations and execute them eachbatchDidComplete
, which means every timeJS
finish callback native , butAlert
module would call directly, this mess up the order of method call, for example like below, eventhis.$input.blur()
is called beforeAlert.alert()
, but in native side,Alert.alert()
is called beforethis.$input.blur()
.Changelog
[iOS] [Fixed] - Fixes alert view block first responder
Test Plan
After fix, example like below,
blur
can works.