@@ -21,7 +21,7 @@ function shouldUpdate(
2121 return false ;
2222 }
2323
24- for ( const key of Object . keys ( val ) ) {
24+ for ( const key of Object . keys ( { ... oldVal , ... val } ) ) {
2525 if (
2626 key !== computedField &&
2727 checkFieldInTemplate ( template , key ) &&
@@ -74,10 +74,16 @@ export const useDeepValues = (
7474 return ;
7575 }
7676
77+ for ( const key of Object . keys ( oldValObj ) ) {
78+ if ( ! ( key in valObj ) ) {
79+ valObj [ key ] = null ;
80+ }
81+ }
82+
7783 let relationalData : Record < string , any > = { } ;
78- const pkFinal = values . value . id || pk ;
84+ const pkFinal = valObj . id || pk ;
7985
80- for ( const key of Object . keys ( values . value ) ) {
86+ for ( const key of Object . keys ( valObj ) ) {
8187 const relation = relations . value . find ( ( rel ) => [ rel . meta ?. one_field , rel . meta ?. many_field ] . includes ( key ) ) ;
8288
8389 if ( ! relation || ! checkFieldInTemplate ( template , key ) ) {
@@ -87,7 +93,7 @@ export const useDeepValues = (
8793 const isM2O = relation . collection === collection ;
8894 const fieldName = isM2O ? relation . meta ?. many_field : relation . meta ?. one_field ;
8995
90- let fieldChanges = values . value [ fieldName ! ] as IRelationUpdate ?? {
96+ let fieldChanges = valObj [ fieldName ! ] as IRelationUpdate ?? {
9197 create : [ ] ,
9298 update : [ ] ,
9399 delete : [ ] ,
@@ -183,7 +189,7 @@ export const useDeepValues = (
183189 relationalData [ key ] = isM2O ? arrayOfData [ 0 ] : arrayOfData ;
184190 }
185191
186- finalValues . value = { ...values . value , ...relationalData } ;
192+ finalValues . value = { ...valObj , ...relationalData } ;
187193 } ,
188194 {
189195 deep : false ,
0 commit comments