diff --git a/desktop/app/src/ui/components/data-inspector/DataDescription.tsx b/desktop/app/src/ui/components/data-inspector/DataDescription.tsx
index fe89c15dc..0bab849bf 100644
--- a/desktop/app/src/ui/components/data-inspector/DataDescription.tsx
+++ b/desktop/app/src/ui/components/data-inspector/DataDescription.tsx
@@ -12,7 +12,6 @@ import {DataInspectorSetValue} from './DataInspector';
import {PureComponent} from 'react';
import styled from '@emotion/styled';
import {SketchPicker, CompactPicker} from 'react-color';
-import {Component, Fragment} from 'react';
import Popover from '../Popover';
import {colors} from '../colors';
import Input from '../Input';
@@ -276,7 +275,7 @@ export default class DataDescription extends PureComponent<
type={this.props.type}
value={this.props.value}
extra={this.props.extra}
- editable={Boolean(this.props.setValue)}
+ editable={!!this.props.setValue}
commit={this.commit}
onEdit={this.onEditStart}
/>
@@ -359,7 +358,7 @@ class ColorEditor extends PureComponent<{
render() {
const colorInfo = parseColor(this.props.value);
if (!colorInfo) {
- return ;
+ return null;
}
return (
@@ -440,7 +439,7 @@ class ColorEditor extends PureComponent<{
}
}
-class DataDescriptionPreview extends Component<{
+class DataDescriptionPreview extends PureComponent<{
type: string;
value: any;
extra?: any;
@@ -539,7 +538,9 @@ function parseColor(
return {a, b, g, r};
}
-class DataDescriptionContainer extends Component<{
+const pencilStyle = {cursor: 'pointer', marginLeft: 8};
+
+class DataDescriptionContainer extends PureComponent<{
type: string;
value: any;
editable: boolean;
@@ -563,7 +564,7 @@ class DataDescriptionContainer extends Component<{
switch (type) {
case 'number':
- return {Number(val)};
+ return {+val};
case 'color': {
const colorInfo = parseColor(val);
@@ -620,7 +621,7 @@ class DataDescriptionContainer extends Component<{
variant="outline"
color={colors.light20}
size={16}
- style={{cursor: 'pointer', marginLeft: 8}}
+ style={pencilStyle}
/>
>
);
@@ -637,12 +638,12 @@ class DataDescriptionContainer extends Component<{
return editable ? (
) : (
- {String(val)}
+ {'' + val}
);
case 'undefined':
diff --git a/desktop/app/src/ui/components/data-inspector/DataInspector.tsx b/desktop/app/src/ui/components/data-inspector/DataInspector.tsx
index e082f1340..2b4c1c8c8 100644
--- a/desktop/app/src/ui/components/data-inspector/DataInspector.tsx
+++ b/desktop/app/src/ui/components/data-inspector/DataInspector.tsx
@@ -9,7 +9,7 @@
import DataDescription from './DataDescription';
import {MenuTemplate} from '../ContextMenu';
-import {Component} from 'react';
+import {memo, useMemo, useRef, useState, useEffect, useCallback} from 'react';
import ContextMenu from '../ContextMenu';
import Tooltip from '../Tooltip';
import styled from '@emotion/styled';
@@ -19,11 +19,9 @@ import DataPreview, {DataValueExtractor, InspectorName} from './DataPreview';
import {getSortedKeys} from './utils';
import {colors} from '../colors';
import {clipboard} from 'electron';
-import deepEqual from 'deep-equal';
import React from 'react';
import {TooltipOptions} from '../TooltipProvider';
-import {shallowEqual} from 'react-redux';
-import {HighlightContext} from '../Highlight';
+import {useHighlighter} from '../Highlight';
export {DataValueExtractor} from './DataPreview';
@@ -116,7 +114,7 @@ type DataInspectorProps = {
/**
* An array containing the current location of the data relative to its root.
*/
- path: Array;
+ parentPath: Array;
/**
* Whether to expand the root by default.
*/
@@ -149,7 +147,7 @@ type DataInspectorProps = {
/**
* Ancestry of parent objects, used to avoid recursive objects.
*/
- ancestry: Array