diff --git a/src/components/BalanceAssertionEditor.vue b/src/components/BalanceAssertionEditor.vue index 75b657d..2250f62 100644 --- a/src/components/BalanceAssertionEditor.vue +++ b/src/components/BalanceAssertionEditor.vue @@ -63,6 +63,7 @@ diff --git a/src/components/TransactionEditor.vue b/src/components/TransactionEditor.vue index 1e77895..333532a 100644 --- a/src/components/TransactionEditor.vue +++ b/src/components/TransactionEditor.vue @@ -320,6 +320,7 @@ await dbTransaction.commit(); + await emit('transaction-updated', {id: transaction.id}); await getCurrentWindow().close(); } diff --git a/src/pages/BalanceAssertionsView.vue b/src/pages/BalanceAssertionsView.vue index 838acbe..2da18d8 100644 --- a/src/pages/BalanceAssertionsView.vue +++ b/src/pages/BalanceAssertionsView.vue @@ -66,7 +66,8 @@ import { CheckIcon, PencilIcon, XMarkIcon } from '@heroicons/vue/24/outline'; import { PlusIcon } from '@heroicons/vue/16/solid'; import { invoke } from '@tauri-apps/api/core'; - import { ref } from 'vue'; + import { UnlistenFn, listen } from '@tauri-apps/api/event'; + import { onUnmounted, ref } from 'vue'; import { db } from '../db.ts'; import { pp } from '../display.ts'; @@ -97,4 +98,17 @@ } load(); + + // Refresh balance assertions list when assertion updated + let unlistenAssertionUpdated: UnlistenFn | null = null; + (async () => { + // Cannot await at top level without therefore do this in an async function + unlistenAssertionUpdated = await listen('balance-assertion-updated', async (_event) => { await load(); }); + })(); + + onUnmounted(() => { + if (unlistenAssertionUpdated !== null) { + unlistenAssertionUpdated(); + } + });