mirror of
https://github.com/hazemKrimi/personal-website.git
synced 2026-05-01 18:00:26 +00:00
Improve contact form
This commit is contained in:
+5
-7
@@ -75,6 +75,7 @@ const About: FC = () => {
|
|||||||
message: ''
|
message: ''
|
||||||
});
|
});
|
||||||
const [state, Submit] = useForm('xoqpgyge');
|
const [state, Submit] = useForm('xoqpgyge');
|
||||||
|
const [submitted, setSubmitted] = useState<boolean>(false);
|
||||||
|
|
||||||
const handleChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
|
const handleChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
|
||||||
setForm({ ...form, [event.target.name]: event.target.value });
|
setForm({ ...form, [event.target.name]: event.target.value });
|
||||||
@@ -83,7 +84,9 @@ const About: FC = () => {
|
|||||||
const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {
|
const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {
|
||||||
try {
|
try {
|
||||||
await Submit(event);
|
await Submit(event);
|
||||||
|
setSubmitted(true);
|
||||||
} finally {
|
} finally {
|
||||||
|
setTimeout(() => setSubmitted(false), 1000);
|
||||||
setForm({ name: '', email: '', message: '' });
|
setForm({ name: '', email: '', message: '' });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -126,12 +129,7 @@ const About: FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h1>
|
<h1>Contact Me {submitted && <span className='success'>Message sent ✔️</span>}</h1>
|
||||||
Contact Me{' '}
|
|
||||||
{state.succeeded && state.submitting && (
|
|
||||||
<span className='success'>Message sent ✔️</span>
|
|
||||||
)}
|
|
||||||
</h1>
|
|
||||||
<form className='contact' onSubmit={handleSubmit}>
|
<form className='contact' onSubmit={handleSubmit}>
|
||||||
<Input
|
<Input
|
||||||
type='text'
|
type='text'
|
||||||
@@ -173,7 +171,7 @@ const About: FC = () => {
|
|||||||
field='message'
|
field='message'
|
||||||
errors={state.errors}
|
errors={state.errors}
|
||||||
/>
|
/>
|
||||||
<MDXButton type='submit' variant='action' disabled={state.submitting}>
|
<MDXButton type='submit' variant='action' disabled={state.submitting || submitted}>
|
||||||
Submit
|
Submit
|
||||||
</MDXButton>
|
</MDXButton>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Reference in New Issue
Block a user