/** * 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. */ #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::ShadowViewMutationList)mutations rootTag:(ReactTag)rootTag; - (void)schedulerDidRequestPreliminaryViewAllocationWithComponentName:(NSString *)componentName; @end /** * `facebook::react::Scheduler` as an Objective-C class. */ @interface RCTScheduler : NSObject @property (atomic, weak, nullable) id delegate; - (instancetype)initWithContextContainer:(std::shared_ptr)contextContatiner; - (void)startSurfaceWithSurfaceId:(facebook::react::SurfaceId)surfaceId moduleName:(NSString *)moduleName initailProps:(NSDictionary *)initialProps; - (void)stopSurfaceWithSurfaceId:(facebook::react::SurfaceId)surfaceId; - (CGSize)measureSurfaceWithLayoutConstraints:(facebook::react::LayoutConstraints)layoutConstraints layoutContext:(facebook::react::LayoutContext)layoutContext surfaceId:(facebook::react::SurfaceId)surfaceId; - (BOOL)constraintSurfaceLayoutWithLayoutConstraints:(facebook::react::LayoutConstraints)layoutConstraints layoutContext:(facebook::react::LayoutContext)layoutContext surfaceId:(facebook::react::SurfaceId)surfaceId; @end @interface RCTScheduler (Deprecated) - (std::shared_ptr)uiManager_DO_NOT_USE; @end NS_ASSUME_NONNULL_END