[Switch] make sure wasOn
is set properly
#1871
Merged
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.
Please select one of the following
Summary
Separating out a change from #1867 to reduce the footprint of that PR.
When a
<Switch>
is created on macOS with an initial value of on, it would not report it's change the first time you toggled it. This seems to be because an internal variable_wasOn
was not set properly on macOS, which theonChange
handler relied on. Comparing Appkit to UIKit, I think this is because in UIKit, setting the propertyon
will internally callsetOn:Animated
, which RN overrides to set_wasOn
. We had to reimplement bothon
andsetOn:Animated
for macOS. Let's just have the setter foron
callsetOn:Animated
to fix this issue.Changelog
Pick one each for the category and type tags:
[MACOS] [FIXED] - Make sure
wasOn
is set properly in SwitchTest Plan
Before (from #1867):
1.mov
After:
Screen.Recording.2023-07-05.at.10.46.08.PM.mov