From 7ef353aa2ea48697c88d0b7ba63f226b6f747ddd Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Wed, 14 Jan 2026 23:37:46 +0100 Subject: [PATCH] Fix missing pinned sources in source language filter --- CHANGELOG.md | 5 ++--- src/base/components/inputs/LanguageSelect.tsx | 3 +-- src/features/browse/sources/Sources.tsx | 4 +++- src/features/source/services/Sources.ts | 7 ++++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd26bca..10aa6bd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,18 +9,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Added - (**Theme**) Add an option to save the dynamic color theme on the manga page as a custom theme -### Changed -- (**Theme**) Change "pure black mode" paper background color to true black - ### Changed - (**General**) Preserve refresh token (UI Login) over sessions - (**Theme**) Improve automatic theme background colors - (**Theme**) Adjust "primary color" of dynamic color theme on manga pages - (**Theme**) Increase max length of custom theme names to 32 (previously 16) +- (**Theme**) Change "pure black mode" paper background color to true black - (**Library**) Improve library manga sorting ### Fixed - (**Library**) Fix total library size chip color in light mode +- (**Browse**) Fix missing pinned sources in the source language filter ## [20251230.01] (r2937) - 2025-12-30 diff --git a/src/base/components/inputs/LanguageSelect.tsx b/src/base/components/inputs/LanguageSelect.tsx index c275b06f..09298910 100644 --- a/src/base/components/inputs/LanguageSelect.tsx +++ b/src/base/components/inputs/LanguageSelect.tsx @@ -29,10 +29,9 @@ interface IProps { languages: string[]; } -export function LanguageSelect(props: IProps) { +export function LanguageSelect({ selectedLanguages, setSelectedLanguages, languages }: IProps) { const { t } = useLingui(); - const { selectedLanguages, setSelectedLanguages, languages } = props; const [tmpSelectedLanguages, setTmpSelectedLanguages] = useState(toUniqueLanguageCodes(selectedLanguages)); const [open, setOpen] = useState(false); diff --git a/src/features/browse/sources/Sources.tsx b/src/features/browse/sources/Sources.tsx index 922ceed6..63c14fb5 100644 --- a/src/features/browse/sources/Sources.tsx +++ b/src/features/browse/sources/Sources.tsx @@ -58,7 +58,9 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) { ); const sourcesByLanguage = useMemo(() => { const lastUsedSource = SourceService.getLastUsedSource(lastUsedSourceId, filteredSources); - const groupedByLanguageTuple = Object.entries(SourceService.groupByLanguage(filteredSources)); + const groupedByLanguageTuple = Object.entries( + SourceService.groupByLanguage(filteredSources, { withPinnedGroup: true }), + ); if (lastUsedSource) { return [ diff --git a/src/features/source/services/Sources.ts b/src/features/source/services/Sources.ts index f7b1ad34..af13d9d3 100644 --- a/src/features/source/services/Sources.ts +++ b/src/features/source/services/Sources.ts @@ -52,9 +52,10 @@ export class Sources { static groupByLanguage( sources: Source[], + { withPinnedGroup = false }: { withPinnedGroup?: boolean } = {}, ): Record { const sourcesByLanguage = Object.groupBy(sources, (source) => { - if (getSourceMetadata(source).isPinned) { + if (withPinnedGroup && getSourceMetadata(source).isPinned) { return DefaultLanguage.PINNED; } @@ -64,11 +65,11 @@ export class Sources { const isAPinned = a === DefaultLanguage.PINNED; const isBPinned = b === DefaultLanguage.PINNED; - if (isAPinned) { + if (withPinnedGroup && isAPinned) { return -1; } - if (isBPinned) { + if (withPinnedGroup && isBPinned) { return 1; }