Граф коммитов

22504 Коммитов

Автор SHA1 Сообщение Дата
Joshua Gross ae264b995f Update 'viewPrev' as well as 'viewStart' when transitioning from one animation to another
Summary:
When reconstructing a second animation based on a conflict with a first, we want to ensure we set 'viewPrev' of the second animation properly.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407777

fbshipit-source-id: 8fcc72c4c5fadaab4287824a944ad21230f2f97d
2021-03-31 21:33:04 -07:00
Joshua Gross 9ea0020054 For certain types of conflicts we do *not* want to generate a final UPDATE mutation
Summary:
In general, when an animation is interrupted or completed, we want to forcibly "flush" an update that will make the StubViewTree/mounting layer consistent with the ShadowTree.

However, in cases where a conflict creates a second animation and stops the first, we simply updated the "viewPrev" of the second animation and smoothly transition to it.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407774

fbshipit-source-id: 928363867d8994c9d69c53154a07bda94f954afa
2021-03-31 21:33:04 -07:00
Joshua Gross 22c9b7d520 If a parent node is DELETEd or CREATEd, immediately end animation
Summary:
Detect conflicts not just when a node is updated, but when its parent is DELETEd or CREATEd.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407781

fbshipit-source-id: 719d9a8822bf691d9059073a30d8b5ccb50eece1
2021-03-31 21:33:04 -07:00
Joshua Gross 63c0be55d5 EZ: Make StubViewTree "Delete" logs consistent with other logs
Summary:
See title.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407771

fbshipit-source-id: 456cdeb65ab02d6e0ea61aa5e7cce288466e2cf5
2021-03-31 21:33:04 -07:00
Joshua Gross 4ae1a9bea8 Do not check consistency of updated Virtual views
Summary:
This impacts Android only. It's not high-impact to check the consistency of these views and they can become "inconsistent" easily in a way that is not interesting or useful to us,
since we handle "virtual" views differently on the platform.

The need for these hacks should go away in the future if/when we account for virtual views in the differ, and stop sending redundant instructions entirely.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407779

fbshipit-source-id: 01a7ea5106ed5d94b908de03a6a710cc6275018d
2021-03-31 21:33:04 -07:00
Joshua Gross f915ca99be EZ refactor
Summary:
pull out tag so it's easier to read

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407770

fbshipit-source-id: e7d2a3ce8e4ac55b6446cddc8c39e73a18fa7170
2021-03-31 21:33:04 -07:00
Joshua Gross 706a223dd2 Refactor LA: keyFrames have N "final items" to execute
Summary:
One of the struggles with the LA engine is to make sure that LA doesn't break the StubViewTree. In particular, we have strict requirements that the "oldShadowView" with every mutation matches exactly what is in the shadow tree, so it appears that there is a linear progression of ShadowNodes for every mutation instruction.

This is a struggle to do with the current setup, requires some wacky code, and doesn't work properly. Instead of spreading REMOVE/DELETE (especially) or INSERT/UPDATE instructions across multiple keyframes, we now allow keyframes to have multiple "final" instructions to execute,
which makes it much easier to keep state consistent.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27407769

fbshipit-source-id: 3a709503dc30be69efc345690cb1920eb9591e9a
2021-03-31 21:33:04 -07:00
Luna Wei bac2c2c801 Update FlowFixMes to use error codes in react-native-github
Summary:
Changelog:
[Internal] - Add error codes to existing FlowFixMe's

Reviewed By: kacieb

Differential Revision: D27445689

fbshipit-source-id: 2b19692e1cb822ab6785efcc5f93ee33e7dce1e5
2021-03-31 18:21:47 -07:00
Luna Wei 321de15803 Delete unused FlowFixMes in xplat/js/react-native-github
Summary:
Changelog:
[Internal] - Remove unused FlowFixMes

Reviewed By: kacieb

Differential Revision: D27445690

