1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- #pragma once
- #include <react/core/ReactPrimitives.h>
- #include <react/core/ShadowNode.h>
- #include <react/mounting/MountingCoordinator.h>
- namespace facebook {
- namespace react {
- /*
- * Abstract class for UIManager's delegate.
- */
- class UIManagerDelegate {
- public:
- /*
- * Called right after a new/updated Shadow Node tree is constructed.
- * For this moment the tree is already laid out and sealed.
- */
- virtual void uiManagerDidFinishTransaction(
- MountingCoordinator::Shared const &mountingCoordinator) = 0;
- /*
- * Called each time when UIManager constructs a new Shadow Node. Receiver
- * might use this to optimistically allocate a new native view
- * instances.
- */
- virtual void uiManagerDidCreateShadowNode(
- const ShadowNode::Shared &shadowNode) = 0;
- /*
- * Called when UIManager wants to dispatch a command to the mounting layer.
- */
- virtual void uiManagerDidDispatchCommand(
- const ShadowNode::Shared &shadowNode,
- std::string const &commandName,
- folly::dynamic const args) = 0;
- /*
- * Set JS responder for a view
- */
- virtual void uiManagerDidSetJSResponder(
- SurfaceId surfaceId,
- ShadowNode::Shared const &shadowView,
- bool blockNativeResponder) = 0;
- /*
- * Clear the JSResponder for a view
- */
- virtual void uiManagerDidClearJSResponder() = 0;
- virtual ~UIManagerDelegate() noexcept = default;
- };
- } // namespace react
- } // namespace facebook
|