Migrate ScreenshotManager from NativeModule to TurboModule

Summary:
Changelog: [JS] Migrate ScreenshotManager from NativeModule to TurboModule. Fix SnapshotExample in rn-tester.

`const ScreenshotManager = NativeModules.ScreenshotManager;` makes all of RNTesterAppRoute render blank in Bridgeless, because we throw a jsi::JSError when JS calls `NativeModule.get` while in Bridgeless.

Reviewed By: RSNara

Differential Revision: D33640935

fbshipit-source-id: 124a3b43e1440a7ca0071c95c4388350d2e4affa
This commit is contained in:
Paige Sun
2022-01-19 14:19:13 -08:00
committed by Facebook GitHub Bot
parent 9d2df5b8ae
commit b13e41d98e
4 changed files with 19 additions and 19 deletions
@@ -10,17 +10,25 @@
import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from 'react-native/Libraries/TurboModule/TurboModuleRegistry';
import type {UnsafeObject} from 'react-native/Libraries/Types/CodegenTypes';
export type ScreenshotManagerOptions = UnsafeObject;
export interface Spec extends TurboModule {
+getConstants: () => {||};
takeSnapshot(id: string): Promise<string>;
takeScreenshot(
id: string,
options: ScreenshotManagerOptions,
): Promise<string>;
}
const NativeModule = TurboModuleRegistry.get<Spec>('ScreenshotManager');
export function takeSnapshot(id: string): Promise<string> {
export function takeScreenshot(
id: string,
options: ScreenshotManagerOptions,
): Promise<string> {
if (NativeModule != null) {
return NativeModule.takeSnapshot(id);
return NativeModule.takeScreenshot(id, options);
}
return Promise.reject();
}