mirror of
https://github.com/movie-web/movie-web.git
synced 2024-06-02 19:08:43 +02:00
68 lines
2.1 KiB
TypeScript
68 lines
2.1 KiB
TypeScript
import { useTranslation } from "react-i18next";
|
|
|
|
import { Button } from "@/components/buttons/Button";
|
|
import { Icons } from "@/components/Icon";
|
|
import { IconPill } from "@/components/layout/IconPill";
|
|
import { useModal } from "@/components/overlays/Modal";
|
|
import { Paragraph } from "@/components/text/Paragraph";
|
|
import { Title } from "@/components/text/Title";
|
|
import { ErrorContainer, ErrorLayout } from "@/pages/layouts/ErrorLayout";
|
|
import { playerStatus } from "@/stores/player/slices/source";
|
|
import { usePlayerStore } from "@/stores/player/store";
|
|
|
|
import { ErrorCardInModal } from "../errors/ErrorCard";
|
|
|
|
export function PlaybackErrorPart() {
|
|
const { t } = useTranslation();
|
|
const playbackError = usePlayerStore((s) => s.interface.error);
|
|
const setStatus = usePlayerStore((s) => s.setStatus);
|
|
const setPlay = usePlayerStore((s) => s.play);
|
|
const modal = useModal("error");
|
|
|
|
return (
|
|
<ErrorLayout>
|
|
<ErrorContainer>
|
|
<IconPill icon={Icons.WAND}>{t("player.playbackError.badge")}</IconPill>
|
|
<Title>{t("player.playbackError.title")}</Title>
|
|
<Paragraph>{t("player.playbackError.text")}</Paragraph>
|
|
<div className="flex gap-3">
|
|
<Button
|
|
href="/"
|
|
theme="secondary"
|
|
padding="md:px-12 p-2.5"
|
|
className="mt-6"
|
|
>
|
|
{t("player.playbackError.homeButton")}
|
|
</Button>
|
|
<Button
|
|
onClick={() => {
|
|
setStatus(playerStatus.PLAYING);
|
|
setPlay();
|
|
}}
|
|
href="secondary"
|
|
theme="secondary"
|
|
padding="md:px-12 p-2.5"
|
|
className="mt-6"
|
|
>
|
|
{t("player.playbackError.retryButton")}
|
|
</Button>
|
|
<Button
|
|
onClick={() => modal.show()}
|
|
theme="purple"
|
|
padding="md:px-12 p-2.5"
|
|
className="mt-6"
|
|
>
|
|
{t("errors.showError")}
|
|
</Button>
|
|
</div>
|
|
</ErrorContainer>
|
|
{/* Error */}
|
|
<ErrorCardInModal
|
|
onClose={() => modal.hide()}
|
|
error={playbackError}
|
|
id={modal.id}
|
|
/>
|
|
</ErrorLayout>
|
|
);
|
|
}
|