Skip to content
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

fix: TextInput selectionColor props on iOS #44420

Closed

Conversation

robinshin
Copy link
Contributor

@robinshin robinshin commented May 6, 2024

Summary:

This pull request fixes an issue where the selectionColor prop was not applied to the TextInput component on iOS, starting from React Native version 0.74.x.

This issue was introduced in PR 1e68e485 which relocated selectionColor along with selectionHandleColor and cursorColor out of otherProps. This modification inadvertently prevented selectionColor from being passed to the iOS native component.

This change ensures that the selectionColor prop is explicitly included in the RCTTextInputView component's properties, fixing the regression.

Note: selectionHandleColor and cursorColor are Android-specific and do not require explicit passing on iOS.

Changelog:

[IOS] [FIXED] - Fixed an issue where the selectionColor prop was not being applied on the TextInput component.

Test Plan:

Environment: iOS Simulator, React Native 0.74.0.

Steps to reproduce:

  • Implement a TextInput component with the selectionColor prop set.
  • Run the application on an iOS device or simulator.
  • Focus on the TextInput component, write some text and select it.

Expected Result: the selection color should match the color provided to the selectionColor prop.

Actual result before fix: the selection color did not reflect the specified selectionColor prop and fell back to the default iOS selection color (blue).

Screenshots:

  • Before fix:
before_fix
  • After fix:
after_fix

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. labels May 6, 2024
@facebook-github-bot
Copy link
Contributor

@NickGerleman has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@robinshin
Copy link
Contributor Author

@NickGerleman looks like the Facebook GitHub Tools / Facebook Internal - Builds & Tests CI step is stuck: it's been running for more than one day now

@Simoon-F
Copy link

Simoon-F commented May 8, 2024

In which version will this PR be released?

....Concern.

@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label May 9, 2024
@facebook-github-bot
Copy link
Contributor

@NickGerleman merged this pull request in 2bde626.

Copy link

github-actions bot commented May 9, 2024

This pull request was successfully merged by @robinshin in 2bde626.

When will my fix make it into a release? | How to file a pick request?

@janicduplessis
Copy link
Contributor

Posted a cherry-pick request so it can be included in the next 0.74 patch release.

janicduplessis pushed a commit to janicduplessis/react-native that referenced this pull request May 18, 2024
Summary:
This pull request fixes an issue where the `selectionColor` prop was not applied to the `TextInput` component on iOS, starting from React Native version 0.74.x.

This issue was introduced in PR [1e68e48](facebook@1e68e48#diff-b6634353ea5b10a91de24605dc51bdfb50e8ddb652ccd5b9dab194168a69d4b1) which relocated `selectionColor` along with `selectionHandleColor` and `cursorColor` out of `otherProps`. This modification inadvertently prevented `selectionColor` from being passed to the iOS native component.

This change ensures that the `selectionColor` prop is explicitly included in the `RCTTextInputView` component's properties, fixing the regression.

Note: `selectionHandleColor` and `cursorColor` are Android-specific and do not require explicit passing on iOS.

## Changelog:

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[IOS] [FIXED] - Fixed an issue where the `selectionColor` prop was not being applied on the `TextInput` component.

Pull Request resolved: facebook#44420

Test Plan:
**Environment:** iOS Simulator, React Native 0.74.0.

**Steps to reproduce:**

- Implement a `TextInput` component with the `selectionColor` prop set.
- Run the application on an iOS device or simulator.
- Focus on the TextInput component, write some text and select it.

**Expected Result:** the selection color should match the color provided to the `selectionColor` prop.

**Actual result before fix:** the selection color did not reflect the specified `selectionColor` prop and fell back to the default iOS selection color (blue).

**Screenshots:**
- Before fix:
<img width="1710" alt="before_fix" src="https://github.com/facebook/react-native/assets/17989553/8660068c-55c9-4f55-a788-f96eb681fb70">

- After fix:
<img width="1710" alt="after_fix" src="https://github.com/facebook/react-native/assets/17989553/93c9eb26-7da0-4957-b54f-8444aff7e374">

Reviewed By: javache

Differential Revision: D57017836

Pulled By: NickGerleman

fbshipit-source-id: 263ce22168e09c15cdfdb4eb4300a2605d8af032
@robinshin robinshin deleted the fix-textinput-selection-color-ios branch May 19, 2024 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants