diff --git a/src/components/player/atoms/settings/CaptionsView.tsx b/src/components/player/atoms/settings/CaptionsView.tsx index e6749147..9129326c 100644 --- a/src/components/player/atoms/settings/CaptionsView.tsx +++ b/src/components/player/atoms/settings/CaptionsView.tsx @@ -38,6 +38,7 @@ export interface CaptionOptionProps { error?: React.ReactNode; flag?: boolean; translatable?: boolean; + isTranslatedTarget?: boolean; subtitleUrl?: string; subtitleType?: string; // subtitle details from wyzie @@ -61,12 +62,13 @@ function CaptionOptionRightSide(props: CaptionOptionProps) { { e.stopPropagation(); diff --git a/src/components/player/atoms/settings/LanguageSubtitlesView.tsx b/src/components/player/atoms/settings/LanguageSubtitlesView.tsx index 47fc79b7..1e51b8b0 100644 --- a/src/components/player/atoms/settings/LanguageSubtitlesView.tsx +++ b/src/components/player/atoms/settings/LanguageSubtitlesView.tsx @@ -129,13 +129,22 @@ export function LanguageSubtitlesView({ v.id === selectedCaptionId || v.id === currentTranslateTask?.targetCaption?.id } - loading={v.id === currentlyDownloading && downloadReq.loading} + disabled={!!currentTranslateTask && !currentTranslateTask.done} + loading={ + (v.id === currentlyDownloading && downloadReq.loading) || + (!!currentTranslateTask && + v.id === currentTranslateTask.targetCaption.id && + !currentTranslateTask.done) + } error={ v.id === currentlyDownloading && downloadReq.error ? downloadReq.error.toString() : undefined } - onClick={() => startDownload(v.id)} + onClick={() => + (!currentTranslateTask || currentTranslateTask.done) && + startDownload(v.id) + } onTranslate={() => { onTranslateSubtitle?.(v); router.navigate( @@ -144,6 +153,7 @@ export function LanguageSubtitlesView({ : "/captionsOverlay/translateSubtitleOverlay", ); }} + isTranslatedTarget={v.id === currentTranslateTask?.targetCaption?.id} onDoubleClick={handleDoubleClick} flag translatable diff --git a/src/components/player/atoms/settings/TranslateSubtitleView.tsx b/src/components/player/atoms/settings/TranslateSubtitleView.tsx index 705d61ba..b515adfe 100644 --- a/src/components/player/atoms/settings/TranslateSubtitleView.tsx +++ b/src/components/player/atoms/settings/TranslateSubtitleView.tsx @@ -97,10 +97,9 @@ export function TranslateSubtitleView({ const tCaption = translateTask.translatedCaption!; setDirectCaption(tCaption, { id: tCaption.id, + url: "", language: tCaption.language, needsProxy: false, - url: "", - source: "translation", }); } }, [translateTask, setDirectCaption]); @@ -140,10 +139,7 @@ export function TranslateSubtitleView({ translateTask.targetLanguage === langCode } onClick={() => - !translateTask || - translateTask.targetCaption.id !== caption.id || - translateTask.done || - translateTask.error + !translateTask || translateTask.done || translateTask.error ? onClick() : undefined } @@ -180,7 +176,14 @@ export function TranslateSubtitleView({
- {availableLanguages.map(renderTargetLang)} + {availableLanguages + .filter( + (lang) => + lang !== caption.language && + !lang.includes(caption.language) && + !caption.language.includes(lang), + ) + .map(renderTargetLang)}
);