Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
sujata
/
Akruti-Frontend
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Registry
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit 92b61b84
authored
2026-02-23 18:53:33 +0530
by
Ravindra Kanojiya
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
updated contact form
1 parent
242f1461
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
390 additions
and
37 deletions
components/Contacts/GetInTouchForm.js
styles/globals.css
components/Contacts/GetInTouchForm.js
View file @
92b61b8
import
React
from
"react"
;
import
{
Col
,
Row
}
from
"react-bootstrap"
;
import
Heading
from
"@/components/Heading"
;
import
axios
from
"axios"
;
import
{
useForm
}
from
"react-hook-form"
;
import
*
as
yup
from
"yup"
;
import
{
yupResolver
}
from
"@hookform/resolvers/yup"
;
import
{
useRouter
}
from
"next/router"
;
const
GetInTouchForm
=
()
=>
{
/* ---------------- VALIDATION SCHEMA ---------------- */
const
schema
=
yup
.
object
({
requestType
:
yup
.
string
().
required
(
"Select Request Type is required"
),
name
:
yup
.
string
().
required
(
"Full name is required"
),
email
:
yup
.
string
()
.
email
(
"Enter a valid email address"
)
.
required
(
"Email is required"
),
phone
:
yup
.
string
()
.
matches
(
/^
[
0-9
]{10}
$/
,
"Phone number must be 10 digits"
)
.
required
(
"Phone number is required"
),
city
:
yup
.
string
().
required
(
"Please select city is required"
),
country
:
yup
.
string
().
required
(
"Please select country is required"
),
message
:
yup
.
string
().
required
(
"Message is required"
),
consent
:
yup
.
boolean
().
oneOf
([
true
],
"You must accept the terms"
),
});
const
router
=
useRouter
();
const
{
register
,
handleSubmit
,
watch
,
formState
:
{
errors
,
isSubmitting
,
isValid
},
reset
,
}
=
useForm
({
resolver
:
yupResolver
(
schema
),
mode
:
"onChange"
,
// important for button enable/disable
});
const
onSubmit
=
async
(
data
)
=>
{
try
{
const
payload
=
{
data
:
{
// FormSource: "Contact Form",
RequestType
:
data
.
requestType
,
FullName
:
data
.
name
,
Email
:
data
.
email
,
MobileNumber
:
data
.
phone
,
City
:
data
.
city
,
Country
:
data
.
country
,
Message
:
data
.
message
,
},
};
await
axios
.
post
(
`
${
process
.
env
.
NEXT_PUBLIC_BACKEND_API_URL
}
/api/contact-leads`
,
payload
,
);
reset
();
router
.
push
(
"/thankyou"
);
}
catch
(
error
)
{
console
.
error
(
error
);
alert
(
"Failed to submit form. Please try again."
);
}
};
return
(
<>
<
div
className
=
"get-in-touch-sec"
>
...
...
@@ -10,11 +77,15 @@ const GetInTouchForm = () => {
<
Heading
el
=
"h2"
heading
=
"Get in touch"
/>
<
/Col
>
<
/Row
>
<
form
action
=
""
className
=
"get-in-touch-form"
>
<
form
className
=
"get-in-touch-form"
onSubmit
=
{
handleSubmit
(
onSubmit
)}
noValidate
>
<
Row
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
div
>
<
select
className
=
"form-select"
id
=
"requestType"
>
<
select
className
=
"form-select"
id
=
"requestType"
{...
register
(
"requestType"
)}
>
<
option
value
=
""
>
Select
Request
Type
<
/option
>
<
option
value
=
"general"
>
General
Inquiry
<
/option
>
<
option
value
=
"support"
>
Support
<
/option
>
...
...
@@ -30,7 +101,9 @@ const GetInTouchForm = () => {
placeholder
=
"Full Name"
name
=
"Full Name"
className
=
"inputField nameInput"
{...
register
(
"name"
)}
/
>
{
errors
.
name
&&
<
p
className
=
"error"
>
{
errors
.
name
.
message
}
<
/p>
}
<
/div
>
<
/Col
>
<
/Row
>
...
...
@@ -42,80 +115,360 @@ const GetInTouchForm = () => {
placeholder
=
"Mobile Number"
name
=
"Mobile Number"
className
=
"inputField nameInput"
{...
register
(
"phone"
)}
/
>
{
errors
.
phone
&&
(
<
p
className
=
"error"
>
{
errors
.
phone
.
message
}
<
/p
>
)}
<
/div
>
<
/Col
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
div
>
<
input
type
=
"text"
placeholder
=
"Email Address"
name
=
"Email Address"
className
=
"inputField nameInput"
{...
register
(
"email"
)}
/
>
{
errors
.
email
&&
(
<
p
className
=
"error"
>
{
errors
.
email
.
message
}
<
/p
>
)}
<
/div
>
<
/Col
>
<
/Row
>
<
Row
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
div
>
<
select
className
=
"form-select"
id
=
"requestType"
>
<
option
value
=
""
>
City
<
/option
>
<
option
value
=
"mumbai"
>
Mumbai
<
/option
>
<
option
value
=
"pune"
>
Pune
<
/option
>
<
option
value
=
"delhi"
>
Delhi
<
/option
>
<
/select
>
<
/div
>
<
/Col
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
div
>
<
select
className
=
"form-select"
id
=
"requestType"
>
<
select
className
=
"form-select"
id
=
"requestType"
{...
register
(
"country"
)}
>
<
option
value
=
""
>
Country
<
/option
>
<
option
value
=
"Afghanistan"
>
Afghanistan
<
/option
>
<
option
value
=
"Albania"
>
Albania
<
/option
>
<
option
value
=
"Algeria"
>
Algeria
<
/option
>
<
option
value
=
"American Samoa"
>
American
Samoa
<
/option
>
<
option
value
=
"Andorra"
>
Andorra
<
/option
>
<
option
value
=
"Angola"
>
Angola
<
/option
>
<
option
value
=
"Antigua and Barbuda"
>
Antigua
and
Barbuda
<
/option
>
<
option
value
=
"Argentina"
>
Argentina
<
/option
>
<
option
value
=
"Armenia"
>
Armenia
<
/option
>
<
option
value
=
"Aruba"
>
Aruba
<
/option
>
<
option
value
=
"Australia"
>
Australia
<
/option
>
<
option
value
=
"Austria"
>
Austria
<
/option
>
<
option
value
=
"Azerbaijan"
>
Azerbaijan
<
/option
>
<
option
value
=
"Bahamas"
>
Bahamas
<
/option
>
<
option
value
=
"Bahrain"
>
Bahrain
<
/option
>
<
option
value
=
"Bangladesh"
>
Bangladesh
<
/option
>
<
option
value
=
"Barbados"
>
Barbados
<
/option
>
<
option
value
=
"Belarus"
>
Belarus
<
/option
>
<
option
value
=
"Belgium"
>
Belgium
<
/option
>
<
option
value
=
"Belize"
>
Belize
<
/option
>
<
option
value
=
"Benin"
>
Benin
<
/option
>
<
option
value
=
"Bermuda"
>
Bermuda
<
/option
>
<
option
value
=
"Bhutan"
>
Bhutan
<
/option
>
<
option
value
=
"Bolivia, Plurinational State of"
>
Bolivia
,
Plurinational
State
of
<
/option
>
<
option
value
=
"Bosnia and Herzegovina"
>
Bosnia
and
Herzegovina
<
/option
>
<
option
value
=
"Botswana"
>
Botswana
<
/option
>
<
option
value
=
"Brazil"
>
Brazil
<
/option
>
<
option
value
=
"Brunei Darussalam"
>
Brunei
Darussalam
<
/option
>
<
option
value
=
"Bulgaria"
>
Bulgaria
<
/option
>
<
option
value
=
"Burkina Faso"
>
Burkina
Faso
<
/option
>
<
option
value
=
"Burundi"
>
Burundi
<
/option
>
<
option
value
=
"Cabo Verde"
>
Cabo
Verde
<
/option
>
<
option
value
=
"Cambodia"
>
Cambodia
<
/option
>
<
option
value
=
"Cameroon"
>
Cameroon
<
/option
>
<
option
value
=
"Canada"
>
Canada
<
/option
>
<
option
value
=
"Cayman Islands"
>
Cayman
Islands
<
/option
>
<
option
value
=
"Central African Republic"
>
Central
African
Republic
<
/option
>
<
option
value
=
"Chad"
>
Chad
<
/option
>
<
option
value
=
"Chile"
>
Chile
<
/option
>
<
option
value
=
"China"
>
China
<
/option
>
<
option
value
=
"Colombia"
>
Colombia
<
/option
>
<
option
value
=
"Comoros"
>
Comoros
<
/option
>
<
option
value
=
"Congo"
>
Congo
<
/option
>
<
option
value
=
"Congo, Democratic Republic of the"
>
Congo
,
Democratic
Republic
of
the
<
/option
>
<
option
value
=
"Cook Islands"
>
Cook
Islands
<
/option
>
<
option
value
=
"Costa Rica"
>
Costa
Rica
<
/option
>
<
option
value
=
"Croatia"
>
Croatia
<
/option
>
<
option
value
=
"Cuba"
>
Cuba
<
/option
>
<
option
value
=
"Cyprus"
>
Cyprus
<
/option
>
<
option
value
=
"Czechia"
>
Czechia
<
/option
>
<
option
value
=
"Côte d'Ivoire"
>
C
ô
te
d
'Ivoire</option>
<option value="Denmark">Denmark</option>
<option value="Djibouti">Djibouti</option>
<option value="Dominica">Dominica</option>
<option value="Dominican Republic">Dominican Republic</option>
<option value="Ecuador">Ecuador</option>
<option value="Egypt">Egypt</option>
<option value="El Salvador">El Salvador</option>
<option value="Equatorial Guinea">Equatorial Guinea</option>
<option value="Eritrea">Eritrea</option>
<option value="Estonia">Estonia</option>
<option value="Eswatini">Eswatini</option>
<option value="Ethiopia">Ethiopia</option>
<option value="Fiji">Fiji</option>
<option value="Finland">Finland</option>
<option value="France">France</option>
<option value="Gabon">Gabon</option>
<option value="Gambia">Gambia</option>
<option value="Georgia">Georgia</option>
<option value="Germany">Germany</option>
<option value="Ghana">Ghana</option>
<option value="Greece">Greece</option>
<option value="Grenada">Grenada</option>
<option value="Guam">Guam</option>
<option value="Guatemala">Guatemala</option>
<option value="Guinea">Guinea</option>
<option value="Guinea-Bissau">Guinea-Bissau</option>
<option value="Guyana">Guyana</option>
<option value="Haiti">Haiti</option>
<option value="Honduras">Honduras</option>
<option value="Hong Kong">Hong Kong</option>
<option value="Hungary">Hungary</option>
<option value="Iceland">Iceland</option>
<option value="India">India</option>
<
option
value
=
"Dubai"
>
Dubai
<
/option
>
<option value="Indonesia">Indonesia</option>
<option value="Iran, Islamic Republic of">
Iran, Islamic Republic of
</option>
<option value="Iraq">Iraq</option>
<option value="Ireland">Ireland</option>
<option value="Israel">Israel</option>
<option value="Italy">Italy</option>
<option value="Jamaica">Jamaica</option>
<option value="Japan">Japan</option>
<option value="Jordan">Jordan</option>
<option value="Kazakhstan">Kazakhstan</option>
<option value="Kenya">Kenya</option>
<option value="Kiribati">Kiribati</option>
<option value="Korea, Democratic People'
s
Republic
of
">
Korea, Democratic People's Republic of
</option>
<option value="
Korea
,
Republic
of
">Korea, Republic of</option>
<option value="
Kuwait
">Kuwait</option>
<option value="
Kyrgyzstan
">Kyrgyzstan</option>
<option value="
Lao
People
's Democratic Republic">
Lao People'
s
Democratic
Republic
<
/option
>
<
option
value
=
"Latvia"
>
Latvia
<
/option
>
<
option
value
=
"Lebanon"
>
Lebanon
<
/option
>
<
option
value
=
"Lesotho"
>
Lesotho
<
/option
>
<
option
value
=
"Liberia"
>
Liberia
<
/option
>
<
option
value
=
"Libya"
>
Libya
<
/option
>
<
option
value
=
"Liechtenstein"
>
Liechtenstein
<
/option
>
<
option
value
=
"Lithuania"
>
Lithuania
<
/option
>
<
option
value
=
"Luxembourg"
>
Luxembourg
<
/option
>
<
option
value
=
"Madagascar"
>
Madagascar
<
/option
>
<
option
value
=
"Malawi"
>
Malawi
<
/option
>
<
option
value
=
"Malaysia"
>
Malaysia
<
/option
>
<
option
value
=
"Maldives"
>
Maldives
<
/option
>
<
option
value
=
"Mali"
>
Mali
<
/option
>
<
option
value
=
"Malta"
>
Malta
<
/option
>
<
option
value
=
"Marshall Islands"
>
Marshall
Islands
<
/option
>
<
option
value
=
"Mauritania"
>
Mauritania
<
/option
>
<
option
value
=
"Mauritius"
>
Mauritius
<
/option
>
<
option
value
=
"Mexico"
>
Mexico
<
/option
>
<
option
value
=
"Micronesia, Federated States of"
>
Micronesia
,
Federated
States
of
<
/option
>
<
option
value
=
"Moldova, Republic of"
>
Moldova
,
Republic
of
<
/option
>
<
option
value
=
"Monaco"
>
Monaco
<
/option
>
<
option
value
=
"Mongolia"
>
Mongolia
<
/option
>
<
option
value
=
"Montenegro"
>
Montenegro
<
/option
>
<
option
value
=
"Morocco"
>
Morocco
<
/option
>
<
option
value
=
"Mozambique"
>
Mozambique
<
/option
>
<
option
value
=
"Myanmar"
>
Myanmar
<
/option
>
<
option
value
=
"Namibia"
>
Namibia
<
/option
>
<
option
value
=
"Nauru"
>
Nauru
<
/option
>
<
option
value
=
"Nepal"
>
Nepal
<
/option
>
<
option
value
=
"Netherlands"
>
Netherlands
<
/option
>
<
option
value
=
"New Zealand"
>
New
Zealand
<
/option
>
<
option
value
=
"Nicaragua"
>
Nicaragua
<
/option
>
<
option
value
=
"Niger"
>
Niger
<
/option
>
<
option
value
=
"Nigeria"
>
Nigeria
<
/option
>
<
option
value
=
"North Macedonia"
>
North
Macedonia
<
/option
>
<
option
value
=
"Norway"
>
Norway
<
/option
>
<
option
value
=
"Oman"
>
Oman
<
/option
>
<
option
value
=
"Pakistan"
>
Pakistan
<
/option
>
<
option
value
=
"Palau"
>
Palau
<
/option
>
<
option
value
=
"Palestine, State of"
>
Palestine
,
State
of
<
/option
>
<
option
value
=
"Panama"
>
Panama
<
/option
>
<
option
value
=
"Papua New Guinea"
>
Papua
New
Guinea
<
/option
>
<
option
value
=
"Paraguay"
>
Paraguay
<
/option
>
<
option
value
=
"Peru"
>
Peru
<
/option
>
<
option
value
=
"Philippines"
>
Philippines
<
/option
>
<
option
value
=
"Poland"
>
Poland
<
/option
>
<
option
value
=
"Portugal"
>
Portugal
<
/option
>
<
option
value
=
"Puerto Rico"
>
Puerto
Rico
<
/option
>
<
option
value
=
"Qatar"
>
Qatar
<
/option
>
<
option
value
=
"Romania"
>
Romania
<
/option
>
<
option
value
=
"Russian Federation"
>
Russian
Federation
<
/option
>
<
option
value
=
"Rwanda"
>
Rwanda
<
/option
>
<
option
value
=
"Saint Kitts and Nevis"
>
Saint
Kitts
and
Nevis
<
/option
>
<
option
value
=
"Saint Lucia"
>
Saint
Lucia
<
/option
>
<
option
value
=
"Saint Vincent and the Grenadines"
>
Saint
Vincent
and
the
Grenadines
<
/option
>
<
option
value
=
"Samoa"
>
Samoa
<
/option
>
<
option
value
=
"San Marino"
>
San
Marino
<
/option
>
<
option
value
=
"Sao Tome and Principe"
>
Sao
Tome
and
Principe
<
/option
>
<
option
value
=
"Saudi Arabia"
>
Saudi
Arabia
<
/option
>
<
option
value
=
"Senegal"
>
Senegal
<
/option
>
<
option
value
=
"Serbia"
>
Serbia
<
/option
>
<
option
value
=
"Seychelles"
>
Seychelles
<
/option
>
<
option
value
=
"Sierra Leone"
>
Sierra
Leone
<
/option
>
<
option
value
=
"Singapore"
>
Singapore
<
/option
>
<
option
value
=
"Slovakia"
>
Slovakia
<
/option
>
<
option
value
=
"Slovenia"
>
Slovenia
<
/option
>
<
option
value
=
"Solomon Islands"
>
Solomon
Islands
<
/option
>
<
option
value
=
"Somalia"
>
Somalia
<
/option
>
<
option
value
=
"South Africa"
>
South
Africa
<
/option
>
<
option
value
=
"South Sudan"
>
South
Sudan
<
/option
>
<
option
value
=
"Spain"
>
Spain
<
/option
>
<
option
value
=
"Sri Lanka"
>
Sri
Lanka
<
/option
>
<
option
value
=
"Sudan"
>
Sudan
<
/option
>
<
option
value
=
"Suriname"
>
Suriname
<
/option
>
<
option
value
=
"Sweden"
>
Sweden
<
/option
>
<
option
value
=
"Switzerland"
>
Switzerland
<
/option
>
<
option
value
=
"Syrian Arab Republic"
>
Syrian
Arab
Republic
<
/option
>
<
option
value
=
"Taiwan, Province of China"
>
Taiwan
,
Province
of
China
<
/option
>
<
option
value
=
"Tajikistan"
>
Tajikistan
<
/option
>
<
option
value
=
"Tanzania, United Republic of"
>
Tanzania
,
United
Republic
of
<
/option
>
<
option
value
=
"Thailand"
>
Thailand
<
/option
>
<
option
value
=
"Timor-Leste"
>
Timor
-
Leste
<
/option
>
<
option
value
=
"Togo"
>
Togo
<
/option
>
<
option
value
=
"Tonga"
>
Tonga
<
/option
>
<
option
value
=
"Trinidad and Tobago"
>
Trinidad
and
Tobago
<
/option
>
<
option
value
=
"Tunisia"
>
Tunisia
<
/option
>
<
option
value
=
"Turkmenistan"
>
Turkmenistan
<
/option
>
<
option
value
=
"Tuvalu"
>
Tuvalu
<
/option
>
<
option
value
=
"Türkiye"
>
T
ü
rkiye
<
/option
>
<
option
value
=
"Uganda"
>
Uganda
<
/option
>
<
option
value
=
"Ukraine"
>
Ukraine
<
/option
>
<
option
value
=
"United Arab Emirates"
>
United
Arab
Emirates
<
/option
>
<
option
value
=
"United Kingdom"
>
United
Kingdom
<
/option
>
<
option
value
=
"United States of America"
>
United
States
of
America
<
/option
>
<
option
value
=
"Uruguay"
>
Uruguay
<
/option
>
<
option
value
=
"Uzbekistan"
>
Uzbekistan
<
/option
>
<
option
value
=
"Vanuatu"
>
Vanuatu
<
/option
>
<
option
value
=
"Venezuela, Bolivarian Republic of"
>
Venezuela
,
Bolivarian
Republic
of
<
/option
>
<
option
value
=
"Viet Nam"
>
Viet
Nam
<
/option
>
<
option
value
=
"Virgin Islands, British"
>
Virgin
Islands
,
British
<
/option
>
<
option
value
=
"Virgin Islands, U.S."
>
Virgin
Islands
,
U
.
S
.
<
/option
>
<
option
value
=
"Yemen"
>
Yemen
<
/option
>
<
option
value
=
"Zambia"
>
Zambia
<
/option
>
<
option
value
=
"Zimbabwe"
>
Zimbabwe
<
/option
>
<
/select
>
{
errors
.
country
&&
(
<
p
className
=
"error"
>
{
errors
.
country
.
message
}
<
/p
>
)}
<
/div
>
<
/Col
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
div
>
<
input
type
=
"text"
placeholder
=
"City"
name
=
"City"
className
=
"inputField nameInput"
{...
register
(
"city"
)}
/
>
{
errors
.
city
&&
<
p
className
=
"error"
>
{
errors
.
city
.
message
}
<
/p>
}
<
/div
>
<
/Col
>
<
/Row
>
<
Row
>
<
Col
md
=
{
12
}
className
=
"mb-3"
>
<
div
>
<
textarea
rows
=
"4"
<
textarea
rows
=
"4"
type
=
"text"
placeholder
=
"Message*"
name
=
"Message"
className
=
"inputField nameInput"
{...
register
(
"message"
)}
/
>
{
errors
.
message
&&
(
<
p
className
=
"error"
>
{
errors
.
message
.
message
}
<
/p
>
)}
<
/div
>
<
/Col
>
<
/Row
>
<
Row
>
<
Col
className
=
"mb-3"
>
<
div
className
=
"form-check"
>
<
input
className
=
"form-check-input"
type
=
"checkbox"
value
=
""
id
=
"checkChecked"
/>
<
label
className
=
"form-check-label"
for
=
"checkChecked"
>
By
Continuing
,
I
Declare
that
i
have
read
the
privacy
policy
of
akurti
luxe
.
<
/label
>
<
/div
>
<
div
className
=
"form-check"
>
<
input
className
=
"form-check-input"
type
=
"checkbox"
value
=
""
id
=
"checkChecked"
{...
register
(
"consent"
)}
/
>
<
label
className
=
"form-check-label"
for
=
"checkChecked"
>
By
Continuing
,
I
Declare
that
i
have
read
the
privacy
policy
of
akurti
luxe
.
<
/label
>
{
errors
.
consent
&&
(
<
p
className
=
"error"
>
{
errors
.
consent
.
message
}
<
/p
>
)}
<
/div
>
<
/Col
>
<
/Row
>
<
Row
>
<
Row
>
<
Col
className
=
"mb-3"
>
<
div
className
=
"d-flex gap-3"
>
<
button
className
=
"btn2"
>
Submit
<
i
className
=
"fa-solid fa-arrow-right"
><
/i></
button
>
<
/div
>
<
div
className
=
"d-flex gap-3"
>
<
button
type
=
"submit"
className
=
"btn2"
disabled
=
{
!
isValid
||
isSubmitting
}
>
{
isSubmitting
?
"Submitting..."
:
"Submit"
}{
" "
}
<
i
className
=
"fa-solid fa-arrow-right"
><
/i
>
<
/button
>
<
/div
>
<
/Col
>
<
/Row
>
<
/Row
>
<
/form
>
<
/div
>
<
/
>
...
...
styles/globals.css
View file @
92b61b8
...
...
@@ -871,7 +871,7 @@ h2.heading>p{
margin-top
:
4px
;
}
/* Disabled state */
.btn3
:disabled
{
:disabled
{
background-color
:
#cccccc
;
/* grey background */
color
:
#666666
;
/* darker grey text */
cursor
:
not-allowed
;
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment