9 changed files with 157 additions and 15 deletions
@ -0,0 +1,24 @@
@@ -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 @@
@@ -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 @@
@@ -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