diff --git a/app/src/composables/use-item/use-item.ts b/app/src/composables/use-item/use-item.ts index e363da3e52..f02c5cfcb4 100644 --- a/app/src/composables/use-item/use-item.ts +++ b/app/src/composables/use-item/use-item.ts @@ -117,8 +117,9 @@ export function useItem(collection: Ref, primaryKey: Ref = await save(); + try { + const savedItem: Record = await save(); - revisionsDrawerDetail.value?.$data?.refresh?.(); + revisionsDrawerDetail.value?.$data?.refresh?.(); - if (props.primaryKey === '+') { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const newPrimaryKey = savedItem[primaryKeyField.value!.field]; - router.replace(`/collections/${props.collection}/${newPrimaryKey}`); + if (props.primaryKey === '+') { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const newPrimaryKey = savedItem[primaryKeyField.value!.field]; + router.replace(`/collections/${props.collection}/${newPrimaryKey}`); + } + } catch { + // Save shows unexpected error dialog } } async function saveAndAddNew() { if (isSavable.value === false) return; - await save(); + try { + await save(); - if (isNew.value === true) { - refresh(); - } else { - router.push(`/collections/${props.collection}/+`); + if (isNew.value === true) { + refresh(); + } else { + router.push(`/collections/${props.collection}/+`); + } + } catch { + // Save shows unexpected error dialog } } async function saveAsCopyAndNavigate() { - const newPrimaryKey = await saveAsCopy(); - router.push(`/collections/${props.collection}/${newPrimaryKey}`); + try { + const newPrimaryKey = await saveAsCopy(); + router.push(`/collections/${props.collection}/${newPrimaryKey}`); + } catch { + // Save shows unexpected error dialog + } } async function deleteAndQuit() { @@ -438,12 +454,16 @@ export default defineComponent({ } async function toggleArchive() { - await archive(); + try { + await archive(); - if (isArchived.value === true) { - router.push(`/collections/${props.collection}`); - } else { - confirmArchive.value = false; + if (isArchived.value === true) { + router.push(`/collections/${props.collection}`); + } else { + confirmArchive.value = false; + } + } catch { + // `archive` will show the unexpected error dialog } } diff --git a/app/src/modules/files/routes/item.vue b/app/src/modules/files/routes/item.vue index 43aa9dd566..abf1a8c49b 100644 --- a/app/src/modules/files/routes/item.vue +++ b/app/src/modules/files/routes/item.vue @@ -379,13 +379,21 @@ export default defineComponent({ } async function saveAndQuit() { - await save(); - router.push(`/files`); + try { + await save(); + router.push(`/files`); + } catch { + // `save` will show unexpected error dialog + } } async function saveAndStay() { - await save(); - revisionsDrawerDetail.value?.$data?.refresh?.(); + try { + await save(); + revisionsDrawerDetail.value?.$data?.refresh?.(); + } catch { + // `save` will show unexpected error dialog + } } async function saveAsCopyAndNavigate() { diff --git a/app/src/modules/users/routes/item.vue b/app/src/modules/users/routes/item.vue index 83c87cbd9c..51c1e4a291 100644 --- a/app/src/modules/users/routes/item.vue +++ b/app/src/modules/users/routes/item.vue @@ -356,35 +356,51 @@ export default defineComponent({ } async function saveAndQuit() { - const savedItem: Record = await save(); - await setLang(savedItem); - await refreshCurrentUser(); - router.push(`/users`); + try { + const savedItem: Record = await save(); + await setLang(savedItem); + await refreshCurrentUser(); + router.push(`/users`); + } catch { + // `save` will show unexpected error dialog + } } async function saveAndStay() { - const savedItem: Record = await save(); - await setLang(savedItem); + try { + const savedItem: Record = await save(); + await setLang(savedItem); - revisionsDrawerDetail.value?.$data?.refresh?.(); + revisionsDrawerDetail.value?.$data?.refresh?.(); - if (props.primaryKey === '+') { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const newPrimaryKey = savedItem.id; - router.replace(`/collections/users/${newPrimaryKey}`); + if (props.primaryKey === '+') { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const newPrimaryKey = savedItem.id; + router.replace(`/collections/users/${newPrimaryKey}`); + } + } catch { + // `save` will show unexpected error dialog } } async function saveAndAddNew() { - const savedItem: Record = await save(); - await setLang(savedItem); - await refreshCurrentUser(); - router.push(`/users/+`); + try { + const savedItem: Record = await save(); + await setLang(savedItem); + await refreshCurrentUser(); + router.push(`/users/+`); + } catch { + // `save` will show unexpected error dialog + } } async function saveAsCopyAndNavigate() { - const newPrimaryKey = await saveAsCopy(); - router.push(`/users/${newPrimaryKey}`); + try { + const newPrimaryKey = await saveAsCopy(); + router.push(`/users/${newPrimaryKey}`); + } catch { + // `save` will show unexpected error dialog + } } async function deleteAndQuit() {