9 changed files with 157 additions and 15 deletions
@ -0,0 +1,24 @@ |
|||||||
|
import { useTranslation } from "react-i18next"; |
||||||
|
|
||||||
|
import { usePlayerStore } from "@/stores/player/store"; |
||||||
|
|
||||||
|
export function EpisodeTitle() { |
||||||
|
const { t } = useTranslation(); |
||||||
|
const meta = usePlayerStore((s) => s.meta); |
||||||
|
|
||||||
|
if (meta?.type !== "show") return null; |
||||||
|
|
||||||
|
return ( |
||||||
|
<div> |
||||||
|
<span className="text-white font-medium mr-3"> |
||||||
|
{t("seasons.seasonAndEpisode", { |
||||||
|
season: meta?.season?.number, |
||||||
|
episode: meta?.episode?.number, |
||||||
|
})} |
||||||
|
</span> |
||||||
|
<span className="text-type-secondary font-medium"> |
||||||
|
{meta?.episode?.title} |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
); |
||||||
|
} |
||||||
@ -0,0 +1,6 @@ |
|||||||
|
import { usePlayerStore } from "@/stores/player/store"; |
||||||
|
|
||||||
|
export function Title() { |
||||||
|
const title = usePlayerStore((s) => s.meta?.title); |
||||||
|
return <p>{title || "Beep beep, Richie!"}</p>; |
||||||
|
} |
||||||
@ -0,0 +1,31 @@ |
|||||||
|
import { Helmet } from "react-helmet"; |
||||||
|
import { useTranslation } from "react-i18next"; |
||||||
|
|
||||||
|
import { usePlayerStore } from "@/stores/player/store"; |
||||||
|
|
||||||
|
export function HeadUpdater() { |
||||||
|
const { t } = useTranslation(); |
||||||
|
const meta = usePlayerStore((s) => s.meta); |
||||||
|
|
||||||
|
if (!meta) return null; |
||||||
|
if (meta.type !== "show") { |
||||||
|
return ( |
||||||
|
<Helmet> |
||||||
|
<title>{meta.title}</title> |
||||||
|
</Helmet> |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
const humanizedEpisodeId = t("videoPlayer.seasonAndEpisode", { |
||||||
|
season: meta.season?.number, |
||||||
|
episode: meta.episode?.number, |
||||||
|
}); |
||||||
|
|
||||||
|
return ( |
||||||
|
<Helmet> |
||||||
|
<title> |
||||||
|
{meta.title} - {humanizedEpisodeId} |
||||||
|
</title> |
||||||
|
</Helmet> |
||||||
|
); |
||||||
|
} |
||||||
Loading…
Reference in new issue