diff --git a/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue b/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue index 637b73c1..cfa399ce 100644 --- a/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue +++ b/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue @@ -6,7 +6,7 @@

{{ tt('Reconciliation Statement') }}

+ class="ml-2" :icon="true" :loading="loading" @click="reload(true)"> @@ -226,6 +226,7 @@ import { TransactionType } from '@/core/transaction.ts'; import { KnownFileType } from '@/core/file.ts'; import { Transaction, type TransactionReconciliationStatementResponseItem } from '@/models/transaction.ts'; +import { isEquals } from '@/lib/common.ts'; import { getCurrentUnixTime } from '@/lib/datetime.ts'; import { startDownloadFile } from '@/lib/ui/common.ts'; @@ -388,7 +389,7 @@ function open(options: { accountId: string, startTime: number, endTime: number } }); } -function reload(): void { +function reload(force: boolean): void { loading.value = true; transactionsStore.getReconciliationStatements({ @@ -396,6 +397,14 @@ function reload(): void { startTime: startTime.value, endTime: endTime.value }).then(result => { + if (force) { + if (isEquals(reconciliationStatements.value, result)) { + snackbar.value?.showMessage('Data is up to date'); + } else { + snackbar.value?.showMessage('Data has been updated'); + } + } + reconciliationStatements.value = result; loading.value = false; }).catch(error => { @@ -415,7 +424,7 @@ function addTransaction(): void { snackbar.value?.showMessage(result.message); } - reload(); + reload(false); }).catch(error => { if (error) { snackbar.value?.showError(error); @@ -469,7 +478,7 @@ function updateClosingBalance(): void { snackbar.value?.showMessage(result.message); } - reload(); + reload(false); }).catch(error => { if (error) { snackbar.value?.showError(error); @@ -500,7 +509,7 @@ function showTransaction(transaction: TransactionReconciliationStatementResponse snackbar.value?.showMessage(result.message); } - reload(); + reload(false); }).catch(error => { if (error) { snackbar.value?.showError(error); diff --git a/src/views/mobile/accounts/ReconciliationStatementPage.vue b/src/views/mobile/accounts/ReconciliationStatementPage.vue index 5add1e87..37c3fd6f 100644 --- a/src/views/mobile/accounts/ReconciliationStatementPage.vue +++ b/src/views/mobile/accounts/ReconciliationStatementPage.vue @@ -292,7 +292,7 @@ import { TransactionType } from '@/core/transaction.ts'; import { TRANSACTION_MIN_AMOUNT, TRANSACTION_MAX_AMOUNT } from '@/consts/transaction.ts'; import { type TransactionReconciliationStatementResponseItem } from '@/models/transaction.ts'; -import { isDefined } from '@/lib/common.ts'; +import { isDefined, isEquals } from '@/lib/common.ts'; import { getCurrentUnixTime, getDateTypeByDateRange, @@ -481,7 +481,11 @@ function reload(force: boolean): void { endTime: endTime.value }).then(result => { if (force) { - showToast('Data has been updated'); + if (isEquals(reconciliationStatements.value, result)) { + showToast('Data is up to date'); + } else { + showToast('Data has been updated'); + } } loading.value = false;