47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#include <react/renderer/mounting/MountingTransaction.h>
|
|
|
|
#pragma once
|
|
|
|
namespace facebook::react {
|
|
|
|
class MountingCoordinator;
|
|
|
|
/**
|
|
* Generic interface for anything that needs to override specific
|
|
* MountingCoordinator methods. This is for platform-specific escape hatches
|
|
* like animations.
|
|
*/
|
|
class MountingOverrideDelegate {
|
|
public:
|
|
virtual bool shouldOverridePullTransaction() const = 0;
|
|
virtual ~MountingOverrideDelegate() = default;
|
|
|
|
/**
|
|
* Delegates that override this method are responsible for:
|
|
*
|
|
* - Returning a MountingTransaction with mutations
|
|
* - Calling
|
|
* - Telemetry, if appropriate
|
|
*
|
|
* @param surfaceId the Id of the surface to be mounted
|
|
* @param number of the transaction
|
|
* @param telemetry object associated with the transaction
|
|
* @param mutations list of the mutations from the ShadowTree
|
|
* @return the mounting transaction, if it was created
|
|
*/
|
|
virtual std::optional<MountingTransaction> pullTransaction(
|
|
SurfaceId surfaceId,
|
|
MountingTransaction::Number number,
|
|
const TransactionTelemetry& telemetry,
|
|
ShadowViewMutationList mutations) const = 0;
|
|
};
|
|
|
|
} // namespace facebook::react
|