Shun Miyazawa 1 год назад
Родитель
Сommit
f2445ccf02

+ 5 - 1
packages/core/src/utils/is-deep-equals.ts

@@ -1,4 +1,4 @@
-export const isDeepEquals = <T extends object>(obj1: T, obj2: T): boolean => {
+export const isDeepEquals = <T extends object>(obj1: T, obj2: T, isShallow = false): boolean => {
   const typedKeys1 = Object.keys(obj1) as (keyof T)[];
   const typedKeys2 = Object.keys(obj2) as (keyof T)[];
 
@@ -10,6 +10,10 @@ export const isDeepEquals = <T extends object>(obj1: T, obj2: T): boolean => {
     const val1 = obj1[key];
     const val2 = obj2[key];
 
+    if (isShallow) {
+      return val1 === val2;
+    }
+
     if (typeof val1 === 'object' && typeof val2 === 'object') {
       if (val1 === null || val2 === null) {
         return val1 === val2;

+ 1 - 1
packages/editor/src/client/stores/codemirror-editor.ts

@@ -32,7 +32,7 @@ export const useCodeMirrorEditorIsolated = (
 
   const shouldUpdate = swrKey != null && container != null && (
     currentData == null
-    || (isValid(newData) && !isDeepEquals(currentData, newData))
+    || (isValid(newData) && !isDeepEquals(currentData, newData, true))
   );
 
   if (shouldUpdate) {