import { observer } from "mobx-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { DocumentValidation } from "@shared/validations"; import Document from "~/models/Document"; import ConfirmationDialog from "~/components/ConfirmationDialog"; import Input from "./Input"; import Switch from "./Switch"; import Text from "./Text"; type Props = { /** The original document to duplicate */ document: Document; onSubmit: (documents: Document[]) => void; }; function DuplicateDialog({ document, onSubmit }: Props) { const { t } = useTranslation(); const defaultTitle = t(`Copy of {{ documentName }}`, { documentName: document.title, }); const [recursive, setRecursive] = React.useState(true); const [title, setTitle] = React.useState(defaultTitle); const handleRecursiveChange = React.useCallback( (ev: React.ChangeEvent) => { setRecursive(ev.target.checked); }, [] ); const handleTitleChange = React.useCallback( (ev: React.ChangeEvent) => { setTitle(ev.target.value); }, [] ); const handleSubmit = async () => { const result = await document.duplicate({ recursive, title, }); onSubmit(result); }; return ( {document.publishedAt && !document.isTemplate && ( )} ); } export default observer(DuplicateDialog);