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;