WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit d4fee27

Browse files
committed
fix the result of detecting whether a transaction has been modified is wrong when no default account is set
1 parent 245fdd7 commit d4fee27

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

src/stores/transaction.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ export const useTransactionsStore = defineStore('transactions', () => {
453453
}
454454
}
455455

456-
function isTransactionDraftModified(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string): boolean {
456+
function isTransactionDraftModified(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string, firstVisibleAccountId?: string): boolean {
457457
if (!transaction) {
458458
return false;
459459
}
@@ -466,7 +466,7 @@ export const useTransactionsStore = defineStore('transactions', () => {
466466
return true;
467467
}
468468

469-
if (transaction.sourceAccountId && transaction.sourceAccountId !== '0' && transaction.sourceAccountId !== userStore.currentUserDefaultAccountId && transaction.sourceAccountId !== initAccountId) {
469+
if (transaction.sourceAccountId && transaction.sourceAccountId !== '0' && transaction.sourceAccountId !== userStore.currentUserDefaultAccountId && ((userStore.currentUserDefaultAccountId !== '' && userStore.currentUserDefaultAccountId !== '0') || transaction.sourceAccountId !== firstVisibleAccountId) && transaction.sourceAccountId !== initAccountId) {
470470
return true;
471471
}
472472

@@ -517,14 +517,14 @@ export const useTransactionsStore = defineStore('transactions', () => {
517517
return false;
518518
}
519519

520-
function saveTransactionDraft(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string): void {
520+
function saveTransactionDraft(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string, firstVisibleAccountId?: string): void {
521521
if (settingsStore.appSettings.autoSaveTransactionDraft !== 'enabled' && settingsStore.appSettings.autoSaveTransactionDraft !== 'confirmation') {
522522
clearTransactionDraft();
523523
return;
524524
}
525525

526526
if (transaction) {
527-
if (!isTransactionDraftModified(transaction, initAmount, initCategoryId, initAccountId, initTagIds)) {
527+
if (!isTransactionDraftModified(transaction, initAmount, initCategoryId, initAccountId, initTagIds, firstVisibleAccountId)) {
528528
clearTransactionDraft();
529529
return;
530530
}

src/views/base/transactions/TransactionEditPageBase.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ export function useTransactionEditPageBase(type: TransactionEditPageType, initMo
108108
const allCategoriesMap = computed<Record<string, TransactionCategory>>(() => transactionCategoriesStore.allTransactionCategoriesMap);
109109
const allTags = computed<TransactionTag[]>(() => transactionTagsStore.allTransactionTags);
110110
const allTagsMap = computed<Record<string, TransactionTag>>(() => transactionTagsStore.allTransactionTagsMap);
111+
const firstVisibleAccountId = computed<string | undefined>(() => allVisibleAccounts.value && allVisibleAccounts.value[0] ? allVisibleAccounts.value[0].id : undefined);
111112

112113
const hasAvailableExpenseCategories = computed<boolean>(() => transactionCategoriesStore.hasAvailableExpenseCategories);
113114
const hasAvailableIncomeCategories = computed<boolean>(() => transactionCategoriesStore.hasAvailableIncomeCategories);
@@ -436,6 +437,7 @@ export function useTransactionEditPageBase(type: TransactionEditPageType, initMo
436437
allCategoriesMap,
437438
allTags,
438439
allTagsMap,
440+
firstVisibleAccountId,
439441
hasAvailableExpenseCategories,
440442
hasAvailableIncomeCategories,
441443
hasAvailableTransferCategories,

src/views/desktop/transactions/list/dialogs/EditDialog.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,7 @@ const {
617617
allCategoriesMap,
618618
allTags,
619619
allTagsMap,
620+
firstVisibleAccountId,
620621
hasAvailableExpenseCategories,
621622
hasAvailableIncomeCategories,
622623
hasAvailableTransferCategories,
@@ -702,7 +703,7 @@ const isAllFilteredTagHidden = computed<boolean>(() => {
702703
703704
const isTransactionModified = computed<boolean>(() => {
704705
if (mode.value === TransactionEditPageMode.Add) {
705-
return transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value);
706+
return transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value);
706707
} else if (mode.value === TransactionEditPageMode.Edit) {
707708
return true;
708709
} else {
@@ -1061,9 +1062,9 @@ function cancel(): void {
10611062
}
10621063
10631064
if (settingsStore.appSettings.autoSaveTransactionDraft === 'confirmation') {
1064-
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value)) {
1065+
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value)) {
10651066
confirmDialog.value?.open('Do you want to save this transaction draft?').then(() => {
1066-
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value);
1067+
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value);
10671068
doClose();
10681069
}).catch(() => {
10691070
transactionsStore.clearTransactionDraft();
@@ -1074,7 +1075,7 @@ function cancel(): void {
10741075
doClose();
10751076
}
10761077
} else if (settingsStore.appSettings.autoSaveTransactionDraft === 'enabled') {
1077-
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value);
1078+
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value);
10781079
doClose();
10791080
} else {
10801081
doClose();

src/views/mobile/transactions/EditPage.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,7 @@ const {
567567
allCategoriesMap,
568568
allTags,
569569
allTagsMap,
570+
firstVisibleAccountId,
570571
hasAvailableExpenseCategories,
571572
hasAvailableIncomeCategories,
572573
hasAvailableTransferCategories,
@@ -1235,17 +1236,17 @@ function onPageBeforeOut(): void {
12351236
const initAmount: number | undefined = query['amount'] ? parseInt(query['amount']) : undefined;
12361237
12371238
if (settingsStore.appSettings.autoSaveTransactionDraft === 'confirmation') {
1238-
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'])) {
1239+
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'], firstVisibleAccountId.value)) {
12391240
showConfirm('Do you want to save this transaction draft?', () => {
1240-
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds']);
1241+
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'], firstVisibleAccountId.value);
12411242
}, () => {
12421243
transactionsStore.clearTransactionDraft();
12431244
});
12441245
} else {
12451246
transactionsStore.clearTransactionDraft();
12461247
}
12471248
} else if (settingsStore.appSettings.autoSaveTransactionDraft === 'enabled') {
1248-
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds']);
1249+
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'], firstVisibleAccountId.value);
12491250
}
12501251
}
12511252

0 commit comments

Comments
 (0)