react-native/Libraries
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
..
ART Fixed black ARTSurfaceView 2017-12-19 19:46:06 -08:00
ActionSheetIOS Flow Type ActionSheetIOS 2017-12-13 16:19:21 -08:00
Alert Migrate additional docs to the new format 2017-11-20 13:16:12 -08:00
Animated make AnimatedValueXY constructor input value immutable 2018-01-18 10:46:47 -08:00
AppState Migrate additional docs to the new format 2017-11-20 13:16:12 -08:00
BatchedBridge Typos in comments and log messages 2018-01-12 22:18:45 -08:00
Blob Upgrade to 1.9.1 2017-12-06 17:34:26 -08:00
BugReporting Add extra data view to RN RedBox 2017-12-14 10:50:24 -08:00
CameraRoll iOS: Fix Crash when CameraRoll is getting assets from iCloud and no filename is provided. #13671 2018-01-12 00:16:07 -08:00
Components Backed out changeset 409acf8d3356 2018-01-23 19:26:03 -08:00
Core Adding JS hierarchy information when a StackOverflowException is thrown in Dev mode 2018-01-19 13:02:41 -08:00
EventEmitter RN: Improve NativeEventEmitter Flow Types 2017-10-13 08:04:17 -07:00
Experimental Typos in comments and log messages 2018-01-12 22:18:45 -08:00
Geolocation re #17486 - set _locationManager if auth skipped 2018-01-12 19:00:36 -08:00
Image Removed unused core from Image.android.js 2018-01-15 15:34:58 -08:00
Inspector Fixing eslint-comments warnings 2018-01-08 17:04:29 -08:00
Interaction @allow-large-files [Flow] Upgrade xplat/js to flow v0.63 2018-01-08 12:49:53 -08:00
JSInspector Add Network agent 2016-11-02 12:29:15 -07:00
LayoutAnimation @allow-large-files Flow v0.54.0 2017-09-06 03:33:43 -07:00
Linking fix flow warning and typo 2017-09-08 14:46:14 -07:00
LinkingIOS Standardize project indentation settings on 2 spaces 2017-07-31 05:20:03 -07:00
Lists Typos in comments and log messages 2018-01-12 22:18:45 -08:00
Modal Add onDismiss to Modal.js 2017-09-21 15:01:52 -07:00
NativeAnimation Typos in comments and log messages 2018-01-12 22:18:45 -08:00
Network Fixing eslint-comments warnings 2018-01-08 17:04:29 -08:00
Performance Add flow typing to QuickPerformanceLogger 2018-01-22 05:30:54 -08:00
PermissionsAndroid Update documentation for PermissionsAndroid 2017-08-16 15:01:51 -07:00
PushNotificationIOS Add support for "thread-id" in PushNotificationIOS 2018-01-10 17:47:28 -08:00
RCTTest RNTester: Relax Bridge Release Check 2018-01-05 15:05:31 -08:00
ReactNative Support for inherited events in view managers 2018-01-11 19:04:14 -08:00
Renderer Temporarily patched Map/Set non-extensible check into RN dev renderer 2017-12-05 12:27:12 -08:00
Sample Standardize project indentation settings on 2 spaces 2017-07-31 05:20:03 -07:00
Settings Fix infinite recursion in RCTSettingsManager init 2017-08-09 09:39:40 -07:00
Share Flow 0.59 xplat/js deploy 2017-11-10 21:15:48 -08:00
Storage Migrate additional docs to the new format 2017-11-20 13:16:12 -08:00
StyleSheet tighten EdgeInsetsPropType flow type 2018-01-21 23:30:32 -08:00
SurfaceBackedComponent RCTSurface: Couple helper functions for Stage 2017-12-03 20:16:35 -08:00
SurfaceHostingComponent Add explicit componentControllerClass to CKComponent 2018-01-10 02:48:09 -08:00
Text The New <Text> on iOS 2018-01-24 00:03:01 -08:00
Types RN: Create SyntheticEvent and ScrollEvent Types 2018-01-14 10:46:20 -08:00
Utilities Make the React Native HMR client extend from the generic metro HMR client 2018-01-22 10:20:19 -08:00
Vibration Run eslint --fix 2017-10-09 17:46:44 -07:00
WebSocket adds --port option to `react-native run-ios` as well as patches port … 2018-01-04 20:11:10 -08:00
Wrapper Yoga float vs. CoreGraphics float in RCTWrapper 2018-01-08 14:48:55 -08:00
fishhook Merge fishhook.xcodeproj in RCTWebSocket 2017-08-09 07:48:09 -07:00
polyfills Typos in comments and log messages 2018-01-12 22:18:45 -08:00
react-native Switch to `declare module.exports` syntax 2017-12-14 16:31:14 -08:00
vendor Typos in comments and log messages 2018-01-12 22:18:45 -08:00
.eslintrc Disallow trailing commas in react-native-github 2017-08-17 16:20:04 -07:00
Promise.js @allow-large-files Flow v0.54.0 2017-09-06 03:33:43 -07:00
promiseRejectionIsError.js @allow-large-files Flow v0.54.0 2017-09-06 03:33:43 -07:00