diff --git a/src/components/Contact/Forms.js b/src/components/Contact/Forms.js index f1e7f53..3f2f19a 100644 --- a/src/components/Contact/Forms.js +++ b/src/components/Contact/Forms.js @@ -1,40 +1,92 @@ -import React from 'react'; +import React, {useState} from 'react'; import getConfig from './../../Config/config' import ContactData from '../../Services/ContactData'; function Forms() { - var site = getConfig()[0]; + const [formDetails, setFormDetails] = useState({ + first_name: '', + last_name: '', + email: '', + subject: '', + phone_number: '', + action: 1001, + message: '', + channel: 'WEB', + terms_conditions: false + }) - function handleSubmit(e) { - e.preventDefault(); - // console.log('You clicked submit.'); - // console.log(e); - // debugger; - const firstname = e.target['f-name'].value; - const lastname = e.target['l-name'].value; - const email = e.target['email'].value; - const phone = e.target['phone'].value; - const subject = e.target['subject'].value; - const message = e.target['message'].value; - const terms = e.target['terms-conditions'].checked; -//alert(terms); - - var callData = [{ - "firstname": firstname, - "lastname": lastname, - "email": email, - "phone": phone, - "subject": subject, - "message": message, - "channel": 'WEB' - }]; - - const callRet = ContactData(callData); - console.log('You clicked submit========> '+ callRet); + + const handleChange = ({target:{name, value}}) => { + if(name == 'terms_conditions'){ + setFormDetails(prev => ({...prev, [name]:!prev.terms_conditions})) + }else{ + setFormDetails(prev => ({...prev, [name]:value})) + } } + + const [requestStatus, setRequestStatus] = useState({loading:false, status:false, msg:''}) + + const validForm = formDetails.first_name && formDetails.last_name && formDetails.email && formDetails.phone_number && formDetails.subject && formDetails.message + function handleSubmit(e) { + e.preventDefault() + const isChecked = formDetails.terms_conditions + setRequestStatus({loading:true, status:false, msg:''}) + if(!validForm){ + setRequestStatus({loading:false, status:false, msg:'Please, fill all fields'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, msg:''}) + },3000) + return + } + if(!(/^\d{7,15}$/.test(formDetails.phone_number))){ + setRequestStatus({loading:false, status:false, msg:'Please, enter a valid phone number'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, msg:''}) + },3000) + return + } + if(!isChecked){ + setRequestStatus({loading:false, status:false, msg:'Please, Accept Terms & Conditions'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, msg:''}) + },3000) + return + } + delete formDetails.terms_conditions + + ContactData(formDetails).then(res =>{ + if(res?.data?.result != '100'){ + setRequestStatus({loading:false, status:false, msg:'failed to send message'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, msg:''}) + },3000) + return + } + setRequestStatus({loading:false, status:true, msg:'message Sent'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, msg:''}) + setFormDetails({ + first_name: '', + last_name: '', + email: '', + subject: '', + phone_number: '', + action: 1001, + message: '', + channel: 'WEB', + terms_conditions: false + }) + },3000) + }).catch(err => { + setRequestStatus({loading:false, status:false, msg:'failed something went wrong'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, msg:''}) + },3000) + }); + } return ( @@ -46,7 +98,7 @@ function Forms() {
Looking for help? Fill the form and start a new discussion.
-@@ -57,9 +109,8 @@ function Forms() { {process.env.REACT_APP_SUPPORT_US_ADDRESS}
- -
@@ -67,7 +118,7 @@ function Forms() {
{process.env.REACT_APP_SUPPORT_PHONE}
@@ -98,47 +149,64 @@ function Forms() {