mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
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:
committed by
Facebook GitHub Bot
parent
9d2df5b8ae
commit
b13e41d98e
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user