From 7f232a02b1fe3f883ecb6a6ef4b1b223133c94fe Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Sun, 21 Dec 2025 21:28:17 -0700 Subject: [PATCH] fix languages routing --- src/components/player/atoms/Settings.tsx | 16 ++++++++ .../player/atoms/settings/CaptionsView.tsx | 6 ++- .../atoms/settings/LanguageSubtitlesView.tsx | 41 ++++++++----------- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/components/player/atoms/Settings.tsx b/src/components/player/atoms/Settings.tsx index 064b78a0..355510c9 100644 --- a/src/components/player/atoms/Settings.tsx +++ b/src/components/player/atoms/Settings.tsx @@ -73,6 +73,22 @@ function SettingsOverlay({ id }: { id: string }) { + + + {chosenLanguage && ( + + )} + + diff --git a/src/components/player/atoms/settings/CaptionsView.tsx b/src/components/player/atoms/settings/CaptionsView.tsx index c9bb969d..614ed9fb 100644 --- a/src/components/player/atoms/settings/CaptionsView.tsx +++ b/src/components/player/atoms/settings/CaptionsView.tsx @@ -557,7 +557,11 @@ export function CaptionsView({ rightText={captionsForLang.length.toString()} onClick={() => { onChooseLanguage?.(language); - router.navigate("/captions/languages"); + router.navigate( + backLink + ? "/captions/languages" + : "/captionsOverlay/languagesOverlay", + ); }} > diff --git a/src/components/player/atoms/settings/LanguageSubtitlesView.tsx b/src/components/player/atoms/settings/LanguageSubtitlesView.tsx index cd1656a7..f4cad7d8 100644 --- a/src/components/player/atoms/settings/LanguageSubtitlesView.tsx +++ b/src/components/player/atoms/settings/LanguageSubtitlesView.tsx @@ -15,11 +15,13 @@ import { CaptionOption } from "./CaptionsView"; export interface LanguageSubtitlesViewProps { id: string; language: string; + overlayBackLink?: boolean; } export function LanguageSubtitlesView({ id, language, + overlayBackLink, }: LanguageSubtitlesViewProps) { const { t } = useTranslation(); const router = useOverlayRouter(id); @@ -56,16 +58,8 @@ export function LanguageSubtitlesView({ [selectCaptionById, setCurrentlyDownloading], ); - const languageName = useMemo(() => { - return ( - getPrettyLanguageNameFromLocale(language) || - t("player.menus.subtitles.unknownLanguage") - ); - }, [language, t]); - - const renderSubtitleOption = ( - v: CaptionListItem & { languageName: string }, - ) => { + // Render subtitle option + const renderSubtitleOption = (v: CaptionListItem) => { const handleDoubleClick = async () => { const copyData = { id: v.id, @@ -79,11 +73,12 @@ export function LanguageSubtitlesView({ isHearingImpaired: v.isHearingImpaired, source: v.source, encoding: v.encoding, - delay: 0, // Will be set from current delay if needed + delay: 0, }; try { await navigator.clipboard.writeText(JSON.stringify(copyData)); + // Could add a toast notification here if needed } catch (err) { console.error("Failed to copy subtitle data:", err); } @@ -109,14 +104,22 @@ export function LanguageSubtitlesView({ subtitleEncoding={v.encoding} isHearingImpaired={v.isHearingImpaired} > - {v.languageName} + {v.display || v.id} ); }; + const languageName = + getPrettyLanguageNameFromLocale(language) || + t("player.menus.subtitles.unknownLanguage"); + return ( <> - router.navigate("/captions")}> + + router.navigate(overlayBackLink ? "/captionsOverlay" : "/captions") + } + > {languageName} @@ -124,16 +127,8 @@ export function LanguageSubtitlesView({ - {/* Language subtitles */} {languageCaptions.length > 0 ? ( - languageCaptions.map((caption) => ( -
- {renderSubtitleOption({ - ...caption, - languageName, - })} -
- )) + languageCaptions.map(renderSubtitleOption) ) : (
{t("player.menus.subtitles.notFound")} @@ -141,7 +136,7 @@ export function LanguageSubtitlesView({ )} {/* Loading indicator */} - {isLoadingExternalSubtitles && ( + {isLoadingExternalSubtitles && languageCaptions.length === 0 && (
{t("player.menus.subtitles.loadingExternal") || "Loading external subtitles..."}