// @flow import { observer } from "mobx-react"; import * as React from "react"; import { useState } from "react"; import { useTranslation, Trans } from "react-i18next"; import { useHistory } from "react-router-dom"; import Document from "models/Document"; import Button from "components/Button"; import Flex from "components/Flex"; import HelpText from "components/HelpText"; import useToasts from "hooks/useToasts"; import { documentUrl } from "utils/routeHelpers"; type Props = { document: Document, onSubmit: () => void, }; function DocumentTemplatize({ document, onSubmit }: Props) { const [isSaving, setIsSaving] = useState(); const history = useHistory(); const { showToast } = useToasts(); const { t } = useTranslation(); const handleSubmit = React.useCallback( async (ev: SyntheticEvent<>) => { ev.preventDefault(); setIsSaving(true); try { const template = await document.templatize(); history.push(documentUrl(template)); showToast(t("Template created, go ahead and customize it"), { type: "info", }); onSubmit(); } catch (err) { showToast(err.message, { type: "error" }); } finally { setIsSaving(false); } }, [document, showToast, history, onSubmit, t] ); return (
}} />
); } export default observer(DocumentTemplatize);