diff --git a/src/components/context/NavbarContext.tsx b/src/components/context/NavbarContext.tsx index e4e64d53..c3bd8842 100644 --- a/src/components/context/NavbarContext.tsx +++ b/src/components/context/NavbarContext.tsx @@ -14,7 +14,7 @@ type ContextType = { // AppBar title title: string - setTitle: React.Dispatch> + setTitle: (title: string) => void // AppBar action buttons action: any diff --git a/src/components/navbar/NavBarContextProvider.tsx b/src/components/navbar/NavBarContextProvider.tsx index 81a4dc4c..aca7d00d 100644 --- a/src/components/navbar/NavBarContextProvider.tsx +++ b/src/components/navbar/NavBarContextProvider.tsx @@ -21,11 +21,16 @@ export default function NavBarProvider({ children }:IProps) { value:
, }); + const updateTitle = (newTitle: string) => { + document.title = `${newTitle} - Tachidesk`; + setTitle(newTitle); + }; + const value = { defaultBackTo, setDefaultBackTo, title, - setTitle, + setTitle: updateTitle, action, setAction, override, diff --git a/src/screens/Reader.tsx b/src/screens/Reader.tsx index 4c2cef0c..73d72c9b 100644 --- a/src/screens/Reader.tsx +++ b/src/screens/Reader.tsx @@ -85,6 +85,14 @@ export default function Reader() { requestUpdateMangaMetadata(manga, [[key, value]]).catch(() => makeToast('Failed to save the reader settings to the server', 'warning')); }; + useEffect(() => { + if (!manga?.title || (chapter as IChapter)?.name === 'Loading...') { + setTitle(`Reader - Manga ${mangaId} Chapter ${chapterIndex}`); + } else { + setTitle(`${manga.title}: ${(chapter as IChapter).name}`); + } + }, [manga, chapter]); + useEffect(() => { if (!areDefaultSettingsLoading && !isMangaLoading) { checkAndHandleMissingStoredReaderSettings(manga, 'manga', defaultSettings).catch(() => {}); @@ -115,12 +123,10 @@ export default function Reader() { useEffect(() => { setIsMangaLoading(true); - setTitle('Reader'); client.get(`/api/v1/manga/${mangaId}/`) .then((response) => response.data) .then((data: IManga) => { setManga(data); - setTitle(data.title); setIsMangaLoading(false); }); }, [mangaId]);