Cannot use DynamicColorIOS or PlatformColor with Share tintColor option
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
Description
Following up with my previous issue regarding the new PlatformColor and DynamicColorIOS APIs. I like this quest!
I've encountered another issue, this time when using these new color APIs with the Share API. Anytime I try to use either a PlatformColor or DynamicColorIOS as the tint color I get the following error:
[Fri Nov 13 2020 19:51:50.612] WARN Possible Unhandled Promise Rejection (id: 3):
Invariant Violation: Unexpected color given for options.tintColor
React Native version:
System:
OS: macOS 11.0.1
CPU: (8) x64 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
Memory: 20.24 MB / 20.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 14.3.0 - /var/folders/n8/l8xdjt192lb9lpfrkyh9v57m0000gn/T/yarn--1605466607306-0.2082520059346018/node
Yarn: 1.22.5 - /var/folders/n8/l8xdjt192lb9lpfrkyh9v57m0000gn/T/yarn--1605466607306-0.2082520059346018/yarn
npm: 6.14.5 - ~/.nvm/versions/node/v14.3.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.0 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.2, DriverKit 20.0, macOS 11.0, tvOS 14.2, watchOS 7.1
Android SDK:
API Levels: 28, 29
Build Tools: 28.0.3, 29.0.2
System Images: android-28 | Intel x86 Atom_64
Android NDK: Not Found
IDEs:
Android Studio: 4.1 AI-201.8743.12.41.6953283
Xcode: 12.2/12B45b - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_272 - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.13.1 => 16.13.1
react-native: 0.63.3 => 0.63.3
react-native-macos: Not Found
npmGlobalPackages:
*react-native*: Not Found
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.
- Use a PlatformColor or DynamicColorIOS to set the tint color option for the Share API
- Call the share API
- No share sheet appearing and error in the logs
Expected Results
Share sheet should appear without errors
Snack, code example, screenshot, or link to a repository:
import { PlatformColor, Share } from 'react-native'
const shareWithPlatformColor = () => Share.share('This is a nice content to share', {
tintColor: PlatformColor('systemYellow'),
})
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the React Native Share API entry point and reproduce the issue using the provided PlatformColor example on iOS. Trace the tintColor validation that produces “Unexpected color given for options.tintColor.” Done means the share sheet appears without errors when tintColor uses PlatformColor or DynamicColorIOS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, javascript, react
- Domain
- api, mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100