diff --git a/packages/nc-gui-v2/components/cell/Json.vue b/packages/nc-gui-v2/components/cell/Json.vue index 776c398777..ea8d2d1f87 100644 --- a/packages/nc-gui-v2/components/cell/Json.vue +++ b/packages/nc-gui-v2/components/cell/Json.vue @@ -22,7 +22,16 @@ let editEnabled = $(inject(EditModeInj)) let vModel = $(useVModel(props, 'modelValue', emits)) -let localValue = $ref('{}') +let localValueState = $ref(undefined) +let localValue = $( + computed({ + get: () => localValueState, + set: (val: undefined | string | Record) => { + localValueState = typeof val === 'object' ? JSON.stringify(val) : val + }, + }), +) + let error = $ref(undefined) let isExpanded = $ref(false) @@ -31,7 +40,7 @@ const clear = () => { isExpanded = false editEnabled = false - localValue = JSON.stringify(vModel) + localValue = vModel } const onSave = () => { @@ -40,13 +49,13 @@ const onSave = () => { } onMounted(() => { - localValue = JSON.stringify(vModel) + localValue = vModel }) watch( () => vModel, (val) => { - localValue = JSON.stringify(val) + localValue = val }, ) @@ -66,7 +75,7 @@ watch( () => editEnabled, () => { isExpanded = false - localValue = JSON.stringify(vModel) + localValue = vModel }, )