From fa56fc4d8e542fb0bd62f365c9794fb891332c93 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Thu, 23 Apr 2026 20:23:29 +0200 Subject: [PATCH] Show searching/migrating entries at the top --- .../migration/screens/MigrationExecute.tsx | 18 +++++++++++++++--- .../migration/screens/MigrationSearch.tsx | 18 +++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/features/migration/screens/MigrationExecute.tsx b/src/features/migration/screens/MigrationExecute.tsx index 0e6cf595..722818e1 100644 --- a/src/features/migration/screens/MigrationExecute.tsx +++ b/src/features/migration/screens/MigrationExecute.tsx @@ -30,9 +30,21 @@ export const MigrationExecute = () => { const entryList = useMemo(() => Object.values(entries), [entries]); const migratingEntries = useMemo( () => - entryList.filter((entry) => - [MigrationEntryStatus.SEARCH_COMPLETE, MigrationEntryStatus.MIGRATING].includes(entry.status), - ), + entryList + .filter((entry) => + [MigrationEntryStatus.SEARCH_COMPLETE, MigrationEntryStatus.MIGRATING].includes(entry.status), + ) + .toSorted((a, b) => { + if (a.status === MigrationEntryStatus.MIGRATING && b.status !== MigrationEntryStatus.MIGRATING) { + return -1; + } + + if (a.status !== MigrationEntryStatus.MIGRATING && b.status === MigrationEntryStatus.MIGRATING) { + return 1; + } + + return entryList.indexOf(a) - entryList.indexOf(b); + }), [entryList], ); const migratedEntries = useMemo( diff --git a/src/features/migration/screens/MigrationSearch.tsx b/src/features/migration/screens/MigrationSearch.tsx index 73bab3a9..4ff7381b 100644 --- a/src/features/migration/screens/MigrationSearch.tsx +++ b/src/features/migration/screens/MigrationSearch.tsx @@ -33,9 +33,21 @@ export const MigrationSearch = () => { const entryList = useMemo(() => Object.values(entries), [entries]); const searchingEntries = useMemo( () => - entryList.filter((entry) => - [MigrationEntryStatus.PENDING, MigrationEntryStatus.SEARCHING].includes(entry.status), - ), + entryList + .filter((entry) => + [MigrationEntryStatus.PENDING, MigrationEntryStatus.SEARCHING].includes(entry.status), + ) + .toSorted((a, b) => { + if (a.status === MigrationEntryStatus.SEARCHING && b.status !== MigrationEntryStatus.SEARCHING) { + return -1; + } + + if (a.status !== MigrationEntryStatus.SEARCHING && b.status === MigrationEntryStatus.SEARCHING) { + return 1; + } + + return entryList.indexOf(a) - entryList.indexOf(b); + }), [entryList], ); const failedEntries = useMemo(