Skip to content

Commit 31326fc

Browse files
committed
fix: memo
1 parent 02199e9 commit 31326fc

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/stores/typeRegistry.tsx

+11-13
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
PostObjectType,
1717
PreObjectType
1818
} from '../components/DataTypes/Object'
19-
import type { DataType } from '../type'
19+
import type { DataItemProps, DataType } from '../type'
2020
import { useJsonViewerStore } from './JsonViewerStore'
2121

2222
type TypeRegistryState = {
@@ -89,24 +89,22 @@ export function predefined (): DataType<any>[] {
8989
const types: DataType<any>[] = []
9090

9191
function registerType<Type> (dataType: DataType<Type>): void {
92-
dataType.Component = memo(
93-
dataType.Component,
94-
(prevProps, nextProps) => {
95-
return (
96-
Object.is(prevProps.value, nextProps.value) &&
97-
prevProps.inspect && nextProps.inspect &&
98-
prevProps.path?.join('.') === nextProps.path?.join('.')
99-
)
100-
}
101-
)
92+
function compare (prevProps: Readonly<DataItemProps<Type>>, nextProps: Readonly<DataItemProps<Type>>) {
93+
return (
94+
Object.is(prevProps.value, nextProps.value) &&
95+
prevProps.inspect && nextProps.inspect &&
96+
prevProps.path?.join('.') === nextProps.path?.join('.')
97+
)
98+
}
99+
dataType.Component = memo(dataType.Component, compare)
102100
if (dataType.Editor) {
103101
dataType.Editor = memo(dataType.Editor)
104102
}
105103
if (dataType.PreComponent) {
106-
dataType.PreComponent = memo(dataType.PreComponent)
104+
dataType.PreComponent = memo(dataType.PreComponent, compare)
107105
}
108106
if (dataType.PostComponent) {
109-
dataType.PostComponent = memo(dataType.PostComponent)
107+
dataType.PostComponent = memo(dataType.PostComponent, compare)
110108
}
111109
types.push(dataType)
112110
}

0 commit comments

Comments
 (0)