diff --git a/apps/readest-app/src-tauri/src/lib.rs b/apps/readest-app/src-tauri/src/lib.rs index 3e143e58..63a07e3b 100644 --- a/apps/readest-app/src-tauri/src/lib.rs +++ b/apps/readest-app/src-tauri/src/lib.rs @@ -77,7 +77,7 @@ async fn list_fonts() -> Result, String> { let font_collection = font_enumeration::Collection::new().unwrap(); let mut fonts = Vec::new(); for font in font_collection.all() { - fonts.push(font.font_name.clone()); + fonts.push(font.family_name.clone()); } Ok(fonts) } diff --git a/apps/readest-app/src/app/library/components/BookItem.tsx b/apps/readest-app/src/app/library/components/BookItem.tsx index c266db1f..7c3ab18a 100644 --- a/apps/readest-app/src/app/library/components/BookItem.tsx +++ b/apps/readest-app/src/app/library/components/BookItem.tsx @@ -7,6 +7,7 @@ import { LiaCloudUploadAltSolid, LiaCloudDownloadAltSolid } from 'react-icons/li import { Book } from '@/types/book'; import { useEnv } from '@/context/EnvContext'; import { useResponsiveSize } from '@/hooks/useResponsiveSize'; +import { formatAuthors, formatTitle } from '@/utils/book'; import ReadingProgress from './ReadingProgress'; interface BookItemProps { @@ -61,11 +62,13 @@ const BookItem: React.FC = ({ )} >
- {book.title} + {formatTitle(book.title)}
- {book.author} + + {formatAuthors(book.author)} +
{(selectedBooks.includes(book.hash) || clickedBookHash === book.hash) && ( diff --git a/apps/readest-app/src/app/library/components/GroupItem.tsx b/apps/readest-app/src/app/library/components/GroupItem.tsx index 416b7056..ce64cd11 100644 --- a/apps/readest-app/src/app/library/components/GroupItem.tsx +++ b/apps/readest-app/src/app/library/components/GroupItem.tsx @@ -1,5 +1,6 @@ import Image from 'next/image'; import { BooksGroup } from '@/types/book'; +import { formatAuthors, formatTitle } from '@/utils/book'; import ReadingProgress from './ReadingProgress'; interface GroupItemProps { @@ -21,8 +22,10 @@ const GroupItem: React.FC = ({ group }) => { />
-

{book.title}

-

{book.author}

+

{formatTitle(book.title)}

+

+ {formatAuthors(book.author)} +

diff --git a/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx b/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx index f77deef1..547b861d 100644 --- a/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx +++ b/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx @@ -25,7 +25,7 @@ const FontDropdown: React.FC = ({ const _ = useTranslation(); const iconSize16 = useResponsiveSize(16); const defaultIconSize = useDefaultIconSize(); - const selectedOption = options.find((option) => option.option === selected)!; + const selectedOption = options.find((option) => option.option === selected) || options[0]!; return (
{window.innerWidth >= 400 && ( diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts index 765abc36..08767924 100644 --- a/apps/readest-app/src/services/appService.ts +++ b/apps/readest-app/src/services/appService.ts @@ -156,7 +156,7 @@ export abstract class BaseAppService implements AppService { hash, format, title: formatTitle(loadedBook.metadata.title), - author: formatAuthors(loadedBook.metadata.language, loadedBook.metadata.author), + author: formatAuthors(loadedBook.metadata.author, loadedBook.metadata.language), createdAt: existingBook ? existingBook.createdAt : Date.now(), uploadedAt: existingBook ? existingBook.uploadedAt : null, downloadedAt: Date.now(), diff --git a/apps/readest-app/src/utils/book.ts b/apps/readest-app/src/utils/book.ts index 84b4f641..f2fbd24b 100644 --- a/apps/readest-app/src/utils/book.ts +++ b/apps/readest-app/src/utils/book.ts @@ -64,8 +64,8 @@ export const getBookLangCode = (lang: string | string[] | undefined) => { }; export const formatAuthors = ( - bookLang: string | string[] | undefined, contributors: string | Contributor | [string | Contributor], + bookLang?: string | string[], ) => { const langCode = getBookLangCode(bookLang); return Array.isArray(contributors) diff --git a/apps/readest-app/src/utils/font.ts b/apps/readest-app/src/utils/font.ts index 5c12e379..2f761e0b 100644 --- a/apps/readest-app/src/utils/font.ts +++ b/apps/readest-app/src/utils/font.ts @@ -17,7 +17,7 @@ export const getSysFontsList = async (): Promise => { const osPlatform = getOSPlatform(); if (FONT_ENUM_SUPPORTED_OS_PLATFORMS.includes(osPlatform)) { const fonts = await invoke('list_fonts'); - cachedSysFonts = fonts.filter((font) => !isSymbolicFontName(font)).sort(); + cachedSysFonts = [...new Set(fonts.filter((font) => !isSymbolicFontName(font)))].sort(); console.log('Fetched font list:', cachedSysFonts); return cachedSysFonts; } else {