import { useMemo } from "react";
import { Trans, useTranslation } from "react-i18next";
import { Button } from "@/components/buttons/Button";
import { Icon, Icons } from "@/components/Icon";
import { OverlayPage } from "@/components/overlays/OverlayPage";
import { Menu } from "@/components/player/internals/ContextMenu";
import { convertSubtitlesToSrtDataurl } from "@/components/player/utils/captions";
import { useOverlayRouter } from "@/hooks/useOverlayRouter";
import { usePlayerStore } from "@/stores/player/store";
function useDownloadLink() {
const source = usePlayerStore((s) => s.source);
const currentQuality = usePlayerStore((s) => s.currentQuality);
const url = useMemo(() => {
if (source?.type === "file" && currentQuality)
return source.qualities[currentQuality]?.url ?? null;
if (source?.type === "hls") return source.url;
return null;
}, [source, currentQuality]);
return url;
}
function StyleTrans(props: { k: string }) {
return (
,
ios_share: (
),
ios_files: (
),
}}
/>
);
}
export function DownloadView({ id }: { id: string }) {
const router = useOverlayRouter(id);
const { t } = useTranslation();
const downloadUrl = useDownloadLink();
const sourceType = usePlayerStore((s) => s.source?.type);
const selectedCaption = usePlayerStore((s) => s.caption?.selected);
const subtitleUrl = useMemo(
() =>
selectedCaption
? convertSubtitlesToSrtDataurl(selectedCaption?.srtData)
: null,
[selectedCaption],
);
if (!downloadUrl) return null;
return (
<>
router.navigate("/")}>
{t("player.menus.downloads.title")}
{sourceType === "hls" ? (
<>
>
) : (
<>
router.navigate("/download/pc")}>
{t("player.menus.downloads.onPc.title")}
router.navigate("/download/ios")}
>
{t("player.menus.downloads.onIos.title")}
router.navigate("/download/android")}
>
{t("player.menus.downloads.onAndroid.title")}
>
)}
>
);
}
export function CantDownloadView({ id }: { id: string }) {
const router = useOverlayRouter(id);
const { t } = useTranslation();
return (
<>
router.navigate("/")}>
{t("player.menus.downloads.title")}
>
);
}
function AndroidExplanationView({ id }: { id: string }) {
const router = useOverlayRouter(id);
const { t } = useTranslation();
return (
<>
router.navigate("/download")}>
{t("player.menus.downloads.onAndroid.shortTitle")}
>
);
}
function PCExplanationView({ id }: { id: string }) {
const router = useOverlayRouter(id);
const { t } = useTranslation();
return (
<>
router.navigate("/download")}>
{t("player.menus.downloads.onPc.shortTitle")}
>
);
}
function IOSExplanationView({ id }: { id: string }) {
const router = useOverlayRouter(id);
return (
<>
router.navigate("/download")}>
>
);
}
export function DownloadRoutes({ id }: { id: string }) {
return (
<>
>
);
}