{"version":3,"sources":["webpack:///./src/components/shared/Header.js","webpack:///./src/elements/ContactElements.js","webpack:///./src/components/contact/ContactForm.js","webpack:///./src/pages/contact.js"],"names":["Header","props","title","className","to","page","FormWrapper","styled","section","theme","greyColor","secondaryColor","lightColor","ContactForm","useReducer","state","action","type","name","value","email","subject","message","dispatch","useState","status","setStatus","method","onSubmit","evt","preventDefault","form","target","data","FormData","xhr","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","DONE","reset","send","autoComplete","placeholder","required","onChange","e","Contact","Layout"],"mappings":"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","file":"component---src-pages-contact-js-7d8082268916d9259115.js","sourcesContent":["import React from 'react';\nimport { Link } from 'gatsby';\nimport { Head } from './../../elements/SharedElements';\n\nconst Header = (props) => (\n \n

{props.title}

\n
\n Home\n / {props.page}\n
\n \n)\n\nexport default Header;","import styled from 'styled-components';\n\nexport const FormWrapper = styled.section`\n\n padding: 3rem 0;\n background-color: ${ props => props.theme.greyColor };\n\n @media (max-width: 1024px){\n padding: 3rem 1.5rem;\n }\n\n .container {\n\n h2 {\n font-size: 1.5rem;\n margin-bottom: 1rem;\n }\n\n p {\n color: ${ props => props.theme.secondaryColor };\n margin-bottom: 1rem;\n }\n\n .success {\n\n padding: 1rem;\n width: 100%;\n text-align: center;\n background-color: #228B22;\n color: ${ props => props.theme.lightColor };\n\n }\n\n .fail {\n\n padding: 1rem;\n width: 100%;\n text-align: center;\n background-color: #ff2727;\n color: ${ props => props.theme.lightColor };\n }\n\n form {\n\n .form-block {\n\n width: 100%;\n margin-bottom: 1rem; \n\n input, textarea {\n width: 100%;\n padding: 1rem;\n border: none;\n outline: none;\n height: 3rem;\n }\n\n textarea {\n\n height: 8rem;\n\n }\n\n }\n\n }\n\n }\n\n`","import React, { useReducer, useState } from 'react';\nimport { FormWrapper } from './../../elements/ContactElements';\n\nconst ContactForm = () => {\n\n const [state, dispatch] = useReducer((state, action) => {\n switch(action.type){\n case \"ADD_NAME\":\n return { ...state, name: action.value}\n case \"ADD_EMAIL\":\n return { ...state, email: action.value} \n case \"ADD_SUBJECT\":\n return { ...state, subject: action.value} \n case \"ADD_MESSAGE\":\n return { ...state, message: action.value}\n case \"RESET_FORM\":\n return {\n name: \"\",\n email: \"\",\n subject: \"\",\n message: \"\" \n }\n default:\n return state\n }\n },{\n name: \"\",\n email: \"\",\n subject: \"\",\n message: \"\"\n\n })\n\n const [status, setStatus] = useState(\"\")\n\n const onFormSubmit = (evt) => {\n\n evt.preventDefault();\n const form = evt.target;\n const data = new FormData(form);\n const xhr = new XMLHttpRequest();\n xhr.open(form.method, form.action);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== XMLHttpRequest.DONE) return;\n if (xhr.status === 200) {\n form.reset();\n setStatus(\"success\")\n dispatch({type: \"RESET_FORM\"})\n }else{\n setStatus(\"fail\")\n }\n };\n xhr.send(data);\n \n }\n\n return (\n \n
\n

Write To Us

\n

* All fields are required *

\n
\n
\n {\n dispatch({ type: \"ADD_NAME\", value: e.target.value })\n }\n } />\n
\n
\n {\n dispatch({ type: \"ADD_EMAIL\", value: e.target.value })\n }\n }/> \n
\n
\n {\n dispatch({ type: \"ADD_SUBJECT\", value: e.target.value })\n }\n }/> \n
\n
\n \n
\n
\n \n
\n
\n { status &&
{(status === \"success\") ? \"Your form has been successfully submitted\": \"Something went wrong\"}
}\n
\n
\n )\n\n}\n\nexport default ContactForm;","import React from 'react';\nimport Layout from '../components/shared/Layout';\nimport Header from '../components/shared/Header';\nimport ContactForm from '../components/contact/ContactForm';\n\nconst Contact = () => (\n \n
\n \n \n)\n\nexport default Contact;"],"sourceRoot":""}