Skip to content

Commit e55da68

Browse files
paradowstackmeta-codesync[bot]
authored andcommitted
Add new hook shadowTreeDidCommit (#57721)
Summary: > Stack 1/3 — parent: `main`. Followed by `LayoutEventEmitter` → `ResizeObserver`. `ShadowTree` already computes the set of nodes whose layout changed on every commit (`affectedLayoutableNodes`), but today it's only consumed internally by `ShadowTree::emitLayoutEvents`. This adds a `shadowTreeDidCommit(shadowTree, rootShadowNode, affectedLayoutableNodes)` method to `ShadowTreeDelegate` and `UIManagerCommitHook` so other systems can react to layout changes after a commit. `ShadowTree` calls it once the new revision is installed, and `UIManager` forwards it to the registered commit hooks. Both declarations have no-op defaults, so nothing observes the hook yet — this is inert on its own. It's the shared signal the next two PRs build on (extracting `onLayout` emission, and `ResizeObserver`), so neither has to re-derive which nodes changed layout. ## Changelog: [INTERNAL] [ADDED] - Add `shadowTreeDidCommit` commit hook exposing the nodes with layout changes after each commit Pull Request resolved: #57721 Test Plan: No behavior change: the hook has no-op defaults and no consumer in this PR. Existing Fabric commit/mounting tests pass. Reviewed By: mdvacca Differential Revision: D114044722 Pulled By: javache fbshipit-source-id: 2a556006f7b66a967aea5559cf10273c61aabcbe
1 parent 5306e92 commit e55da68

14 files changed

Lines changed: 75 additions & 0 deletions

packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,9 @@ CommitStatus ShadowTree::tryCommit(
463463
}
464464
}
465465

466+
delegate_.shadowTreeDidCommit(
467+
*this, newRevision.rootShadowNode, affectedLayoutableNodes);
468+
466469
emitLayoutEvents(affectedLayoutableNodes);
467470

