Summary:
Looks like we broke iOS redbox in D16812212. It stopped showing up because the feature detection stopped working, and we started calling noops. The fix is an explicit platform check.

Fixes #26260

Reviewed By: motiz88

Differential Revision: D17139310

fbshipit-source-id: 829eec23cbb49151ac250889c34ab28d36b05e6a
This commit is contained in:
Dan Abramov 2019-08-30 18:08:28 -07:00 коммит произвёл Facebook Github Bot
Родитель 951785de8a
Коммит f107d3b78c
1 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -46,16 +46,19 @@ export interface Spec extends TurboModule {
stack: Array<StackFrame>,
exceptionId: number,
) => void;
// TODO(T53311281): This is a noop on iOS now. Implement it.
+reportException?: (data: ExceptionData) => void;
+updateExceptionMessage: (
message: string,
stack: Array<StackFrame>,
exceptionId: number,
) => void;
// Android only
// TODO(T53311281): This is a noop on iOS now. Implement it.
+dismissRedbox?: () => void;
}
const Platform = require('../Utilities/Platform');
const NativeModule = TurboModuleRegistry.getEnforcing<Spec>(
'ExceptionsManager',
);
@ -83,12 +86,14 @@ const ExceptionsManager = {
NativeModule.updateExceptionMessage(message, stack, exceptionId);
},
dismissRedbox(): void {
if (NativeModule.dismissRedbox) {
if (Platform.OS !== 'ios' && NativeModule.dismissRedbox) {
// TODO(T53311281): This is a noop on iOS now. Implement it.
NativeModule.dismissRedbox();
}
},
reportException(data: ExceptionData): void {
if (NativeModule.reportException) {
if (Platform.OS !== 'ios' && NativeModule.reportException) {
// TODO(T53311281): This is a noop on iOS now. Implement it.
NativeModule.reportException(data);
return;
}