diff --git a/packages/nc-gui/components/smartsheet/Grid.vue b/packages/nc-gui/components/smartsheet/Grid.vue
index 36a6f018f6..b0a882ade4 100644
--- a/packages/nc-gui/components/smartsheet/Grid.vue
+++ b/packages/nc-gui/components/smartsheet/Grid.vue
@@ -479,7 +479,7 @@ watch(
-
+
,
rowIndex = formattedData.value?.length,
ltarState: Record = {},
- { metaValue = meta.value, viewMetaValue = viewMeta.value }: { metaValue?: TableType; viewMetaValue?: ViewType } = {},
+ {
+ metaValue = meta.value,
+ viewMetaValue = viewMeta.value,
+ }: { metaValue?: TableType; viewMetaValue?: ViewType } = {},
) {
- formattedData.value[rowIndex].rowMeta.saving = true
+ if (formattedData.value[rowIndex].rowMeta) formattedData.value[rowIndex].rowMeta.saving = true
try {
const { missingRequiredColumns, insertObj } = await populateInsertObject({
meta: metaValue!,
@@ -227,7 +230,7 @@ export function useViewData(
Object.assign(formattedData.value[rowIndex], {
row: { ...insertedData, ...row },
- rowMeta: { ...row.rowMeta, new: undefined },
+ rowMeta: { ...(row.rowMeta || {}), new: undefined },
oldRow: { ...insertedData },
})
@@ -236,16 +239,19 @@ export function useViewData(
} catch (error: any) {
message.error(await extractSdkResponseErrorMsg(error))
} finally {
- formattedData.value[rowIndex].rowMeta.saving = false
+ if (formattedData.value[rowIndex].rowMeta) formattedData.value[rowIndex].rowMeta.saving = false
}
}
async function updateRowProperty(
toUpdate: Row,
property: string,
- { metaValue = meta.value, viewMetaValue = viewMeta.value }: { metaValue?: TableType; viewMetaValue?: ViewType } = {},
+ {
+ metaValue = meta.value,
+ viewMetaValue = viewMeta.value,
+ }: { metaValue?: TableType; viewMetaValue?: ViewType } = {},
) {
- toUpdate.rowMeta.saving = true
+ if (toUpdate.rowMeta) toUpdate.rowMeta.saving = true
try {
const id = extractPkFromRow(toUpdate.row, meta.value?.columns as ColumnType[])
@@ -278,7 +284,7 @@ export function useViewData(
} catch (e: any) {
message.error(`${t('msg.error.rowUpdateFailed')} ${await extractSdkResponseErrorMsg(e)}`)
} finally {
- toUpdate.rowMeta.saving = false
+ if (toUpdate.rowMeta) toUpdate.rowMeta.saving = false
}
}
@@ -289,7 +295,7 @@ export function useViewData(
args: { metaValue?: TableType; viewMetaValue?: ViewType } = {},
) {
// if new row and save is in progress then wait until the save is complete
- await until(() => !(row.rowMeta.new && row.rowMeta.saving)).toMatch((v) => v)
+ await until(() => !(row.rowMeta?.new && row.rowMeta?.saving)).toMatch((v) => v)
if (row.rowMeta.new) {
return await insertRow(row.row, formattedData.value.indexOf(row), ltarState, args)
@@ -309,7 +315,7 @@ export function useViewData(
async function deleteRowById(id: string) {
if (!id) {
- throw new Error("Delete not allowed for table which doesn't have primary Key")
+ throw new Error('Delete not allowed for table which doesn\'t have primary Key')
}
const res: any = await $api.dbViewRow.delete(