import { classNames } from "@documenso/lib"; import { Button, IconButton } from "@documenso/ui"; import { Dialog, Transition } from "@headlessui/react"; import { LanguageIcon, PencilIcon, TrashIcon, } from "@heroicons/react/24/outline"; import { Fragment, useState } from "react"; import SignatureCanvas from "react-signature-canvas"; const tabs = [ { name: "Type", icon: LanguageIcon, current: true }, { name: "Draw", icon: PencilIcon, current: false }, ]; export default function SignatureDialog(props: any) { const [currentTab, setCurrentTab] = useState(tabs[0]); const [typedName, setTypedName] = useState(""); const [signatureEmpty, setSignatureEmpty] = useState(true); let signCanvas: any | undefined; return ( <>
{isCurrentTab("Type") ? (
{ setTypedName(e.target.value); }} className="font-qw leading-none h-10 align-bottom font-qwigley mt-14 text-center block border-b w-full border-gray-300 focus:border-neon focus:ring-neon text-2xl" placeholder="Kindly type your name" />
) : ( "" )} {isCurrentTab("Draw") ? (
{ signCanvas = ref; }} canvasProps={{ className: "sigCanvas border-b b-2 border-slate w-full h-full mb-3", }} onEnd={() => { setSignatureEmpty(signCanvas?.isEmpty()); }} /> { signCanvas?.clear(); setSignatureEmpty(signCanvas?.isEmpty()); }} >
) : ( "" )}
); function isCurrentTab(tabName: string): boolean { return currentTab.name === tabName; } function setCurrent(t: any) { tabs.forEach((tab) => { tab.current = tab.name === t.name; }); setCurrentTab(t); } }