468471
if (isReactBranch) {

packages/react-native/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace facebook::react {
1313

14+
class LayoutableShadowNode;
1415
class ShadowTree;
1516
struct ShadowTreeCommitOptions;
1617

@@ -49,6 +50,17 @@ class ShadowTreeDelegate {
4950
*/
5051
virtual void shadowTreeDidPromoteReactRevision(const ShadowTree &shadowTree) const = 0;
5152

53+
/*
54+
* Called right after a Shadow Tree commits a new tree, reporting the nodes
55+
* whose layout changed in this commit.
56+
*/
57+
virtual void shadowTreeDidCommit(
58+
const ShadowTree & /*shadowTree*/,
59+
const RootShadowNode::Shared & /*rootShadowNode*/,
60+
const std::vector<const LayoutableShadowNode *> & /*affectedLayoutableNodes*/) const
61+
{
62+
}
63+
5264
virtual ~ShadowTreeDelegate() noexcept = default;
5365
};
5466

packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,21 @@ void UIManager::shadowTreeDidPromoteReactRevision(
670670
}
671671
}
672672

673+
void UIManager::shadowTreeDidCommit(
674+
const ShadowTree& shadowTree,
675+
const RootShadowNode::Shared& rootShadowNode,
676+
const std::vector<const LayoutableShadowNode*>& affectedLayoutableNodes)
677+
const noexcept {
678+
TraceSection s("UIManager::shadowTreeDidCommit");
679+
680+
std::shared_lock lock(commitHookMutex_);
681+
682+
for (auto* commitHook : commitHooks_) {
683+
commitHook->shadowTreeDidCommit(
684+
shadowTree, rootShadowNode, affectedLayoutableNodes);
685+
}
686+
}
687+
673688
void UIManager::reportMount(SurfaceId surfaceId) const {
674689
TraceSection s("UIManager::reportMount");
675690

packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ class UIManager final : public ShadowTreeDelegate {
146146

147147
void shadowTreeDidPromoteReactRevision(const ShadowTree &shadowTree) const override;
148148

149+
void shadowTreeDidCommit(
150+
const ShadowTree &shadowTree,
151+
const RootShadowNode::Shared &rootShadowNode,
152+
const std::vector<const LayoutableShadowNode *> &affectedLayoutableNodes) const noexcept override;
153+
149154
std::shared_ptr<ShadowNode> createNode(
150155
Tag tag,
151156
const std::string &componentName,

packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace facebook::react {
1313

14+
class LayoutableShadowNode;
1415
class ShadowTree;
1516
struct ShadowTreeCommitOptions;
1617
class UIManager;
@@ -54,6 +55,18 @@ class UIManagerCommitHook {
5455
return newRootShadowNode;
5556
}
5657

58+
/*
59+
* Called right after a `ShadowTree` commits a new tree.
60+
* The semantic of the method corresponds to a method of the same name
61+
* from `ShadowTreeDelegate`.
62+
*/
63+
virtual void shadowTreeDidCommit(
64+
const ShadowTree & /*shadowTree*/,
65+
const RootShadowNode::Shared & /*rootShadowNode*/,
66+
const std::vector<const LayoutableShadowNode *> & /*affectedLayoutableNodes*/) noexcept
67+
{
68+
}
69+
5770
virtual ~UIManagerCommitHook() noexcept = default;
5871
};
5972

scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4752,6 +4752,7 @@ class facebook::react::ShadowTree {
47524752

47534753
class facebook::react::ShadowTreeDelegate {
47544754
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTreeCommitOptions& commitOptions) const = 0;
4755+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) const;
47554756
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const = 0;
47564757
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const = 0;
47574758
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const = 0;
@@ -5261,6 +5262,7 @@ class facebook::react::UIManager : public facebook::react::ShadowTreeDelegate {
52615262
public std::shared_ptr<facebook::react::ShadowNode> cloneNode(const facebook::react::ShadowNode& shadowNode, const std::shared_ptr<const std::vector<std::shared_ptr<const facebook::react::ShadowNode>>>& children, facebook::react::RawProps rawProps) const;
52625263
public std::shared_ptr<facebook::react::ShadowNode> createNode(facebook::react::Tag tag, const std::string& componentName, facebook::react::SurfaceId surfaceId, facebook::react::RawProps props, facebook::react::InstanceHandle::Shared instanceHandle) const;
52635264
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTree::CommitOptions& commitOptions) const override;
5265+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& rootShadowNode, const std::vector<const facebook::react::LayoutableShadowNode*>& affectedLayoutableNodes) const noexcept override;
52645266
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const override;
52655267
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const override;
52665268
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const override;
@@ -5332,6 +5334,7 @@ class facebook::react::UIManagerCommitHook {
53325334
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const facebook::react::RootShadowNode::Unshared& newRootShadowNode) noexcept;
53335335
public virtual void commitHookWasRegistered(const facebook::react::UIManager& uiManager) noexcept = 0;
53345336
public virtual void commitHookWasUnregistered(const facebook::react::UIManager& uiManager) noexcept = 0;
5337+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) noexcept;
53355338
public virtual ~UIManagerCommitHook() noexcept = default;
53365339
}
53375340

scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4563,6 +4563,7 @@ class facebook::react::ShadowTree {
45634563

45644564
class facebook::react::ShadowTreeDelegate {
45654565
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTreeCommitOptions& commitOptions) const = 0;
4566+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) const;
45664567
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const = 0;
45674568
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const = 0;
45684569
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const = 0;
@@ -5072,6 +5073,7 @@ class facebook::react::UIManager : public facebook::react::ShadowTreeDelegate {
50725073
public std::shared_ptr<facebook::react::ShadowNode> cloneNode(const facebook::react::ShadowNode& shadowNode, const std::shared_ptr<const std::vector<std::shared_ptr<const facebook::react::ShadowNode>>>& children, facebook::react::RawProps rawProps) const;
50735074
public std::shared_ptr<facebook::react::ShadowNode> createNode(facebook::react::Tag tag, const std::string& componentName, facebook::react::SurfaceId surfaceId, facebook::react::RawProps props, facebook::react::InstanceHandle::Shared instanceHandle) const;
50745075
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTree::CommitOptions& commitOptions) const override;
5076+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& rootShadowNode, const std::vector<const facebook::react::LayoutableShadowNode*>& affectedLayoutableNodes) const noexcept override;
50755077
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const override;
50765078
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const override;
50775079
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const override;
@@ -5143,6 +5145,7 @@ class facebook::react::UIManagerCommitHook {
51435145
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const facebook::react::RootShadowNode::Unshared& newRootShadowNode) noexcept;
51445146
public virtual void commitHookWasRegistered(const facebook::react::UIManager& uiManager) noexcept = 0;
51455147
public virtual void commitHookWasUnregistered(const facebook::react::UIManager& uiManager) noexcept = 0;
5148+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) noexcept;
51465149
public virtual ~UIManagerCommitHook() noexcept = default;
51475150
}
51485151

scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4743,6 +4743,7 @@ class facebook::react::ShadowTree {
47434743

47444744
class facebook::react::ShadowTreeDelegate {
47454745
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTreeCommitOptions& commitOptions) const = 0;
4746+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) const;
47464747
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const = 0;
47474748
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const = 0;
47484749
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const = 0;
@@ -5252,6 +5253,7 @@ class facebook::react::UIManager : public facebook::react::ShadowTreeDelegate {
52525253
public std::shared_ptr<facebook::react::ShadowNode> cloneNode(const facebook::react::ShadowNode& shadowNode, const std::shared_ptr<const std::vector<std::shared_ptr<const facebook::react::ShadowNode>>>& children, facebook::react::RawProps rawProps) const;
52535254
public std::shared_ptr<facebook::react::ShadowNode> createNode(facebook::react::Tag tag, const std::string& componentName, facebook::react::SurfaceId surfaceId, facebook::react::RawProps props, facebook::react::InstanceHandle::Shared instanceHandle) const;
52545255
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTree::CommitOptions& commitOptions) const override;
5256+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& rootShadowNode, const std::vector<const facebook::react::LayoutableShadowNode*>& affectedLayoutableNodes) const noexcept override;
52555257
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const override;
52565258
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const override;
52575259
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const override;
@@ -5323,6 +5325,7 @@ class facebook::react::UIManagerCommitHook {
53235325
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const facebook::react::RootShadowNode::Unshared& newRootShadowNode) noexcept;
53245326
public virtual void commitHookWasRegistered(const facebook::react::UIManager& uiManager) noexcept = 0;
53255327
public virtual void commitHookWasUnregistered(const facebook::react::UIManager& uiManager) noexcept = 0;
5328+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) noexcept;
53265329
public virtual ~UIManagerCommitHook() noexcept = default;
53275330
}
53285331

scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6966,6 +6966,7 @@ class facebook::react::ShadowTree {
69666966

69676967
class facebook::react::ShadowTreeDelegate {
69686968
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTreeCommitOptions& commitOptions) const = 0;
6969+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) const;
69696970
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const = 0;
69706971
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const = 0;
69716972
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const = 0;
@@ -7453,6 +7454,7 @@ class facebook::react::UIManager : public facebook::react::ShadowTreeDelegate {
74537454
public std::shared_ptr<facebook::react::ShadowNode> cloneNode(const facebook::react::ShadowNode& shadowNode, const std::shared_ptr<const std::vector<std::shared_ptr<const facebook::react::ShadowNode>>>& children, facebook::react::RawProps rawProps) const;
74547455
public std::shared_ptr<facebook::react::ShadowNode> createNode(facebook::react::Tag tag, const std::string& componentName, facebook::react::SurfaceId surfaceId, facebook::react::RawProps props, facebook::react::InstanceHandle::Shared instanceHandle) const;
74557456
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTree::CommitOptions& commitOptions) const override;
7457+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& rootShadowNode, const std::vector<const facebook::react::LayoutableShadowNode*>& affectedLayoutableNodes) const noexcept override;
74567458
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const override;
74577459
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const override;
74587460
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const override;
@@ -7524,6 +7526,7 @@ class facebook::react::UIManagerCommitHook {
75247526
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const facebook::react::RootShadowNode::Unshared& newRootShadowNode) noexcept;
75257527
public virtual void commitHookWasRegistered(const facebook::react::UIManager& uiManager) noexcept = 0;
75267528
public virtual void commitHookWasUnregistered(const facebook::react::UIManager& uiManager) noexcept = 0;
7529+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) noexcept;
75277530
public virtual ~UIManagerCommitHook() noexcept = default;
75287531
}
75297532

scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6805,6 +6805,7 @@ class facebook::react::ShadowTree {
68056805

68066806
class facebook::react::ShadowTreeDelegate {
68076807
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTreeCommitOptions& commitOptions) const = 0;
6808+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) const;
68086809
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const = 0;
68096810
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const = 0;
68106811
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const = 0;
@@ -7292,6 +7293,7 @@ class facebook::react::UIManager : public facebook::react::ShadowTreeDelegate {
72927293
public std::shared_ptr<facebook::react::ShadowNode> cloneNode(const facebook::react::ShadowNode& shadowNode, const std::shared_ptr<const std::vector<std::shared_ptr<const facebook::react::ShadowNode>>>& children, facebook::react::RawProps rawProps) const;
72937294
public std::shared_ptr<facebook::react::ShadowNode> createNode(facebook::react::Tag tag, const std::string& componentName, facebook::react::SurfaceId surfaceId, facebook::react::RawProps props, facebook::react::InstanceHandle::Shared instanceHandle) const;
72947295
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& oldRootShadowNode, const facebook::react::RootShadowNode::Unshared& newRootShadowNode, const facebook::react::ShadowTree::CommitOptions& commitOptions) const override;
7296+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree& shadowTree, const facebook::react::RootShadowNode::Shared& rootShadowNode, const std::vector<const facebook::react::LayoutableShadowNode*>& affectedLayoutableNodes) const noexcept override;
72957297
public virtual void shadowTreeDidFinishReactCommit(const facebook::react::ShadowTree& shadowTree) const override;
72967298
public virtual void shadowTreeDidFinishTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator, bool mountSynchronously) const override;
72977299
public virtual void shadowTreeDidPromoteReactRevision(const facebook::react::ShadowTree& shadowTree) const override;
@@ -7363,6 +7365,7 @@ class facebook::react::UIManagerCommitHook {
73637365
public virtual facebook::react::RootShadowNode::Unshared shadowTreeWillCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const facebook::react::RootShadowNode::Unshared& newRootShadowNode) noexcept;
73647366
public virtual void commitHookWasRegistered(const facebook::react::UIManager& uiManager) noexcept = 0;
73657367
public virtual void commitHookWasUnregistered(const facebook::react::UIManager& uiManager) noexcept = 0;
7368+
public virtual void shadowTreeDidCommit(const facebook::react::ShadowTree&, const facebook::react::RootShadowNode::Shared&, const std::vector<const facebook::react::LayoutableShadowNode*>&) noexcept;
73667369
public virtual ~UIManagerCommitHook() noexcept = default;
73677370
}
73687371

0 commit comments

Comments
 (0)