From 7bb0425c81171270e5b05e5277e463c1e750476e Mon Sep 17 00:00:00 2001 From: dymanoid <9433345+dymanoid@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:44:44 +0200 Subject: [PATCH] Consider account sort order in autocomplete (#2896) * Consider account sort order in autocomplete * Add release notes --- .../components/autocomplete/AccountAutocomplete.tsx | 13 ++++++------- packages/loot-core/src/client/actions/account.ts | 1 + packages/loot-core/src/server/db/index.ts | 2 +- upcoming-release-notes/2896.md | 6 ++++++ 4 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 upcoming-release-notes/2896.md diff --git a/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx index 210eebaf0..ba66fee26 100644 --- a/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx @@ -122,13 +122,12 @@ export function AccountAutocomplete({ .filter(item => { return includeClosedAccounts ? item : !item.closed; }) - .sort((a, b) => { - if (a.closed === b.closed) { - return a.offbudget === b.offbudget ? 0 : a.offbudget ? 1 : -1; - } else { - return a.closed ? 1 : -1; - } - }); + .sort( + (a, b) => + a.closed - b.closed || + a.offbudget - b.offbudget || + a.sort_order - b.sort_order, + ); return ( <Autocomplete diff --git a/packages/loot-core/src/client/actions/account.ts b/packages/loot-core/src/client/actions/account.ts index 6eafe4edb..120d20b9d 100644 --- a/packages/loot-core/src/client/actions/account.ts +++ b/packages/loot-core/src/client/actions/account.ts @@ -243,5 +243,6 @@ export function moveAccount(id, targetId) { return async (dispatch: Dispatch) => { await send('account-move', { id, targetId }); dispatch(getAccounts()); + dispatch(getPayees()); }; } diff --git a/packages/loot-core/src/server/db/index.ts b/packages/loot-core/src/server/db/index.ts index 65cae417c..507401875 100644 --- a/packages/loot-core/src/server/db/index.ts +++ b/packages/loot-core/src/server/db/index.ts @@ -536,7 +536,7 @@ export function getPayees() { SELECT p.*, COALESCE(a.name, p.name) AS name FROM payees p LEFT JOIN accounts a ON (p.transfer_acct = a.id AND a.tombstone = 0) WHERE p.tombstone = 0 AND (p.transfer_acct IS NULL OR a.id IS NOT NULL) - ORDER BY p.transfer_acct IS NULL DESC, p.name COLLATE NOCASE + ORDER BY p.transfer_acct IS NULL DESC, p.name COLLATE NOCASE, a.offbudget, a.sort_order `); } diff --git a/upcoming-release-notes/2896.md b/upcoming-release-notes/2896.md new file mode 100644 index 000000000..238bc064e --- /dev/null +++ b/upcoming-release-notes/2896.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [dymanoid] +--- + +Respect the user-defined account sort order in all autocomplete lists. -- GitLab