diff --git a/packages/react-devtools-shared/src/devtools/views/Components/InspectedElementContext.js b/packages/react-devtools-shared/src/devtools/views/Components/InspectedElementContext.js index 59611d9867ac..43c62bc1f646 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/InspectedElementContext.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/InspectedElementContext.js @@ -135,7 +135,7 @@ function InspectedElementContextController({children}: Props) { const value = hydrateHelper(data.value, data.path); const inspectedElement = {...currentlyInspectedElement}; - fillInPath(inspectedElement, data.path, value); + fillInPath(inspectedElement, data.value, data.path, value); resource.write(element, inspectedElement); diff --git a/packages/react-devtools-shared/src/devtools/views/Components/types.js b/packages/react-devtools-shared/src/devtools/views/Components/types.js index a61f28ccb00d..210a6907b565 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/types.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/types.js @@ -1,6 +1,9 @@ // @flow -import type {Dehydrated} from 'react-devtools-shared/src/hydration'; +import type { + Dehydrated, + Unserializable, +} from 'react-devtools-shared/src/hydration'; import type {ElementType} from 'react-devtools-shared/src/types'; // Each element on the frontend corresponds to a Fiber on the backend. @@ -87,7 +90,9 @@ export type DehydratedData = {| data: | string | Dehydrated + | Unserializable | Array - | {[key: string]: string | Dehydrated}, + | Array + | {[key: string]: string | Dehydrated | Unserializable}, unserializable: Array>, |}; diff --git a/packages/react-devtools-shared/src/hydration.js b/packages/react-devtools-shared/src/hydration.js index 610825c57861..0823ec6e362a 100644 --- a/packages/react-devtools-shared/src/hydration.js +++ b/packages/react-devtools-shared/src/hydration.js @@ -42,7 +42,7 @@ export type Dehydrated = {| // These objects can't be serialized without losing type information, // so a "Unserializable" type wrapper is used (with meta-data keys) to send nested values- // while preserving the original type and name. -type Unserializable = { +export type Unserializable = { name: string | null, readonly?: boolean, size?: number, @@ -196,6 +196,8 @@ export function dehydrate( | string | Dehydrated | Unserializable + | Array + | Array | {[key: string]: string | Dehydrated | Unserializable} { const type = getDataType(data); @@ -380,7 +382,7 @@ export function fillInPath( } export function hydrate( - object: Object, + object: any, cleaned: Array>, unserializable: Array>, ): Object {