disable the sort button when fewer than two items are present

This commit is contained in:
MaysWind
2026-03-01 23:01:23 +08:00
parent 4845fdedfd
commit d2ce801277
7 changed files with 30 additions and 12 deletions
+15
View File
@@ -124,6 +124,20 @@ export const useAccountsStore = defineStore('accounts', () => {
return shownAccountCount; return shownAccountCount;
}); });
const maxCategoryAccountCount = computed<number>(() => {
let maxCount = 0;
for (const categorizedAccounts of values(allCategorizedAccountsMap.value)) {
const accountCount = categorizedAccounts.accounts.length;
if (accountCount > maxCount) {
maxCount = accountCount;
}
}
return maxCount;
});
function loadAccountList(accounts: Account[]): void { function loadAccountList(accounts: Account[]): void {
allAccounts.value = accounts; allAccounts.value = accounts;
allAccountsMap.value = {}; allAccountsMap.value = {};
@@ -1076,6 +1090,7 @@ export const useAccountsStore = defineStore('accounts', () => {
allVisiblePlainAccounts, allVisiblePlainAccounts,
allAvailableAccountsCount, allAvailableAccountsCount,
allVisibleAccountsCount, allVisibleAccountsCount,
maxCategoryAccountCount,
// functions // functions
updateAccountListInvalidState, updateAccountListInvalidState,
resetAccounts, resetAccounts,
@@ -39,6 +39,7 @@ export function useAccountListPageBase() {
const allAccounts = computed<Account[]>(() => accountsStore.allAccounts); const allAccounts = computed<Account[]>(() => accountsStore.allAccounts);
const allCategorizedAccountsMap = computed<Record<number, CategorizedAccount>>(() => accountsStore.allCategorizedAccountsMap); const allCategorizedAccountsMap = computed<Record<number, CategorizedAccount>>(() => accountsStore.allCategorizedAccountsMap);
const allAccountCount = computed<number>(() => accountsStore.allAvailableAccountsCount); const allAccountCount = computed<number>(() => accountsStore.allAvailableAccountsCount);
const maxCategoryAccountCount = computed<number>(() => accountsStore.maxCategoryAccountCount);
const netAssets = computed<string>(() => { const netAssets = computed<string>(() => {
const netAssets: number | HiddenAmount | NumberWithSuffix = accountsStore.getNetAssets(showAccountBalance.value); const netAssets: number | HiddenAmount | NumberWithSuffix = accountsStore.getNetAssets(showAccountBalance.value);
@@ -101,6 +102,7 @@ export function useAccountListPageBase() {
allAccounts, allAccounts,
allCategorizedAccountsMap, allCategorizedAccountsMap,
allAccountCount, allAccountCount,
maxCategoryAccountCount,
netAssets, netAssets,
totalAssets, totalAssets,
totalLiabilities, totalLiabilities,
+5 -5
View File
@@ -83,15 +83,15 @@
:title="tt('Change Group Display Order')" :title="tt('Change Group Display Order')"
v-if="allTagGroupsWithDefault.length >= 2" v-if="allTagGroupsWithDefault.length >= 2"
@click="showChangeGroupDisplayOrderDialog"></v-list-item> @click="showChangeGroupDisplayOrderDialog"></v-list-item>
<v-divider class="my-2" v-if="tags.length > 1"/> <v-divider class="my-2"/>
<v-list-item :prepend-icon="mdiSortAlphabeticalAscending" <v-list-item :prepend-icon="mdiSortAlphabeticalAscending"
:disabled="!tags || tags.length < 2"
:title="tt('Sort by Name (A to Z)')" :title="tt('Sort by Name (A to Z)')"
@click="sortByName(false)" @click="sortByName(false)"></v-list-item>
v-if="tags.length > 1"></v-list-item>
<v-list-item :prepend-icon="mdiSortAlphabeticalDescending" <v-list-item :prepend-icon="mdiSortAlphabeticalDescending"
:disabled="!tags || tags.length < 2"
:title="tt('Sort by Name (Z to A)')" :title="tt('Sort by Name (Z to A)')"
@click="sortByName(true)" @click="sortByName(true)"></v-list-item>
v-if="tags.length > 1"></v-list-item>
<v-divider class="my-2"/> <v-divider class="my-2"/>
<v-list-item :prepend-icon="mdiEyeOutline" <v-list-item :prepend-icon="mdiEyeOutline"
:title="tt('Show Hidden Transaction Tags')" :title="tt('Show Hidden Transaction Tags')"
+2 -1
View File
@@ -186,7 +186,7 @@
<f7-actions close-by-outside-click close-on-escape :opened="showMoreActionSheet" @actions:closed="showMoreActionSheet = false"> <f7-actions close-by-outside-click close-on-escape :opened="showMoreActionSheet" @actions:closed="showMoreActionSheet = false">
<f7-actions-group> <f7-actions-group>
<f7-actions-button @click="setSortable()">{{ tt('Sort') }}</f7-actions-button> <f7-actions-button :class="{ 'disabled': maxCategoryAccountCount < 2 }" @click="setSortable()">{{ tt('Sort') }}</f7-actions-button>
<f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Accounts') }}</f7-actions-button> <f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Accounts') }}</f7-actions-button>
<f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Accounts') }}</f7-actions-button> <f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Accounts') }}</f7-actions-button>
</f7-actions-group> </f7-actions-group>
@@ -252,6 +252,7 @@ const {
customAccountCategoryOrder, customAccountCategoryOrder,
allCategorizedAccountsMap, allCategorizedAccountsMap,
allAccountCount, allAccountCount,
maxCategoryAccountCount,
netAssets, netAssets,
totalAssets, totalAssets,
totalLiabilities, totalLiabilities,
+1 -1
View File
@@ -72,7 +72,7 @@
<f7-actions close-by-outside-click close-on-escape :opened="showMoreActionSheet" @actions:closed="showMoreActionSheet = false"> <f7-actions close-by-outside-click close-on-escape :opened="showMoreActionSheet" @actions:closed="showMoreActionSheet = false">
<f7-actions-group> <f7-actions-group>
<f7-actions-button @click="setSortable()">{{ tt('Sort') }}</f7-actions-button> <f7-actions-button :class="{ 'disabled': !categories || categories.length < 2 }" @click="setSortable()">{{ tt('Sort') }}</f7-actions-button>
<f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Transaction Categories') }}</f7-actions-button> <f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Transaction Categories') }}</f7-actions-button>
<f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Transaction Categories') }}</f7-actions-button> <f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Transaction Categories') }}</f7-actions-button>
</f7-actions-group> </f7-actions-group>
+4 -4
View File
@@ -194,10 +194,10 @@
<f7-actions-group v-if="allTagGroupsWithDefault.length >= 2"> <f7-actions-group v-if="allTagGroupsWithDefault.length >= 2">
<f7-actions-button @click="changeTagGroupDisplayOrder">{{ tt('Change Group Display Order') }}</f7-actions-button> <f7-actions-button @click="changeTagGroupDisplayOrder">{{ tt('Change Group Display Order') }}</f7-actions-button>
</f7-actions-group> </f7-actions-group>
<f7-actions-group v-if="tags.length > 1"> <f7-actions-group>
<f7-actions-button @click="setSortable()">{{ tt('Sort') }}</f7-actions-button> <f7-actions-button :class="{ 'disabled': !tags || tags.length < 2 }" @click="setSortable()">{{ tt('Sort') }}</f7-actions-button>
<f7-actions-button @click="sortByName(false)">{{ tt('Sort by Name (A to Z)') }}</f7-actions-button> <f7-actions-button :class="{ 'disabled': !tags || tags.length < 2 }" @click="sortByName(false)">{{ tt('Sort by Name (A to Z)') }}</f7-actions-button>
<f7-actions-button @click="sortByName(true)">{{ tt('Sort by Name (Z to A)') }}</f7-actions-button> <f7-actions-button :class="{ 'disabled': !tags || tags.length < 2 }" @click="sortByName(true)">{{ tt('Sort by Name (Z to A)') }}</f7-actions-button>
<f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Transaction Tags') }}</f7-actions-button> <f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Transaction Tags') }}</f7-actions-button>
<f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Transaction Tags') }}</f7-actions-button> <f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Transaction Tags') }}</f7-actions-button>
</f7-actions-group> </f7-actions-group>
+1 -1
View File
@@ -70,7 +70,7 @@
<f7-actions close-by-outside-click close-on-escape :opened="showMoreActionSheet" @actions:closed="showMoreActionSheet = false"> <f7-actions close-by-outside-click close-on-escape :opened="showMoreActionSheet" @actions:closed="showMoreActionSheet = false">
<f7-actions-group> <f7-actions-group>
<f7-actions-button @click="setSortable()">{{ tt('Sort') }}</f7-actions-button> <f7-actions-button :class="{ 'disabled': !templates || templates.length < 2 }" @click="setSortable()">{{ tt('Sort') }}</f7-actions-button>
<f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Transaction Templates') }}</f7-actions-button> <f7-actions-button v-if="!showHidden" @click="showHidden = true">{{ tt('Show Hidden Transaction Templates') }}</f7-actions-button>
<f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Transaction Templates') }}</f7-actions-button> <f7-actions-button v-if="showHidden" @click="showHidden = false">{{ tt('Hide Hidden Transaction Templates') }}</f7-actions-button>
</f7-actions-group> </f7-actions-group>