mirror of
https://github.com/docmost/docmost.git
synced 2026-05-21 01:04:39 +08:00
72 lines
2.1 KiB
TypeScript
72 lines
2.1 KiB
TypeScript
import { Modal, Text } from "@mantine/core";
|
|
import { useAtom } from "jotai";
|
|
import { historyAtoms } from "@/features/page-history/atoms/history-atoms";
|
|
import HistoryModalBody from "@/features/page-history/components/history-modal-body";
|
|
import HistoryModalMobile from "@/features/page-history/components/history-modal-mobile";
|
|
import { useTranslation } from "react-i18next";
|
|
import { useMediaQuery } from "@mantine/hooks";
|
|
|
|
interface Props {
|
|
pageId: string;
|
|
pageTitle?: string;
|
|
}
|
|
|
|
export default function HistoryModal({ pageId, pageTitle }: Props) {
|
|
const { t } = useTranslation();
|
|
const [isModalOpen, setModalOpen] = useAtom(historyAtoms);
|
|
const isMobile = useMediaQuery("(max-width: 800px)");
|
|
|
|
if (isMobile) {
|
|
return (
|
|
<Modal.Root
|
|
opened={isModalOpen}
|
|
onClose={() => setModalOpen(false)}
|
|
fullScreen
|
|
aria-label={t("Page history")}
|
|
>
|
|
<Modal.Overlay />
|
|
<Modal.Content style={{ overflow: "hidden" }}>
|
|
<Modal.Header>
|
|
<Modal.Title>
|
|
<Text size="md" fw={500}>
|
|
{t("Page history")}
|
|
</Text>
|
|
</Modal.Title>
|
|
<Modal.CloseButton aria-label={t("Close")} />
|
|
</Modal.Header>
|
|
<Modal.Body
|
|
p={0}
|
|
style={{ height: "calc(100vh - 60px)", overflow: "hidden" }}
|
|
>
|
|
<HistoryModalMobile pageId={pageId} pageTitle={pageTitle} />
|
|
</Modal.Body>
|
|
</Modal.Content>
|
|
</Modal.Root>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Modal.Root
|
|
size={1400}
|
|
opened={isModalOpen}
|
|
onClose={() => setModalOpen(false)}
|
|
aria-label={t("Page history")}
|
|
>
|
|
<Modal.Overlay />
|
|
<Modal.Content style={{ overflow: "hidden" }}>
|
|
<Modal.Header>
|
|
<Modal.Title>
|
|
<Text size="md" fw={500}>
|
|
{t("Page history")}
|
|
</Text>
|
|
</Modal.Title>
|
|
<Modal.CloseButton aria-label={t("Close")} />
|
|
</Modal.Header>
|
|
<Modal.Body>
|
|
<HistoryModalBody pageId={pageId} />
|
|
</Modal.Body>
|
|
</Modal.Content>
|
|
</Modal.Root>
|
|
);
|
|
}
|