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

Add cursor style to Text #1469

Merged
merged 5 commits into from
Nov 16, 2022
Merged

Conversation

shwanton
Copy link

@shwanton shwanton commented Nov 4, 2022

Please select one of the following

  • I am removing an existing difference between facebook/react-native and microsoft/react-native-macos 👍
  • I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos 👍
  • I am making a fix / change for the macOS implementation of react-native
  • I am making a change required for Microsoft usage of react-native

Summary

#760 Added support for changing cursor styles for views.
#1346 changed RCTTextView to use NSTextView api's with support for customizing cursor.

Differential Revision: https://phabricator.intern.facebook.com/D28162138

Change-log

[macOS][Added] - Add cursor styles to Text View

Test Plan

CleanShot.2022-11-03.at.17.40.23.mp4

lyahdav and others added 2 commits November 3, 2022 17:26
Summary: We need this for URLs to show a pointer cursor as we render URLs as Text in Messenger Desktop.

Test Plan:
RNTester > Text:

{F612914000}

Reviewers: skyle

Reviewed By: skyle

Subscribers: eliwhite

Differential Revision: https://phabricator.intern.facebook.com/D28162138

Tasks: T78743077

Signature: 28162138:1620330813:8d90a29258ff560df30403fda9ce04df430caee9
Libraries/Text/Text/RCTTextView.m Show resolved Hide resolved
Libraries/Text/VirtualText/RCTVirtualTextViewManager.m Outdated Show resolved Hide resolved
@Saadnajmi
Copy link
Collaborator

Any blocker for this one?

@shwanton
Copy link
Author

This is ready! Just had a lint fix.

@Saadnajmi
Copy link
Collaborator

This is ready! Just had a lint fix.

Can you mark it as not a draft so I can merge it? :)

@shwanton shwanton marked this pull request as ready for review November 16, 2022 17:56
@shwanton shwanton requested a review from a team as a code owner November 16, 2022 17:56
@shwanton
Copy link
Author

Oops, my bad! 😅

@Saadnajmi Saadnajmi merged commit 6df7db1 into microsoft:main Nov 16, 2022
@christophpurrer
Copy link

Great to see this merged!

@shwanton shwanton deleted the text-view-cursor branch December 16, 2022 00:52
shwanton added a commit to shwanton/react-native-macos that referenced this pull request Feb 13, 2023
* Add cursor style to Text

Summary: We need this for URLs to show a pointer cursor as we render URLs as Text in Messenger Desktop.

Test Plan:
RNTester > Text:

{F612914000}

Reviewers: skyle

Reviewed By: skyle

Subscribers: eliwhite

Differential Revision: https://phabricator.intern.facebook.com/D28162138

Tasks: T78743077

Signature: 28162138:1620330813:8d90a29258ff560df30403fda9ce04df430caee9

* Remove un-necessary setter

* Add back whitespace!

* yarn lint

Co-authored-by: Liron Yahdav <[email protected]>
Co-authored-by: Shawn Dempsey <[email protected]>
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Mar 5, 2024
Summary:
Implement the cursor style prop for iOS (and consequently, visionOS), as described in this RFC: react-native-community/discussions-and-proposals#750

See related PR in React Native macOS, where we target macOS and visionOS (not running in iPad compatibility mode) with the same change: microsoft#2080

Docs update: facebook/react-native-website#4033

## Changelog:

[IOS] [ADDED] - Implement cursor style prop

Pull Request resolved: #43078

Test Plan:
See the added example page, running on iOS with the new architecture enabled. This also runs the same on the old architecture.

https://github.com/facebook/react-native/assets/6722175/2af60a0c-1c1f-45c4-8d66-a20f6d5815df

See the example page running on all three apple platforms. The JS is slightly different because:
1. The "macOS Cursors" example is not part of this PR but the one in React Native macOS.
2. This PR (and exapmple) has went though a bunch of iterations and It got hard taking videos of every change 😅

https://github.com/facebook/react-native/assets/6722175/7775ba7c-8624-4873-a735-7665b94b7233

## Notes

- React Native macOS added the cursor prop to View with microsoft#760 and Text with microsoft#1469 . Much of the implementation comes from there.

- Due to an Apple bug, as of iOS 17.4 Beta 4, the shape of the iOS cursor hover effect doesn't render in the correct bounds (but it does on visionOS). I've worked around it with an ifdef. The result is that the hover effect will work on iOS and visionOS, but not iPad apps running in compatibility mode on visionOS.

Reviewed By: NickGerleman

Differential Revision: D54512945

Pulled By: vincentriemer

fbshipit-source-id: 699e3a01a901f55a466a2c1a19f667aede5aab80
huntie pushed a commit to facebook/react-native that referenced this pull request Mar 11, 2024
Summary:
Implement the cursor style prop for iOS (and consequently, visionOS), as described in this RFC: react-native-community/discussions-and-proposals#750

See related PR in React Native macOS, where we target macOS and visionOS (not running in iPad compatibility mode) with the same change: microsoft#2080

Docs update: facebook/react-native-website#4033

## Changelog:

[IOS] [ADDED] - Implement cursor style prop

Pull Request resolved: #43078

Test Plan:
See the added example page, running on iOS with the new architecture enabled. This also runs the same on the old architecture.

https://github.com/facebook/react-native/assets/6722175/2af60a0c-1c1f-45c4-8d66-a20f6d5815df

See the example page running on all three apple platforms. The JS is slightly different because:
1. The "macOS Cursors" example is not part of this PR but the one in React Native macOS.
2. This PR (and exapmple) has went though a bunch of iterations and It got hard taking videos of every change 😅

https://github.com/facebook/react-native/assets/6722175/7775ba7c-8624-4873-a735-7665b94b7233

## Notes

- React Native macOS added the cursor prop to View with microsoft#760 and Text with microsoft#1469 . Much of the implementation comes from there.

- Due to an Apple bug, as of iOS 17.4 Beta 4, the shape of the iOS cursor hover effect doesn't render in the correct bounds (but it does on visionOS). I've worked around it with an ifdef. The result is that the hover effect will work on iOS and visionOS, but not iPad apps running in compatibility mode on visionOS.

Reviewed By: NickGerleman

Differential Revision: D54512945

Pulled By: vincentriemer

fbshipit-source-id: 699e3a01a901f55a466a2c1a19f667aede5aab80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants