diff --git a/src/Services/ContactData.js b/src/Services/ContactData.js index 383b922..084fe95 100644 --- a/src/Services/ContactData.js +++ b/src/Services/ContactData.js @@ -1,11 +1,12 @@ -import Axios from 'axios'; -import getConfig from './../Config/config' +import axios from 'axios'; -async function ContactData(callData) { - // debugger; - var site = getConfig()[0]; - let response = await Axios.post(`${process.env.REACT_APP_AUX_ENDPOINT}/sitecontact`, callData); - return response.data.result; +async function ContactData(reqData) { + let formData = new FormData() + for (let value in reqData) { + formData.append(value, reqData[value]); + } + let response = await axios.post(`${process.env.REACT_APP_AUX_ENDPOINT}/sitecontact`, reqData); + return response; } export default ContactData; \ No newline at end of file diff --git a/src/components/Contact/Forms.js b/src/components/Contact/Forms.js index d951b5b..d955b54 100644 --- a/src/components/Contact/Forms.js +++ b/src/components/Contact/Forms.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, {useState} from 'react'; import getConfig from './../../Config/config' import ContactData from '../../Services/ContactData'; @@ -7,34 +7,69 @@ 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 + }) + + const validForm = formDetails.first_name && formDetails.last_name && formDetails.email && formDetails.phone_number && formDetails.subject && formDetails.message + + const handleChange = ({target:{name, value}}) => { + setFormDetails(prev => ({...prev, [name]:value})) + } + + const [requestStatus, setRequestStatus] = useState({loading:false, status:false, msg:''}) + 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); + e.preventDefault() + 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 + } - var callData = [{ - "firstname": firstname, - "lastname": lastname, - "email": email, - "phone": phone, - "subject": subject, - "message": message, - "channel": 'WEB' - }]; + delete formDetails.terms_conditions - const callRet = ContactData(callData); - console.log('You clicked submit========> '+ callRet); - - } + 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 ( @@ -99,10 +134,10 @@ function Forms() {

Let’s Connect

- +
- +
- +
- +
- +
+ {/*
+ {requestStatus.msg && + } +
*/} +

{requestStatus.msg}