Skip to content

Commit 782b84c

Browse files
committed
create contact section
1 parent 1561f4e commit 782b84c

File tree

4 files changed

+328
-1
lines changed

4 files changed

+328
-1
lines changed

src/assets/images/connect1.svg

Lines changed: 208 additions & 0 deletions
Loading

src/components/Contact.tsx

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import { faPaperPlane } from '@fortawesome/free-solid-svg-icons';
2+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
3+
import { ChangeEvent, FormEvent, useState } from 'react';
4+
import { twJoin } from 'tailwind-merge';
5+
6+
import connectImg from '../assets/images/connect1.svg';
7+
8+
const Contact = () => {
9+
const [inputs, setInputs] = useState({ name: '', email: '', message: '' });
10+
11+
const handleChange = (
12+
e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,
13+
) => {
14+
setInputs({ ...inputs, [e.target.name]: e.target.value });
15+
};
16+
17+
const handelSubmit = (e: FormEvent<HTMLFormElement>) => {
18+
e.preventDefault();
19+
console.log(inputs);
20+
};
21+
22+
return (
23+
<div className="grid grid-cols-1 sm:grid-cols-2">
24+
<div className="flex items-center">
25+
<img
26+
src={connectImg}
27+
alt=""
28+
className="mx-auto h-64 w-64 sm:h-96 sm:w-96"
29+
/>
30+
</div>
31+
<div className="rounded-xl bg-black/20 sm:max-w-lg">
32+
<form className="flex flex-col gap-4 px-4 py-8" onSubmit={handelSubmit}>
33+
<div className="input__group">
34+
<input
35+
type="text"
36+
id="name"
37+
value={inputs.name}
38+
name="name"
39+
onChange={handleChange}
40+
/>
41+
<label
42+
htmlFor="name"
43+
className={twJoin(inputs.name.length > 0 && 'active')}
44+
>
45+
Enter your Name
46+
</label>
47+
</div>
48+
<div className="input__group">
49+
<input
50+
type="email"
51+
name="email"
52+
id="email"
53+
value={inputs.email}
54+
onChange={handleChange}
55+
/>
56+
<label
57+
htmlFor="email"
58+
className={twJoin(inputs.email.length > 0 && 'active')}
59+
>
60+
Enter Your Email
61+
</label>
62+
</div>
63+
<div className="input__group">
64+
<textarea
65+
name="message"
66+
id="message"
67+
cols={30}
68+
rows={5}
69+
value={inputs.message}
70+
onChange={handleChange}
71+
/>
72+
<label
73+
htmlFor="message"
74+
className={twJoin(inputs.message.length > 0 && 'active')}
75+
>
76+
Message
77+
</label>
78+
</div>
79+
<button className="flex items-center justify-center gap-4 rounded-md bg-blue-600 py-2 text-white hover:bg-blue-500 dark:bg-blue-400 dark:hover:bg-blue-300">
80+
<FontAwesomeIcon icon={faPaperPlane} />
81+
<span>Message</span>
82+
</button>
83+
</form>
84+
</div>
85+
</div>
86+
);
87+
};
88+
89+
export default Contact;

0 commit comments

Comments
 (0)