react-native-macos/React
Valentin Shergin 2716f53220 The New <Text> on iOS
Summary:
This is a complete rewrite of RCTText, the part of React Native which manages Text and TextInput components.

Key points:

* It's understandable now. It follows a simple architectural pattern, and it's easy to debug and iterate. Text flow layout is a first-class citizen in React Native layout system now, not just a wired special case. It also brings entirely new possibilities such as nested interleaving <Text> and <View> components.
* All <Text>-specific APIs were removed from UIManager and co (it's about ~16 public methods which were used exclusively only by <Text>).
* It relies on new Yoga measurement/cloning API and on-dirty handler. So, it removes built-in dirty propagation subsystem from RN completely.
* It caches string fragments properly and granularly on a per-node basis which makes updating text-containing components more performant.
* It does not instantiate UIView for virtual components which reduces memory utilization.
* It drastically improves <TextInput> capabilities (e.g. rich text inside single line <TextInput> is now supported).

Screenshots:
https://cl.ly/2j3r1V0L0324
https://cl.ly/3N2V3C3d3q3R

Reviewed By: mmmulani

Differential Revision: D6617326

fbshipit-source-id: 35d4d81b35c9870e9557d0211c0e934e6072a41e
2018-01-24 00:03:01 -08:00
..
Base Tweaking -[RCTSurface synchronouslyWaitForStage:] 2018-01-16 12:32:13 -08:00
CxxBridge Check for nullptr when accessing isInspectable method 2018-01-23 10:13:36 -08:00
CxxModule Make RCTNativeModule::invokeInner explicitely return folly::none in case of error 2017-11-17 03:17:20 -08:00
CxxUtils More efficient dynamic->NSString conversion. 2017-07-26 18:31:12 -07:00
DevSupport improve detection of inspectable JS contexts 2017-12-18 13:32:36 -08:00
Executors Add more information to `__fbBatchedBridge is undefined` error 2017-07-26 11:21:59 -07:00
Inspector avoid redbox in handleWrappedEvent 2017-12-19 10:30:52 -08:00
Modules The New <Text> on iOS 2018-01-24 00:03:01 -08:00
Profiler Bunch of utility funcs were moved to RCTUIManagerUtils 2017-09-26 14:08:28 -07:00
React.xcodeproj Missing moving pieces of RCTSurfaceHostingView 2018-01-11 18:57:31 -08:00
ReactLegacy.xcodeproj Fix ReactLegacy and delete RCTViewControllerProtocol 2017-12-20 15:20:00 -08:00
Views The New <Text> on iOS 2018-01-24 00:03:01 -08:00
third-party.xcconfig More attempts to fix Travis CI runs 2017-05-10 04:32:54 -07:00