feat: add sample form to use send email

This commit is contained in:
Ephraim Atta-Duncan
2023-06-21 14:36:05 +00:00
parent 0456fe9826
commit 27f6c9b8eb

View File

@ -1,32 +1,132 @@
'use client'; 'use client';
import React from 'react'; import React, { useState } from 'react';
import { trpc } from '@documenso/trpc/react'; import { trpc } from '@documenso/trpc/react';
import { TSendMailMutationSchema } from '@documenso/trpc/server/mail-router/schema';
export default function Send() { export default function Send() {
const { mutateAsync: sendMail } = trpc.mail.send.useMutation(); const { mutateAsync: sendMail } = trpc.mail.send.useMutation();
const [form, setForm] = useState<TSendMailMutationSchema>({
email: '',
type: 'invite',
documentName: '',
name: '',
firstName: '',
documentSigningLink: '',
downloadLink: '',
numberOfSigners: 1,
reviewLink: '',
});
const handleInputChange = (event: { target: { name: any; value: unknown } }) => {
setForm({
...form,
[event.target.name]: event.target.value,
});
};
const handleSubmit = async (event: { preventDefault: () => void }) => {
event.preventDefault();
console.log('clicked');
await sendMail(form);
alert('sent');
};
return ( return (
<div className="p-20"> <div className="p-20">
<button <form onSubmit={handleSubmit}>
className="rounded-md border-2 border-solid border-black px-4 py-2 text-2xl" <input
onClick={async () => { type="text"
console.log('clicked'); name="email"
placeholder="Email"
await sendMail({ value={form.email}
email: 'duncan@documenso.com', onChange={handleInputChange}
type: 'invite', required
documentName: 'Documsenso Salary Invoice.pdf', className="my-2 block rounded-md border-2 border-gray-300 p-2"
name: 'Mark Cuban', />
firstName: 'Mark', <input
}); type="text"
name="type"
alert('sent'); placeholder="Type"
}} value={form.type}
> onChange={handleInputChange}
Send required
</button> className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="text"
name="documentName"
placeholder="Document Name"
value={form.documentName}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="text"
name="name"
placeholder="Name"
value={form.name}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="text"
name="firstName"
placeholder="First Name"
value={form.firstName}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="text"
name="documentSigningLink"
placeholder="Document Signing Link"
value={form.documentSigningLink}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="text"
name="downloadLink"
placeholder="Download Link"
value={form.downloadLink}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="number"
name="numberOfSigners"
placeholder="Number of Signers"
value={form.numberOfSigners}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<input
type="text"
name="reviewLink"
placeholder="Review Link"
value={form.reviewLink}
onChange={handleInputChange}
required
className="my-2 block rounded-md border-2 border-gray-300 p-2"
/>
<button
type="submit"
className="mt-4 rounded-md border-2 border-solid border-black px-4 py-2 text-2xl"
>
Send
</button>
</form>
</div> </div>
); );
} }