mirror of
https://github.com/p-stream/p-stream.git
synced 2026-05-20 16:21:46 +00:00
move to captions view
This commit is contained in:
parent
19af760317
commit
64abb25560
4 changed files with 13 additions and 7 deletions
|
|
@ -764,6 +764,7 @@
|
||||||
"SourceChoice": "Source Subtitles",
|
"SourceChoice": "Source Subtitles",
|
||||||
"OpenSubtitlesChoice": "External Subtitles",
|
"OpenSubtitlesChoice": "External Subtitles",
|
||||||
"loadingExternal": "Loading external subtitles...",
|
"loadingExternal": "Loading external subtitles...",
|
||||||
|
"transcriptChoice": "Transcript",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Custom subtitles",
|
"backlink": "Custom subtitles",
|
||||||
"delay": "Subtitle delay",
|
"delay": "Subtitle delay",
|
||||||
|
|
|
||||||
|
|
@ -541,6 +541,12 @@ export function CaptionsView({
|
||||||
selected={selectedCaptionId === "pasted-caption"}
|
selected={selectedCaptionId === "pasted-caption"}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
{selectedCaptionId && (
|
||||||
|
<Menu.ChevronLink onClick={() => router.navigate("/transcript")}>
|
||||||
|
{t("player.menus.subtitles.transcriptChoice")}
|
||||||
|
</Menu.ChevronLink>
|
||||||
|
)}
|
||||||
|
|
||||||
<div className="h-1" />
|
<div className="h-1" />
|
||||||
|
|
||||||
{/* Search input */}
|
{/* Search input */}
|
||||||
|
|
|
||||||
|
|
@ -151,9 +151,6 @@ export function SettingsMenu({ id }: { id: string }) {
|
||||||
<Menu.ChevronLink onClick={() => router.navigate("/playback")}>
|
<Menu.ChevronLink onClick={() => router.navigate("/playback")}>
|
||||||
{t("player.menus.settings.playbackItem")}
|
{t("player.menus.settings.playbackItem")}
|
||||||
</Menu.ChevronLink>
|
</Menu.ChevronLink>
|
||||||
<Menu.ChevronLink onClick={() => router.navigate("/transcript")}>
|
|
||||||
Transcript
|
|
||||||
</Menu.ChevronLink>
|
|
||||||
</Menu.Section>
|
</Menu.Section>
|
||||||
</Menu.Card>
|
</Menu.Card>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import Fuse from "fuse.js";
|
import Fuse from "fuse.js";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
import { Menu } from "@/components/player/internals/ContextMenu";
|
import { Menu } from "@/components/player/internals/ContextMenu";
|
||||||
import { Input } from "@/components/player/internals/ContextMenu/Input";
|
import { Input } from "@/components/player/internals/ContextMenu/Input";
|
||||||
|
|
@ -18,6 +19,7 @@ import { durationExceedsHour, formatSeconds } from "@/utils/formatSeconds";
|
||||||
import { wordOverrides } from "../../Player";
|
import { wordOverrides } from "../../Player";
|
||||||
|
|
||||||
export function TranscriptView({ id }: { id: string }) {
|
export function TranscriptView({ id }: { id: string }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
const router = useOverlayRouter(id);
|
const router = useOverlayRouter(id);
|
||||||
const display = usePlayerStore((s) => s.display);
|
const display = usePlayerStore((s) => s.display);
|
||||||
const srtData = usePlayerStore((s) => s.caption.selected?.srtData);
|
const srtData = usePlayerStore((s) => s.caption.selected?.srtData);
|
||||||
|
|
@ -171,11 +173,11 @@ export function TranscriptView({ id }: { id: string }) {
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!didFirstScroll) {
|
if (!didFirstScroll) {
|
||||||
const t = setTimeout(() => {
|
const timeout = setTimeout(() => {
|
||||||
doScroll();
|
doScroll();
|
||||||
setDidFirstScroll(true);
|
setDidFirstScroll(true);
|
||||||
}, 100);
|
}, 100);
|
||||||
return () => clearTimeout(t);
|
return () => clearTimeout(timeout);
|
||||||
}
|
}
|
||||||
doScroll();
|
doScroll();
|
||||||
}, [scrollTargetKey, didFirstScroll]);
|
}, [scrollTargetKey, didFirstScroll]);
|
||||||
|
|
@ -186,8 +188,8 @@ export function TranscriptView({ id }: { id: string }) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Menu.BackLink onClick={() => router.navigate("/")}>
|
<Menu.BackLink onClick={() => router.navigate("/captions")}>
|
||||||
Transcript
|
{t("player.menus.subtitles.transcriptChoice")}
|
||||||
</Menu.BackLink>
|
</Menu.BackLink>
|
||||||
<Menu.Section>
|
<Menu.Section>
|
||||||
<div className="sticky top-0 z-10 -mx-3 px-3 py-2 mb-2">
|
<div className="sticky top-0 z-10 -mx-3 px-3 py-2 mb-2">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue