Commit Graph

1524 Commits

Author SHA1 Message Date
Nicolas Gallagher
52f903229e Minor cleanup of StyleSheet 2020-06-26 14:51:52 -07:00
Nicolas Gallagher
3230713d6b [change] Remove support for microdata props
Microdata was removed from the HTML spec and most browsers.
2020-06-26 14:51:52 -07:00
Nicolas Gallagher
53dd03d83b Fix PressResponder click prevention logic 2020-06-26 14:51:51 -07:00
Nicolas Gallagher
c2d4fd6d77 Fix TextInput onSelectionChange logic 2020-06-26 14:51:51 -07:00
Nicolas Gallagher
fc78cb06fd Fix updates to opacity in TouchableOpacity 2020-06-26 14:51:50 -07:00
liorJuice
cd9be22947 [fix] Clipboard copy edge-case
Make sure clipboard works even if global CSS is affecting user text selection.

Fix #1559
2020-06-26 14:51:50 -07:00
Jaap Frolich
324995ec2b [add] Appearance module
Close #1597
2020-06-26 14:51:50 -07:00
Nicolas Gallagher
cecacbc3ac Add eslint-plugin-flowtype 2020-06-26 14:51:49 -07:00
Nicolas Gallagher
ff6109ec1c Update README and docs 2020-06-26 14:51:49 -07:00
Nicolas Gallagher
aa647567ad [change] Remove hitSlop
Rely on the native behavior of browsers to provide hitslop for touch on
interactive elements.

Fix 1609
2020-06-26 14:51:48 -07:00
Nicolas Gallagher
e9933b107a Adjust keyboard onClick shim 2020-06-26 14:51:48 -07:00
Nicolas Gallagher
4b4163f630 [add] AccessibilityInfo API update
Close #1574
2020-06-26 14:51:47 -07:00
Nicolas Gallagher
ac945761e6 [fix] Add getNativeScrollRef to FlatList
Fix #1560
Close #1563
2020-06-26 14:51:47 -07:00
Nicolas Gallagher
7ab3cf0d42 [change] Remove scrollWithoutAnimationTo from ScrollView
Remove this API which was previously deprecated.
2020-06-26 14:51:47 -07:00
Nicolas Gallagher
37ff6b4888 Reorganize usePressEvents and PressResponder 2020-06-26 14:51:46 -07:00
Nicolas Gallagher
cf7d5e9b07 [fix] forwarding of refs and props
Fixes a performance regression in prop forwarding by reintroducing prop filtering.
Fixes ref forwarding to host components, mutating the host node to add imperative APIs.
2020-06-26 14:51:45 -07:00
Nicolas Gallagher
0ffbf66b1a [change] Remove TabBarIOS and TimePickerAndroid exports
These modules have been removed from React Native
2020-06-26 14:51:45 -07:00
Nicolas Gallagher
a7da67cd09 Reorganize internal modules 2020-06-26 14:51:45 -07:00
Nicolas Gallagher
603adc46ab Alternative PanResponder API 2020-06-26 14:51:44 -07:00
Nicolas Gallagher
88f5dedffd [change] Add Pressable and replace Touchables
Port and rewrite "Pressability" from React Native as "PressResponder". This
integrates a press target with the responder system on web. It avoids
performing layout measurement during gestures by eschewing React Native's
iOS-like UX in favor of expected Web UX: a press target will look pressed until
the pointer is released, even if the pointer has moved outside the bounding
rect of the target.

The PressResponder is used to reimplement the existing Touchables. It's
expected that they will eventually be removed in favor of Pressable.

Fix #1583
Fix #1564
Fix #1534
Fix #1419
Fix #1219
Fix #1166
2020-06-26 14:51:43 -07:00
Nicolas Gallagher
7e724b279d Remove enzyme 2020-06-26 14:51:42 -07:00
Nicolas Gallagher
204c432f66 [change] Text and View onClick handling
Makes `onClick` part of the stable props API. In the future this will be used
to implement `onPress` in the Touchables/Pressables. Special handling of click
for keyboards is performed in `createElement`. At the moment, `Text` still
includes the `onPress` prop, which will only be called if `onClick` is not also
being used. In the future `Text` (in React Native) should remove the Touchable
props from its API.
2020-06-26 14:51:41 -07:00
Nicolas Gallagher
66751502a3 [change] Replace the ResponderEventPlugin
Replaces the ResponderEventPlugin with useResponderEvents hook.

Also removes the event "normalization" of mouse, touch, and click events.
These events are not part of the responder system and will no longer be
modified from what ReactDOM dispatches.

