react-native-macos/React/Modules
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
..
RCTAccessibilityManager.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTAccessibilityManager.m The New <Text> on iOS 2018-01-24 00:03:01 -08:00
RCTAlertManager.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTAlertManager.m Add one more parameter(keyboardType) to AlertIOS.promot(). 2017-01-19 14:43:37 -08:00
RCTAppState.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTAppState.m Access AppState constants on main thread 2017-09-13 18:15:39 -07:00
RCTAsyncLocalStorage.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTAsyncLocalStorage.m always pass key parameter to RCTReadFile 2017-09-28 09:38:44 -07:00
RCTClipboard.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTClipboard.m remove unused includes in fbobjc/Libraries 2017-02-19 18:33:49 -08:00
RCTDevSettings.h Add inspector attach to RN Dev Menu (iOS) 2017-12-05 06:31:15 -08:00
RCTDevSettings.mm improve detection of inspectable JS contexts 2017-12-18 13:32:36 -08:00
RCTDeviceInfo.h Introduce `DeviceInfo` as a new native module 2017-03-17 17:01:57 -07:00
RCTDeviceInfo.m Make RCTUIManager and RCTDeviceInfo unsubscribe from NSNotificationCenter on 2017-10-10 05:10:05 -07:00
RCTEventEmitter.h Fix - argument type in RCTEventEmitter 2017-12-13 08:30:39 -08:00
RCTEventEmitter.m Fix a crash when keyboard is visible and bridge reload happens 2017-12-14 17:51:59 -08:00
RCTExceptionsManager.h Cleanup initialization of native modules in FBReactModule 2017-05-26 04:17:19 -07:00
RCTExceptionsManager.m Cleanup initialization of native modules in FBReactModule 2017-05-26 04:17:19 -07:00
RCTI18nManager.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTI18nManager.m Rename I18nManager Left/Right swap methods 2017-10-24 20:45:59 -07:00
RCTI18nUtil.h Rename I18nManager Left/Right swap methods 2017-10-24 20:45:59 -07:00
RCTI18nUtil.m Rename I18nManager Left/Right swap methods 2017-10-24 20:45:59 -07:00
RCTJSCSamplingProfiler.h Rename JSCSamplingProfiler to RCTJSCSamplingProfiler 2017-04-18 13:22:01 -07:00
RCTJSCSamplingProfiler.m Rename JSCSamplingProfiler to RCTJSCSamplingProfiler 2017-04-18 13:22:01 -07:00
RCTKeyboardObserver.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTKeyboardObserver.m Fix a crash when keyboard is visible and bridge reload happens 2017-12-14 17:51:59 -08:00
RCTLayoutAnimation.h RCTAnimation & RCTLayoutAnimation were decoupled from RCTUIManager 2017-07-03 16:15:50 -07:00
RCTLayoutAnimation.m Fix format warnings for clang 5.0 2017-09-25 10:30:53 -07:00
RCTLayoutAnimationGroup.h RCTAnimation & RCTLayoutAnimation were decoupled from RCTUIManager 2017-07-03 16:15:50 -07:00
RCTLayoutAnimationGroup.m RCTAnimation & RCTLayoutAnimation were decoupled from RCTUIManager 2017-07-03 16:15:50 -07:00
RCTRedBox.h Redo error handling on iOS 2017-10-05 13:31:55 -07:00
RCTRedBox.m Add extra data view to RN RedBox 2017-12-14 10:50:24 -08:00
RCTRedBoxExtraDataViewController.h Add extra data view to RN RedBox 2017-12-14 10:50:24 -08:00
RCTRedBoxExtraDataViewController.m Fix ReactLegacy and delete RCTViewControllerProtocol 2017-12-20 15:20:00 -08:00
RCTSourceCode.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTSourceCode.m remove embeddedBundleURL 2017-12-12 13:11:14 -08:00
RCTStatusBarManager.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTStatusBarManager.m Replacing all instances of [UIApplication sharedApplication] wi… 2017-04-01 03:34:41 -07:00
RCTTVNavigationEventEmitter.h Apple TV support 4: support for input (tvOS focus engine) 2016-12-19 06:28:40 -08:00
RCTTVNavigationEventEmitter.m Implement requiresMainQueueSetup in RCTTVNavigationEventEmitter 2017-11-22 00:39:33 -08:00
RCTTiming.h Move all header imports to "<React/..>" 2016-11-23 07:58:39 -08:00
RCTTiming.m Update native references to JSTimers 2017-06-22 09:52:33 -07:00
RCTUIManager.h Demolishing of background color propagation infra 2017-12-19 09:11:49 -08:00
RCTUIManager.m The New <Text> on iOS 2018-01-24 00:03:01 -08:00
RCTUIManagerObserverCoordinator.h -[RCTUIManagerObserver uiManagerDidPerformMounting] 2017-12-11 17:10:48 -08:00
RCTUIManagerObserverCoordinator.mm -[RCTUIManagerObserver uiManagerDidPerformMounting] 2017-12-11 17:10:48 -08:00
RCTUIManagerUtils.h RCTAllocatedRootViewTag was moved to RCTUIManagerUtils 2017-11-07 16:16:56 -08:00
RCTUIManagerUtils.m RCTAllocatedRootViewTag was moved to RCTUIManagerUtils 2017-11-07 16:16:56 -08:00