/* * 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. */ #import #import #import #import #import #import #import #import #import #import #import #import NS_ASSUME_NONNULL_BEGIN @class RCTMountingManager; /** * Exactly same semantic as `facebook::react::SchedulerDelegate`. */ @protocol RCTSchedulerDelegate - (void)schedulerDidFinishTransaction:(facebook::react::MountingCoordinator::Shared)mountingCoordinator; - (void)schedulerDidDispatchCommand:(const facebook::react::ShadowView &)shadowView commandName:(const std::string &)commandName args:(const folly::dynamic &)args; - (void)schedulerDidSendAccessibilityEvent:(const facebook::react::ShadowView &)shadowView eventType:(const std::string &)eventType; - (void)schedulerDidSetIsJSResponder:(BOOL)isJSResponder blockNativeResponder:(BOOL)blockNativeResponder forShadowView:(const facebook::react::ShadowView &)shadowView; @end /** * `facebook::react::Scheduler` as an Objective-C class. */ @interface RCTScheduler : NSObject @property (atomic, weak, nullable) id delegate; @property (readonly) const std::shared_ptr uiManager; - (instancetype)initWithToolbox:(facebook::react::SchedulerToolbox)toolbox; - (void)registerSurface:(const facebook::react::SurfaceHandler &)surfaceHandler; - (void)unregisterSurface:(const facebook::react::SurfaceHandler &)surfaceHandler; - (const facebook::react::ComponentDescriptor *)findComponentDescriptorByHandle_DO_NOT_USE_THIS_IS_BROKEN: (facebook::react::ComponentHandle)handle; - (void)setupAnimationDriver:(const facebook::react::SurfaceHandler &)surfaceHandler; - (void)onAnimationStarted; - (void)onAllAnimationsComplete; - (void)animationTick; - (void)reportMount:(facebook::react::SurfaceId)surfaceId; - (void)addEventListener:(const std::shared_ptr &)listener; - (void)removeEventListener:(const std::shared_ptr &)listener; @end NS_ASSUME_NONNULL_END