125 lines
6.2 KiB
JavaScript
125 lines
6.2 KiB
JavaScript
import React, { useState } from 'react';
|
||
import axios from 'axios';
|
||
import contactInfo from 'data/Contact/form.json';
|
||
import contactInfoRTL from 'data/Contact/form-rtl.json';
|
||
|
||
const Form = ({ style = "4", rtl }) => {
|
||
const [formData, setFormdata] = useState({
|
||
name: "",
|
||
email: "",
|
||
phone: "",
|
||
website: "",
|
||
option: "",
|
||
message: ""
|
||
});
|
||
|
||
const contactInfoData = rtl ? contactInfoRTL : contactInfo;
|
||
|
||
const handleFormChange = (e) => {
|
||
setFormdata(prev => ({
|
||
...prev,
|
||
[e.target.name]: e.target.value
|
||
}))
|
||
}
|
||
|
||
const handleFormSubmit = async (e) => {
|
||
e.preventDefault();
|
||
const formValues = new FormData();
|
||
|
||
formValues.append('name', formData.name);
|
||
formValues.append('email', formData.email);
|
||
formValues.append('phone', formData.phone);
|
||
formValues.append('website', formData.website);
|
||
formValues.append('option', formData.option);
|
||
formValues.append('message', formData.message);
|
||
|
||
const res = await axios.post('/contact.php', formValues)
|
||
.catch(err => alert(err.message));
|
||
|
||
if (!res) return;
|
||
|
||
alert('Form submitted successfully.')
|
||
}
|
||
|
||
return (
|
||
<section className={`contact section-padding pt-${style === '4' ? '0':'50'} style-6`}>
|
||
{
|
||
style === '5' && (
|
||
<>
|
||
<div className="section-head text-center mb-100 style-5">
|
||
<h2 className="mb-20">{ rtl ? 'يسعدنا' : 'Get In' } <span>{ rtl ? 'تواصلك' : 'Touch' }</span> { rtl && 'معنا' }</h2>
|
||
<p>{ rtl ? 'سنتواصل معك مرة أخرى بعد استلام طلبك خلال 24 ساعة' : 'We will contact again after receive your request in 24h' }</p>
|
||
</div>
|
||
<div className="text-center mb-100">
|
||
<h2 className="ltspc-20 text-uppercase fs-1 lh-1 mb-50 mt-30 color-blue5">{ contactInfoData.phone }</h2>
|
||
<h4 className="fw-normal mb-20 color-000">{ contactInfoData.email }</h4>
|
||
<h4 className="fw-normal mb-10 color-000">{ contactInfoData.address }</h4>
|
||
</div>
|
||
</>
|
||
)
|
||
}
|
||
<div className="container">
|
||
<div className="content">
|
||
<div className="row justify-content-center">
|
||
<div className="col-lg-8">
|
||
<form action="contact.php" className="form" method="post" onSubmit={handleFormSubmit}>
|
||
<p className="text-center text-danger fs-12px mb-30">{ rtl ? 'الحقل اللذى يحتوى على هذة العلامة اجبارى *' : 'The field is required mark as *' }</p>
|
||
<div className="row">
|
||
<div className="col-lg-6">
|
||
<div className="form-group mb-20">
|
||
<input type="text" name="name" className="form-control" placeholder={ rtl ? 'الاسم' : "Name" } onChange={handleFormChange} />
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-6">
|
||
<div className="form-group mb-20">
|
||
<input type="text" name="email" className="form-control" placeholder={ rtl ? 'البريد الالكترونى *' : "Email Address *" } onChange={handleFormChange} />
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-6">
|
||
<div className="form-group mb-20">
|
||
<input type="text" name="phone" className="form-control" placeholder={ rtl ? 'رقم الهاتف (اختياري)' : "Phone Number (option)" } onChange={handleFormChange} />
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-6">
|
||
<div className="form-group mb-20">
|
||
<input type="text" name="website" className="form-control" placeholder={ rtl ? 'رابط موقعك (اختيارى)' : "Your Website (option)" } onChange={handleFormChange} />
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-12">
|
||
<div className="form-group mb-20">
|
||
<select className="form-select" defaultValue={ rtl ? 'كيف يمكننا مساعدتك ؟' : "How can we help you?" } name="option" onChange={handleFormChange}>
|
||
<option value="how can we help">{ rtl ? 'كيف يمكننا مساعدتك ؟' : 'How can we help you?' }</option>
|
||
<option value="option 1">{ rtl ? 'الاختيار الاول' : 'option 1' }</option>
|
||
<option value="option 2">{ rtl ? 'الاختيار الثاني' : 'option 2' }</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-12">
|
||
<div className="form-group">
|
||
<textarea rows="10" name="message" className="form-control" placeholder={ rtl ? 'كيف يمكننا مساعدتك ؟' : "How can we help you?" } onChange={handleFormChange}></textarea>
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-12 text-center">
|
||
<div className="form-check d-inline-flex mt-30 mb-30">
|
||
<input className="form-check-input me-2 mt-0" type="checkbox" value="" id="flexCheckDefault" />
|
||
<label className="form-check-label small" htmlFor="flexCheckDefault">
|
||
{ rtl ? 'من خلال الإرسال ، أوافق على' : 'By submitting, i’m agreed to the' } <a href="#" className="text-decoration-underline">{ rtl ? 'الشروط و الاحكام' : 'Terms & Conditons' }</a>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div className="col-lg-12 text-center">
|
||
<input type="submit" value={ rtl ? 'ارسل طلبك' : 'Send Your Request' } className="btn rounded-pill blue5-3Dbutn hover-blue2 sm-butn fw-bold text-light" />
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<img src="/assets/img/icons/contact_a.png" alt="" className="contact_a" />
|
||
<img src="/assets/img/icons/contact_message.png" alt="" className="contact_message" />
|
||
</div>
|
||
</div>
|
||
</section>
|
||
)
|
||
}
|
||
|
||
export default Form |