diff --git a/CHANGELOG.md b/CHANGELOG.md index 862cc73a..d178937a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - (**Migration**) Sort manga to migrate selection by title and by recently added to the library - (**Migration**) Sort destination source selection by same order as browse source page - (**Migration**) Sort entries in search/execution page by title +- (**Migration**) Prevent a manual selected match from getting automatically overwritten by a new-found match ### Fixed @@ -23,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - (**Migration**) Fix showing an empty "Available" source group header when all sources are selected - (**Migration**) Fix showing no info message when no sources are available to select as destinations - (**Migration**) Fix duplicated search matches after resuming the migration search +- (**Migration**) Fix search progress not getting updated after a manual search - (**Reader**) Fix scrollbar appearing with "fit to widt/height/screen" page scale mode and applied safe area insets - (**Reader**) Fix wrongly positioned mobile progress bar current page indicator - (**Reader**) Fix mobile progress bar previous/next chapter button visibility on hover and while disabled diff --git a/src/features/migration/Migration.types.ts b/src/features/migration/Migration.types.ts index 3deb5d69..a5bb9447 100644 --- a/src/features/migration/Migration.types.ts +++ b/src/features/migration/Migration.types.ts @@ -121,6 +121,7 @@ export interface TMigrationEntry { error: string | undefined; isExcluded: boolean; areMatchesExpanded: boolean; + isManualSelection: boolean; } export type MigratableEntry = NonNullableProperty; diff --git a/src/features/migration/MigrationManager.ts b/src/features/migration/MigrationManager.ts index e764401c..e2c2172c 100644 --- a/src/features/migration/MigrationManager.ts +++ b/src/features/migration/MigrationManager.ts @@ -273,6 +273,7 @@ export class MigrationManager { error: entry.error, isExcluded: entry.isExcluded, areMatchesExpanded: entry.areMatchesExpanded, + isManualSelection: entry.isManualSelection, } satisfies TMigrationEntry; if (isEqual(entry, updatedEntry)) { @@ -346,6 +347,7 @@ export class MigrationManager { isExcluded: false, areMatchesExpanded: false, error: undefined, + isManualSelection: false, }, ]), ); @@ -592,6 +594,7 @@ export class MigrationManager { entry.status = MigrationEntryStatus.SEARCH_COMPLETE; } + entry.isManualSelection = true; entry.selectedMatchMangaId = targetMangaId; entry.selectedMatchSourceId = targetSourceId; } @@ -915,6 +918,7 @@ export class MigrationManager { !draftMatchEntry); const isPreferredMatch = + !draftEntry.isManualSelection && !ignoreOutdatedMatch && (isPreferredSourcePriorityMatch || isPreferredChapterNumberMatch); if (isPreferredMatch) {