@@ -16,7 +16,7 @@ import {
16
16
PostObjectType ,
17
17
PreObjectType
18
18
} from '../components/DataTypes/Object'
19
- import type { DataType } from '../type'
19
+ import type { DataItemProps , DataType } from '../type'
20
20
import { useJsonViewerStore } from './JsonViewerStore'
21
21
22
22
type TypeRegistryState = {
@@ -89,24 +89,22 @@ export function predefined (): DataType<any>[] {
89
89
const types : DataType < any > [ ] = [ ]
90
90
91
91
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 )
102
100
if ( dataType . Editor ) {
103
101
dataType . Editor = memo ( dataType . Editor )
104
102
}
105
103
if ( dataType . PreComponent ) {
106
- dataType . PreComponent = memo ( dataType . PreComponent )
104
+ dataType . PreComponent = memo ( dataType . PreComponent , compare )
107
105
}
108
106
if ( dataType . PostComponent ) {
109
- dataType . PostComponent = memo ( dataType . PostComponent )
107
+ dataType . PostComponent = memo ( dataType . PostComponent , compare )
110
108
}
111
109
types . push ( dataType )
112
110
}
0 commit comments