Files
react-native/packages/rn-tester/NativeModuleExample/NativeScreenshotManager.js
T
Paige Sun b13e41d98e 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
2022-01-19 14:19:13 -08:00

35 lines
998 B
JavaScript

/**
* 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.
*
* @flow strict-local
* @format
*/
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: () => {||};
takeScreenshot(
id: string,
options: ScreenshotManagerOptions,
): Promise<string>;
}
const NativeModule = TurboModuleRegistry.get<Spec>('ScreenshotManager');
export function takeScreenshot(
id: string,
options: ScreenshotManagerOptions,
): Promise<string> {
if (NativeModule != null) {
return NativeModule.takeScreenshot(id, options);
}
return Promise.reject();
}