Skip to content

PCR-916 - server side rendering#7

Open
NickBurkhartBB wants to merge 154 commits intobrandingbrand:lastGoodfrom
NickBurkhartBB:server_side
Open

PCR-916 - server side rendering#7
NickBurkhartBB wants to merge 154 commits intobrandingbrand:lastGoodfrom
NickBurkhartBB:server_side

Conversation

@NickBurkhartBB
Copy link

Ticket: https://jira.brandingbrand.com/browse/PCR-916
@brandingbrand/product

Description

This should probably be in its own branch and not in lastGood, but I could not create a new branch in this repo, so you can make a new branch based on lastGood then modify base fork of this PR

Test

necolas and others added 30 commits December 1, 2017 17:52
'onLoad' should not be called when a component updates, if the 'uri' is
unchanged.

Fixes a regression introduced by
92952ee
* Fix 'addEventListener' handler registration.
* Fix event object provided to handlers.
* Fix event object type - always include 'type' and 'effectiveType'.
* Fix unit test semantics.
* Fix documented NetInfo types.

Close necolas#724
Align with recent changes to the React Native API.
Replaces the 'animated' package with the latest implementation from
React Native. Requires a few imports to be replaced.

Close necolas#716
Fix necolas#714
Fix necolas#688
Also fixes importing these APIs from 'react-native' when used with the
Babel plugin.
Allows AppRegistry to hydrate server-side rendered apps.

Fix necolas#733
The object returned by 'ReactDOM.findDOMNode' when rendered by
'react-test-renderer' doesn't match the DOM API for an element. Only
attempt to bind the listener if 'addEventListener' is present on the
object.

Fix necolas#720
Improve API compatibility with React Native by exporting 'react-art' as
'ART'.

Fix necolas#602
* Update all packages.
* Remove 'react-native-stylesheet'; since React 16 it is equivalent in
  performance to using the full 'react-native-web' View implementation.
* Remove 'styled-components/primitives'; it's as slow as
  'styled-components'.
* Record latest benchmark results and hardware.
Rely on web's native smooth scrolling mechanism when implemented in the
browser: https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior

Fix necolas#593
necolas and others added 30 commits February 12, 2018 10:08
Exclude middle, wheel, and right click mouse events from the responder
system. This fixes the Touchables incorrectly triggering 'onPress' in
response to these events.

Filter mousemove events in the 'extractEvents' methods, and check for
active touches rather than the length of the touch bank. This fixes the
PanResponder not functioning after the first touch in Firefox.

Fix necolas#719
Fix necolas#729
Close necolas#804
Account for scroll offsets when calculating measurements.

Fix necolas#702
Fix necolas#805
Close necolas#806
Fix a regression introduced by "ResponderEvent event filtering"
9ee89bc. Touchable press events were
firing twice after the event normalization was moved up into
'extractEvents'. The reason is:

1) events were previously not normalized throughout the responder system
2) once they were normalized, the fix introduced by a535c55 stopped working
3) because normalized nativeEvent did not include event data like 'cancelable'.

This patch adds more of the original nativeEvent fields to the
normalized event, so that React's synthetic event can return the correct
information for 'bubbles', 'cancelable', 'isDefaultPrevented()', etc.
Prevent the responder system recording 'mouseup' events if there is no
active 'touch'.

Fix necolas#816
Updates the 'setValueForStyle' implementation to support style values
that contain "!important". This allows the 'flex{Basis,Grow,Shrink}'
values created by the style resolver to be applied. They currently use
the important priority as a work-around for browser-inconsistencies in
the 'flex' shorthand.

Upstream fix: facebook/react#12181

Ref necolas#798
Close necolas#813
Jest recommends using 'runInBand' for Travis CI. It runs all tests
serially in the current process, rather than creating a worker pool of
child processes that run tests.
Add support for new style properties and values that automatically
account for the writing direction (as introduced in React Native
0.51.0). The start/end variants are automatically resolved to match the
global writing direction, as defined by I18nManager.isRTL. Start/End
take precedence over Left/Right.

Adds support for the following properties:

* `borderTop{End,Start}Radius`
* `borderBottom{End,Start}Radius`
* `border{End,Start}Color`
* `border{End,Start}Style`
* `border{End,Start}Width`
* `end`
* `margin{End,Start}`
* `padding{End,Start}`
* `start`

And values:

* `clear: "end" | "start"`
* `float: "end" | "start"`
* `textAlign: "end" | "start"`
I18nManager supports `doLeftAndRightSwapInRTL` and
`swapLeftAndRightInRTL` to query and control the BiDi-flipping of
left/right properties and values. For example, you may choose to use
`end`/`start` for positioning that flips with writing direction, and
then disable `left`/`right` swapping in RTL so that `left` will always
be `left`.

The StyleSheet resolver cache must also account for the third "direction"
variant: RTL with no swapping of left/right.
Now possible to license under MIT following the change to React Native's
license.

facebook/react-native@26684cf

Fix necolas#828
React Native for Web may use '!important' as part of the internal
resolving of styles. But user styles should never be allowed to include
'!important' in the value. Print a warning to the console when they do.
The previous fix to support inline SVG data in utf-8 format broke images
that were rendering base64 SVGs.
Touch events can produce trailing mouse events, which cause unwanted
events to fire in the responder event system.  This issue is avoided in
`Touchable` by cancelling the event in the responder release callback.
To fix the issue in other areas, like the PaneResponder, this hack is
moved into `createElement` and applied to event `onResponderRelease`
callback.

Fix necolas#802
Events are now normalized within the responder system, so those handlers
don't need to be listed anymore. Recently added events (blur,
contextmenu, focus) are now also normalized.
Don't rewrite import paths for non-existent modules or types. They will
attempt to be imported from the package's main export. This change
currently requires a module map to be generated for the babel-plugin to
use. The map is automatically regenerated for any commit that alters the
entry file of react-native-web.

Fix necolas#822
Match React Native (and web) expected defaults.
When rendered on the server, images now include the 'src' and will be
downloaded by the browser rather than waiting for the client-side JS to
initiate image loading.

Fix necolas#543
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.