fix(gui): wait until inserting record to avoid duplicate row insertion

Signed-off-by: Pranav C <pranavxc@gmail.com>
This commit is contained in:
Pranav C
2022-10-14 17:02:44 +05:30
parent a20c2c99fb
commit 507780a098
3 changed files with 8 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ import {
message,
populateInsertObject,
ref,
until,
useApi,
useGlobal,
useI18n,
@@ -224,8 +225,8 @@ export function useViewData(
insertObj,
)
formattedData.value?.splice(rowIndex ?? 0, 1, {
row: insertedData,
Object.assign(formattedData.value[rowIndex], {
row: { ...insertedData, ...row },
rowMeta: { ...row.rowMeta, new: undefined },
oldRow: { ...insertedData },
})
@@ -287,6 +288,9 @@ export function useViewData(
ltarState?: Record<string, any>,
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)
if (row.rowMeta.new) {
return await insertRow(row.row, formattedData.value.indexOf(row), ltarState, args)
} else {