diff --git a/packages/react-devtools-shared/src/backend/console.js b/packages/react-devtools-shared/src/backend/console.js index f1a2ee72f7009..d4e9651fa7503 100644 --- a/packages/react-devtools-shared/src/backend/console.js +++ b/packages/react-devtools-shared/src/backend/console.js @@ -7,7 +7,11 @@ * @flow */ -import type {ConsolePatchSettings} from './types'; +import type { + ConsolePatchSettings, + OnErrorOrWarning, + GetComponentStack, +} from './types'; import { formatConsoleArguments, @@ -75,11 +79,6 @@ function restorePotentiallyModifiedArgs(args: Array): Array { } } -type OnErrorOrWarning = (type: 'error' | 'warn', args: Array) => void; -type GetComponentStack = ( - topFrame: Error, -) => null | {enableOwnerStacks: boolean, componentStack: string}; - const injectedRenderers: Array<{ onErrorOrWarning: ?OnErrorOrWarning, getComponentStack: ?GetComponentStack, diff --git a/packages/react-devtools-shared/src/backend/fiber/renderer.js b/packages/react-devtools-shared/src/backend/fiber/renderer.js index 7ddbe535835ae..1ac78a49a58b6 100644 --- a/packages/react-devtools-shared/src/backend/fiber/renderer.js +++ b/packages/react-devtools-shared/src/backend/fiber/renderer.js @@ -5789,8 +5789,10 @@ export function attach( inspectElement, logElementToConsole, patchConsoleForStrictMode, + getComponentStack, getElementAttributeByPath, getElementSourceFunctionById, + onErrorOrWarning, overrideError, overrideSuspense, overrideValueAtPath, diff --git a/packages/react-devtools-shared/src/backend/flight/renderer.js b/packages/react-devtools-shared/src/backend/flight/renderer.js index fb4a9901a962f..065dc81a071a7 100644 --- a/packages/react-devtools-shared/src/backend/flight/renderer.js +++ b/packages/react-devtools-shared/src/backend/flight/renderer.js @@ -162,6 +162,7 @@ export function attach( getBestMatchForTrackedPath() { return null; }, + getComponentStack, getDisplayNameForElementID() { return null; }, @@ -207,6 +208,7 @@ export function attach( patchConsoleForStrictMode() {}, getElementAttributeByPath() {}, getElementSourceFunctionById() {}, + onErrorOrWarning, overrideError() {}, overrideSuspense() {}, overrideValueAtPath() {}, diff --git a/packages/react-devtools-shared/src/backend/types.js b/packages/react-devtools-shared/src/backend/types.js index f8261c5c7927e..dc3222072a482 100644 --- a/packages/react-devtools-shared/src/backend/types.js +++ b/packages/react-devtools-shared/src/backend/types.js @@ -350,6 +350,14 @@ export type InstanceAndStyle = { type Type = 'props' | 'hooks' | 'state' | 'context'; +export type OnErrorOrWarning = ( + type: 'error' | 'warn', + args: Array, +) => void; +export type GetComponentStack = ( + topFrame: Error, +) => null | {enableOwnerStacks: boolean, componentStack: string}; + export type RendererInterface = { cleanup: () => void, clearErrorsAndWarnings: () => void, @@ -364,6 +372,7 @@ export type RendererInterface = { findHostInstancesForElementID: FindHostInstancesForElementID, flushInitialOperations: () => void, getBestMatchForTrackedPath: () => PathMatch | null, + getComponentStack?: GetComponentStack, getNearestMountedDOMNode: (component: Element) => Element | null, getElementIDForHostInstance: GetElementIDForHostInstance, getDisplayNameForElementID: GetDisplayNameForElementID, @@ -386,6 +395,7 @@ export type RendererInterface = { forceFullData: boolean, ) => InspectedElementPayload, logElementToConsole: (id: number) => void, + onErrorOrWarning?: OnErrorOrWarning, overrideError: (id: number, forceError: boolean) => void, overrideSuspense: (id: number, forceFallback: boolean) => void, overrideValueAtPath: (