Fix #1589
Fix #1568
Fix #1571
Fix #829
Fix #693
2020-06-26 14:51:40 -07:00
Nicolas Gallagher
4146b16a68 Add PanResponder examples to docs 2020-06-05 11:53:48 -07:00
Nicolas Gallagher
fe013b30dc Add dom-event-testing-libary as a private package
This is copied from facebook/react with various fixes applied (which I'll push
upstream at a later date). Necessary for testing the Responder Event System
rewrite.
2020-06-05 11:53:47 -07:00
Nicolas Gallagher
fa6e269832 Add missing imports to docs mdx files 2020-06-02 10:57:38 -07:00
Nicolas Gallagher
ee1cb490d6 Fix optional value flow types 2020-06-02 10:57:37 -07:00
Nicolas Gallagher
f4e8b6b194 [change] modernize Image
Rewrite Image to use function components and hooks.

Fix #1322
2020-06-02 10:57:36 -07:00
Nicolas Gallagher
7e616f6d46 Fix props table for docs
Stop using the built-in Props table from Storybook (which wasn't working.)
2020-06-02 10:57:36 -07:00
Nicolas Gallagher
8952eccf86 [change] Explicitly forward props and introduce unstable_{ariaSet,dataSet}
Rather than filtering props, they are explicitly forwarded in each component.
This makes it easier to see exactly which props are being forwarded to host
components by each React Native component. Two new props - `unstable_ariaSet`
and `unstable_dataSet` - are introduced to avoid iterating over props to find
`aria` and `data` props.

The `accessibilityValue` prop is also implemented.
2020-06-02 10:57:35 -07:00
Nicolas Gallagher
654f65e3e0 [change] modernize TextInput
Rewrite TextInput to use function components and hooks.
Rewrite the unit tests to replace enzyme with testing-library.

Fix #1339
2020-06-02 10:55:51 -07:00
Nicolas Gallagher
d94a14dc8c [change] RefreshControl, StatusBar, YellowBox as function components 2020-06-02 10:55:50 -07:00
Nicolas Gallagher
8d37fde5ee [change] modernize Picker
Rewrite Picker to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:50 -07:00
Nicolas Gallagher
fdf53df301 [change] modernize CheckBox
Rewrite CheckBox to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:49 -07:00
Nicolas Gallagher
999c2ad122 [change] modernize ActivityIndicator
Rewrite ActivityIndicator to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:49 -07:00
Nicolas Gallagher
35236a3cc2 [change] modernize Text
Rewrite Text to use function components and hooks.
2020-06-02 10:55:48 -07:00
Nicolas Gallagher
2724ca0293 Add eslint-plugin-react-hooks 2020-06-02 10:55:48 -07:00
Nicolas Gallagher
fc443c5abd [change] modernize View
Rewrite View to use function components and hooks.

The 'usePlatformMethods' hook also fixes a bug in the class-based
implementation of 'setNativeProps' which was unable to correctly merge its
styles with those provided via the component API. In the future,
'setNativeProps' will be removed from React Native anyway.

See (3) in #1136 for more context.
2020-06-02 10:55:47 -07:00
Nicolas Gallagher
7d440c74f4 [change] modernize Switch
Rewrite Switch to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:47 -07:00
Nicolas Gallagher
ebc3882661 [change] modernize ScrollViewBase
Rewrite ScrollViewBase to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:46 -07:00
Nicolas Gallagher
b28d2a8214 [fix] SafeAreaView types 2020-06-02 10:55:46 -07:00
Nicolas Gallagher
94ecc46ece [change] modernize ProgressBar
Rewrite ProgressBar to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:45 -07:00
Nicolas Gallagher
5b40b9d6aa [change] modernize ImageBackground
Rewrite ImageBackground to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:45 -07:00
Nicolas Gallagher
840a2e91d4 [change] modernize Button
Rewrite Button to use function components.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:44 -07:00
Nicolas Gallagher
96d8649197 [change] modernize AppRegistry
Rewrite AppRegistry to use function components and hooks.
Rewrite the tests to replace enzyme with testing-library.
2020-06-02 10:55:44 -07:00
Nicolas Gallagher
a2cccaf528 [change] Add usePlatformMethods to implement instance methods
A hook equivalent for implementing "native methods" on refs to elements backed
by function components.
2020-06-02 10:55:43 -07:00
Nicolas Gallagher
51ac083d56 [change] Add useElementLayout hook to implement onLayout callback
A hook equivalent for implementing onLayout in function components.  Removes
the fallback to using window resize events. A ResizeObserver polyfill is now
requires to use the `onLayout` prop.
2020-06-02 10:55:43 -07:00
Nicolas Gallagher
9dbe17fa6a 0.12.3 2020-06-02 10:51:45 -07:00
Nicolas Gallagher
f4a481bb4f [fix] Allow 'lang' attribute to be forwarded to DOM nodes 2020-06-02 10:38:35 -07:00
Nicolas Gallagher
5287044f40 0.12.2 2020-02-24 14:08:31 -08:00