fbshipit-source-id: c1fbf4495ae020b30a458c2ef4870547fd5d5c6e
2021-03-31 18:21:47 -07:00
Bruno Castro c4e40b81c0 feat: add displayName to touchables (#29531)
Summary:
Since TouchableHighlight and TouchableOpacity are being exported using `forwardRef`, it's messing up jest's snapshots and some matchers.
This commit 4b935ae95f fixed this for components being mocked on [setup.js](https://github.com/facebook/react-native/blob/master/jest/setup.js). However, these Touchables aren't being mocked.

It resolves https://github.com/facebook/react-native/issues/27721

## Changelog

[General] [Added] - Add displayName to TouchableHighlight and TouchableOpacity

Pull Request resolved: https://github.com/facebook/react-native/pull/29531

Test Plan: Check the new snapshots.

Reviewed By: kacieb

Differential Revision: D27485269

Pulled By: yungsters

fbshipit-source-id: ba2082a4ae9f97ebe93ba92971d58c9195bdf26d
2021-03-31 17:36:02 -07:00
Peter Argany 679f38f1c5 Pass RCTEventDispatcher to RCTComponentData [6/n]
Summary:
Problem: `RCTComponentData` accesses event dispatcher via `_bridge.eventDispatcher` which won't work in bridgeless mode

Solution: Pass  `_eventDispatcher` through init

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27447532

fbshipit-source-id: 7e39b4f6a57d789df493590538248abb204036a3
2021-03-31 16:39:02 -07:00
Peter Argany 4efdf264d1 Introducing RCTWeakViewHolder [4/n]
Summary:
Problem: In paper, there is a handy API called `[uiManager viewForReactTag:]`. Fabric does not have this mapping. The Fabric interop layer still relies on this Paper mapping.

Solution: As a workaround, re-create this mapping in the Fabric interop layer. Therefore, whenever Fabric interop layer asks a paper view manager to create a view, store a weak reference to the view in a `NSMapTable`. NSMapTable allows us to customize the strong/weak relationship. I've added a comment explaining that `RCTWeakViewHolder` only needs to be used for this special circumstance.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27438899

fbshipit-source-id: 94663ef06479a8c863ce58b0f36d42109fa1c4f3
2021-03-31 16:39:02 -07:00
Peter Argany 10acccc86d Handle commands in RCTLegacyViewManagerInteropCoordinator [3/n]
Summary:
Problem: `RCTLegacyViewManagerInteropCoordinator.mm` handles view commands by looking up `RCTModuleData` from the bridge, and then dispatching that method. In bridgeless mode, `RCTModuleData` doesn't exist.

Solution: Instead of relying on `RCTModuleData` (which does a ton of things), manually create a `_moduleMethods` array to store the methods that view manager exposes. This manual creation code was copied from how `RCTModuleData` performs lookup.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27377257

fbshipit-source-id: c3e820808e6aca03bae6486d5510156b39462215
2021-03-31 16:39:02 -07:00
Peter Argany 491ca1d14e Create a bridgelessViewManager [2/n]
Summary:
Problem: In Paper rendering system, view managers are native modules that are created and retained by the bridge. Whenever rendering layer needs to create a view, it asks the bridge for the view manager. In bridgeless mode, these view managers are never created.

Solution: In bridgeless mode, let `RCTComponentData` create and retain a view manager. Having a 1:1 relationship of `RCTComponentData`:`ViewManager` is desirable, since their lifecycles should be similar. This implementation also maintains the lazy-instantiation behavior for bridgeless view managers.

Changelog: [Internal]

Reviewed By: RSNara

Differential Revision: D27375991

fbshipit-source-id: e76d966ba4b98972a49df1bc520b904fb2f4b3b5
2021-03-31 16:39:02 -07:00
Peter Argany 3f8d5083f7 Avoid crashing in Fabric/Paper interop without bridge [1/n]
Summary:
Fabric/Paper interop expects bridge to be contained in `contextContainer`, and crashes if it's not there.

This diff avoids a crash, and instead fails silently. Future diffs in stack will enable `RCTComponentData` and `RCTLegacyViewManagerInteropCoordinator` to function without the bridge.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D27374809

fbshipit-source-id: 2c9e03a1eaf5bcaa57887b203221111015cf4de5
2021-03-31 16:39:02 -07:00
Samuel Susla a038179b9b Add return value to JavaScript calls in UIManagerBinding
Summary:
Changelog: [internal]

Add support for a return value when calling JavaScript functions in UIManagerBinding.

Reviewed By: mdvacca

Differential Revision: D27470817

fbshipit-source-id: 38de92dd913af61d879f1cc5962d417f51da73b0
2021-03-31 14:32:02 -07:00
Sunny Luo b50b7e3a19 Update React.podspec to require cocoapods >= 1.10.1 (#31134)
Summary:
According to https://github.com/facebook/react-native/issues/30922#issuecomment-778700328
Cocoapods 1.10.1 is required to compile iOS deps (OpenSSL).

Fixes https://github.com/facebook/react-native/issues/30922#issuecomment-778700328

Changelog:
[iOS][Changed] - Update React.podspec to require cocoapods >= 1.10.1

Pull Request resolved: https://github.com/facebook/react-native/pull/31134

Reviewed By: fkgozali

Differential Revision: D27447225

Pulled By: hramos

fbshipit-source-id: 3429250597e3eff58272dc880dbc3e7c38dcb70e
2021-03-31 12:49:40 -07:00
Samuel Susla 1e690ac457 Mark subclasses of ShadowNode final when appropriate
Summary:
Changelog: [internal]

These ShadowNode subclasses should not be further subclassed. compiler can produce smaller and faster code.

Reviewed By: JoshuaGross

Differential Revision: D27463255

fbshipit-source-id: cb10cc61a3d80731476ac0c51af7f9a47e3f9ab7
2021-03-31 10:58:59 -07:00
Samuel Susla faec9cd4ce Prevent ShadowNodeFamily from being subclassed
Summary:
Changelog: [internal]

ShadowNodeFamily shouldn't be subclassed. `final` keyword prevents it.

Reviewed By: JoshuaGross

Differential Revision: D27463121

fbshipit-source-id: 0273225246a98acfe095c5d261a266efad51b838
2021-03-31 10:58:59 -07:00
Lulu Wu 10830f4db9 Remove redundant isBridgeless() checking
Summary:
3rd step of following 3 steps:

1, Rename hasActiveCatalystInstance() to hasActiveReactInstance() so it won't sounds like CatalystInstance-only. D27335055 (dfa8eb0558)
2, Implement hasActiveReactInstance() for Venice. D27343867
3, Remove previous mitigation. D27343952

Changelog:
[Category][Type] - Remove isBridgeless() mitigation

Reviewed By: mdvacca

Differential Revision: D27343952

fbshipit-source-id: 158175e58d0f4248623d369793e919e43e8ad972
2021-03-31 09:39:40 -07:00
Lulu Wu dfa8eb0558 Rename "hasActiveCatalystInstance" to "hasActiveReactInstance" for clarification
Summary:
Sometimes ```hasActiveCatalystInstance()``` is used to check if it's safe to access the CatalystInstance, which will still crash in Venice.

Previously we mitigate this by changing ```reactContext.hasActiveCatalystInstance()``` to ```reactContext.hasActiveCatalystInstance() || reactContext.isBridgeless()```.

To solve this for all and good the plan is:
1, Rename ```hasActiveCatalystInstance()``` to ```hasActiveReactInstance()``` so it won't sounds like CatalystInstance-only.
2, Implement hasActiveReactInstance() for Venice. D27343867
3, Remove previous mitigation. D27343952

This diff is the first step, by xbgs there are **58** non-generated callsites of  ```hasActiveCatalystInstance()``` in code base which are all renamed in this diff.

Changelog:
[Android][Changed] - Rename "hasActiveCatalystInstance" to "hasActiveReactInstance"

Reviewed By: mdvacca

Differential Revision: D27335055

fbshipit-source-id: 5b8ff5e09b79a492e910bb8f197e70fa1360bcef
2021-03-31 06:33:23 -07:00
Lucas Santos b86e52a9ec Add method to retrieve authorization status
Summary:
Changelog:
[iOS][Added] - Adds an ability to retrieve the notifications authorization status from JavaScript side.

Differential Revision: D27426952

fbshipit-source-id: 84a1eae1ff8c8f9f7601c7479745002c21178850
2021-03-30 16:06:39 -07:00
Aditya Sharat 24bfa463a7 Refactor YogaNode.Inputs freeze API
Summary:
`InternalNode` will eventually not have a pointer to its parent. This diff removes one of the usages of the `InternalNode#getParent()` API. `InternalNode` will also not host the `YogaNode` eventually; so this diff also removes one of the usages of the `InternalNode#getYogaNode()` api.

Now the `Inputs#freeze` api will pass the parent's `YogaNode` and the `YogaNode` of the node (this) being measured.

Changelog: [Internal] Passes The YogaNode and parent YogaNode in the Inputs.freeze API

Reviewed By: SidharthGuglani

Differential Revision: D27240229

fbshipit-source-id: efc4ec3249a963c3181111f9b989d8ed9e17feb4
2021-03-30 05:42:57 -07:00
Joshua Gross 72d45de21e Label LayoutAnimations enums with numbers for debugging
Summary:
Just makes it easier to log and inspect these values.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D27407778

fbshipit-source-id: 68e93d100b56bc9065f0ff1370260412d729312d
2021-03-29 20:29:36 -07:00
Joshua Gross 2aee39cdc1 StubViewTree: log more information before UPDATE assertion failure
Summary:
Log more diagnostics about this assertion failure.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D27407775

fbshipit-source-id: 7f00215b8b2c0ad7378c5671f3b503daf56b9fd2
2021-03-29 20:29:36 -07:00
Luna Wei d1f09f7390 Add Switch Test Component and more testIDs
Summary:
Changelog:
[Internal] - Add more testIDs to SwitchExample

Reviewed By: kacieb

Differential Revision: D27371058

fbshipit-source-id: d2d90923c2c07cd86fd9aa965339dadf43f8fb5f
2021-03-29 18:34:30 -07:00
Luna Wei 7248291d5d Simplify logic
Summary:
Changelog:
[Internal] - Simplify logic by not creating an unnecessary object

Reviewed By: kacieb

Differential Revision: D27371155

fbshipit-source-id: c34db151f57f9f6e46cc1984a5a9ef24f81adecd
2021-03-29 18:34:30 -07:00
Kacie Bawiec eacabe1398 Convert ScrollViewStickyHeader to functional component and gate the change
Summary:
Changelog:
[Internal][Added] - Use injected ScrollViewStickyHeader if set

Reviewed By: lunaleaps

Differential Revision: D26931404

fbshipit-source-id: 6f6f1b501b610a05999898be3e2ce08aeb4dab1b
2021-03-29 15:25:19 -07:00
Samuel Susla 3b8fbc336c Use default value instead of abort when parsing color
Summary:
changelog: [internal]

Fabric is missing implementation of PlatformColor APIs. If it is used, it causes a crash.

Until it is implemented, let's remove abort statement and continue with transparent color.

Reviewed By: mdvacca

Differential Revision: D27395917

fbshipit-source-id: 50d541c5cacc10a7652f7f1ddc97e086a4ba8f03
2021-03-29 10:25:21 -07:00
Samuel Susla 79090c4802 Fabric: Decoupling Telemetry aggregation classes into a separate module
Summary:
We need to do this to break a dependency cycle that would happen if we try to have `view` depend on `mounting` just to add some telemetry to `view`.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: mdvacca

Differential Revision: D26827446

fbshipit-source-id: 4c415ebf5be3a02c18c80ea8a4a77068cae0f0fe
2021-03-29 05:12:42 -07:00
simek 95f7c791c5 remove unused VR-only props (#31230)
Summary:
It looks like `ScrollView` still contains the remnant props for VR platform, which afaik has be discontinued a while ago (please correct me, if I'm wrong).

This PR removes `scrollBarThumbImage` prop marked as VR platform only prop from `ScrollView`.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[VR] [Removed] - remove VR platform specific `scrollBarThumbImage` prop from `ScrollView`

Pull Request resolved: https://github.com/facebook/react-native/pull/31230

Test Plan: CI

Reviewed By: javache

Differential Revision: D27367267

Pulled By: PeteTheHeat

fbshipit-source-id: b76fdb0e03c443aaf87308162bf75f8683220918
2021-03-29 03:32:09 -07:00
Paige Sun 9ebdf74708 Remove Unable to get TurboModule for DialogManagerAndroid warning for iOS
Summary:
The import of DialogManagerAndroid in [Alert.js](https://fburl.com/diffusion/n57e4l50) causes "Unable to get iOS TurboModule for DialogManagerAndroid" log.

Don't call ` TurboModuleRegistry.get` on DialogManagerAndroid when the Platform is iOS.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D27376204

fbshipit-source-id: 948da5c162100ffe196d5e0a54dc8b85659239ae
2021-03-26 23:48:28 -07:00
Paige Sun 3c4363d822 Clarify TurboModule cannot be found log
Reviewed By: JoshuaGross

Differential Revision: D27376177

fbshipit-source-id: 3e1a91ca7c11963874c029237bc2f45839fbbf6d
2021-03-26 21:11:47 -07:00
Quentin Valmori 452240bafa fix: Let's be more specific about "not implemented" (#31237)
Summary:
After installed a third party library I just got "Error: not implemented" without any other informations in the stack trace. Adding a more specific sentence within the error's message can be useful to understand what is going on.

## Changelog

[General] [CHANGED] - Added context to URL's error messages when the feature is not implemented

Pull Request resolved: https://github.com/facebook/react-native/pull/31237

Differential Revision: D27367109

Pulled By: PeteTheHeat

fbshipit-source-id: 87e8b3beef661e028d89098729bd242a57bb9a47
2021-03-26 16:00:33 -07:00
Aditya Sharat e27ca7f24e Create YogaProps Interface
Summary:
Create YogaProps Interface; this interface represents the inputs to YogaNode for layout calculation.

Changelog: [Internal] Create YogaProps Interface; this interface represents the inputs to YogaNode for layout calculation.

Reviewed By: mihaelao

Differential Revision: D27229274

fbshipit-source-id: 5205caf2384661369d7a2d7e7f3e49ff831a1c92
2021-03-26 10:05:46 -07:00
David Vacca 386a72464f Use DoNotStripAny in ComponentNameResolver classes
Summary:
This diff adds the DoNotStripAny annotation for the ComponentNameResolver classes

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D27336874

fbshipit-source-id: d3bc404b12cc94fe8b4df61ff851e4fd9bcb5141
2021-03-26 00:09:40 -07:00
Joshua Gross e1b6cd3f75 ProGuard: Do not strip anything from FabricUIManager
Summary:
Instead of annotating individual methods with DoNotStrip, we actually want to ensure that nothing in this class gets stripped out.

This also upgrades the yoga/proguard-annotations package for Gradle builds.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D27335181

fbshipit-source-id: 5b696c26faf4d1b32a3fd885e42a996aff23f0be
2021-03-25 17:40:34 -07:00
Paige Sun bfe3cd01bc Log info when TurboModule cannot be found
Summary:
There are a surprisingly large number of nil modules in both bridge and bridgeless. So far, features may silently fail if a module is nil.

We can't log with with console.error or console.warn because many tests will break even though modules aren't used in the test.

Differential Revision: D27285601

fbshipit-source-id: 1467100f2a4c48e97de5dd6e846c26981c14f099
2021-03-25 16:08:38 -07:00
Luna Wei fda1acec51 Refactor renderItem logic and gate changes
Summary:
# Changelog:
[Internal][Added] - Use injected VirtualizedSectionList if set

Reviewed By: kacieb

Differential Revision: D27004445

fbshipit-source-id: 9c07ee80c893817c1fe3171a4ee271f5839568c9
2021-03-25 13:00:28 -07:00
Luna Wei 5475f29554 Reland stack for removing defaultProps from VL and remove breaking FlowFixMe
Summary:
Changelog:
[Internal][Changed] - Remove keyExtractor from defaultProps as part of larger effort to remove defaultProps from VirtualizedList

[General][Changed] - Remove data as a prop for VirtualizedSectionList. In the reactnative.dev docs it mentions that sections is the equivalent for *SectionList: https://reactnative.dev/docs/sectionlist#sections

[General][Changed] - Change export type of VirtualizedSectionList and wrap component updates in act in test.

[Internal] - Remove FlowFixMe from VirtualizedSectionList

Reviewed By: kacieb

Differential Revision: D27271493

fbshipit-source-id: f83bdcce9c71c140c8a8fb6f0ecd9bb520fcb85b
2021-03-25 13:00:28 -07:00
David Vacca 07d527f9c5 Use unstable_hasStaticViewConfig to detect if a component is registered in the native app
Summary:
This diff is a revert of the stack D27276533. the native fix will be included as part of another diff

changelog: [internal] internal

Reviewed By: JoshuaGross, ShikaSD

Differential Revision: D27332513

fbshipit-source-id: 203051ea8fec3f508d79c329c9b61399fbbc3d1b
2021-03-25 12:45:27 -07:00
Kacie Bawiec d754bdefc6 Fix ScrollViewStickyHeader to push up header above it
Summary:
When there are multiple sticky headers, ScrollViewStickyHeader should push up the header above it when it gets to the top.

This behavior was accidentally changed in D21948830 (fa5d3fb6b8) when this component was fixed to work in Fabric.

This diff added a new variable `_shouldRecreateTranslateY`, which determines whether the `translateY` value should be recreated on render. `_shouldRecreateTranslateY` was not being set to true during `setNextHeaderY`, so the next header's Y value was never accounted for at render.

Changelog:
[General][Fixed] Fix ScrollViewStickyHeader to push up header above it

Reviewed By: lunaleaps

Differential Revision: D27277829

fbshipit-source-id: 83c9aacd454be178649bf8d060d1a5c750f4060f
2021-03-25 11:32:42 -07:00
Ivan Kobzarev 24f9f75bf6 fbjni version to 0.2.2 (#31191)
Summary:
android fbjni dependency bump to 0.2.2

The motivation is to address https://github.com/pytorch/pytorch/issues/34682 that pytorch_android and react-native use different versions of fbjni with the same name libfbjni.so

In case of loading 0.0.2 version it is missing functions in binary

Fbjni is not changing much, that's why this will solve that problem for a long time (Until fbjni changed and versions will not be aligned)

## Changelog

[Android][Added] fbjni version bump to 0.0.3

Pull Request resolved: https://github.com/facebook/react-native/pull/31191

Test Plan: Automated (relying on the test suite) and manual testing.

Reviewed By: passy

Differential Revision: D27330370

Pulled By: IvanKobzarev

fbshipit-source-id: 2ea07d80d23f8dbc80e946a8818c1ecb8eb746e8
2021-03-25 11:28:00 -07:00
Sam Goldman 532f5f3ac0 Clean up redundant experimental flowconfig options
Summary:
Both new_signatures and abstract_locations are now enabled by default, so we don't need the configuration. Both options are going to be removed soon as well.

Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D27319298

fbshipit-source-id: 30e6dcd2d30a45f630388998957c8db39895a8f7
2021-03-25 09:31:29 -07:00
David Vacca 3bbb0a43c2 Remove exceptions from MapBufferBuilder class
Summary:
In Fabric we don't throw exception. This diff removes exception from MapBufferBuilder class

changelog: [internal] internal

Reviewed By: JoshuaGross, sammy-SC

Differential Revision: D27303493

fbshipit-source-id: 8303bb4be786e2ea175b6741ec536c0f54615001
2021-03-24 17:20:11 -07:00
David Vacca 0b5fbf367d Remove exceptions from MapBuffer class
Summary:
In Fabric we don't throw exception. This diff removes exception from MapBuffer class

changelog: [internal] internal

Reviewed By: JoshuaGross, sammy-SC

Differential Revision: D27303496

fbshipit-source-id: 3f8c3bd2b41121672ef05153459b20cdc2efcda3
2021-03-24 17:20:11 -07:00
David Vacca 7704f651a0 change class variable syntax in MapBufferBuilder class
Summary:
This diff changes the syntax of class variables in MapBufferBuilder class to make it consistent with standards

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D27303495

fbshipit-source-id: b62067a07c5b2df1ae79b0134343d30ec819a55f
2021-03-24 17:20:11 -07:00
David Vacca 0599de5768 change class variable syntax in MapBuffer class
Summary:
This diff changes the syntax of class variables in MapBuffer class to make it consistent with standards

changelog: [internal] internal

Reviewed By: JoshuaGross, sammy-SC

Differential Revision: D27303497

fbshipit-source-id: 7581ce248559726c301ae96312fcb597a061ad5f
2021-03-24 17:20:11 -07:00
Andrei Shikov 35b575fefd Refactor mount logic into MountItemDispatcher
Summary:
Changelog: [Internal]

FabricUIManager contains a lot of logic related to mounting items and manipulating dispatch queues, which can be safely extracted outside. Apart from decreased logical complexity, this change enables easier modification of the queuing behavior later in this stack.

Majority of the changes is caused by moving existing logic to a different class, no change in behavior expected.

Reviewed By: JoshuaGross

Differential Revision: D27271116

fbshipit-source-id: 86fe45b19bb839f96fde8ba607f72006f6401cc7
2021-03-24 13:55:46 -07:00
Valentin Shergin 336876509c Introducing Timeline: A time-travel debugging tool (cross-platform part)
Summary:
This is a core part of the Timeline feature (aka Time Travel Debugger). With these new primitives, any external library can initiate "saving" all the previous interface changes (commits) and unwind to any previous one (in order to introspect and validate visual side-effects).

The next diff in the stack will implement UI for this feature integrated into Debug menu on iOS.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC

Differential Revision: D25926660

fbshipit-source-id: 2e5f6892351d3053db8f64c1cf6ff445b0867ad7
2021-03-24 11:30:24 -07:00