{"version":3,"file":"static/chunks/3465.879f4dc77541a936.js","mappings":"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","sources":["webpack://_N_E/./src/common/assets/image/logo/social/Facebook.js","webpack://_N_E/./src/common/assets/image/logo/social/LinkedIn.js","webpack://_N_E/./src/common/assets/image/logo/social/youtube.js","webpack://_N_E/./src/config/config.js","webpack://_N_E/./src/slices/Contact/style.js","webpack://_N_E/./src/hooks/useContact.js","webpack://_N_E/./src/common/assets/image/logo/social/twitter.js","webpack://_N_E/./src/slices/Contact/index.js"],"sourcesContent":["import React from 'react';\n\nexport default function Facebook() {\n return (\n \n );\n}\n","import React from 'react';\n\nexport default function LinkedIn() {\n return (\n \n );\n}\n","import React from 'react';\n\nexport default function Youtube() {\n return (\n \n );\n}\n","const config = {\n endPointContact: process.env.URL_CONTACT || 'https://graphql.swiftask.ai/api/contact',\n endPointVerifyRecaptcha: process.env.URL_VERIFY_RECAPTCHA ||'https://graphql.swiftask.ai/api/verifyRecaptcha' ,\n recaptchaSiteKey: process.env.RECAPCHATSITEKEY ||'',\n endPointGetPricing: process.env.URL_GET_PRICING ||'https://graphql.swiftask.ai/public/subplans',\n};\n\nexport default config;\n\n","import styled from 'styled-components';\nimport colors from \"common/theme/saasModern/colors\"\n\nexport const Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto;\n box-sizing: content-box;\n margin-bottom: 10px;\n padding-top: 6rem;\n`;\n\nexport const Wrapper = styled.div`\n width: 100%;\n display: grid;\n grid-template-columns: 1fr;\n gap: 3rem;\n position: relative;\n @media (min-width: 1150px) {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nexport const LeftSection = styled.div`\n display: flex;\n flex-direction: column;\n background: linear-gradient(to right bottom, rgba(255, 255, 255, 0.1), transparent , transparent, transparent, transparent);\n padding: 56px;\n border-radius: 64px;\n @media (max-width: 950px) {\n padding: 56px 0;\nbackground: none;\n }\n`;\n\nexport const Heading = styled.h2`\n font-size: 3rem;\n font-weight: 900;\n margin: 0;\n transition: 500ms;\n @media (max-width: 1440px) {\n font-size: 3rem;\n }\n @media (max-width: 950px) {\n font-size: 2rem;\n }\n`\n\nexport const GradientText = styled.span`\n background: linear-gradient(to right, #3b82f6, #ec4899, #f97316);\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n`\n\nexport const Description = styled.div`\n color: ${colors.black};\n font-size: 1.5rem;\n font-weight: 300;\n`;\n\nexport const SocialSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n`;\n\nexport const SocialTitle = styled.h3`\n color: black;\n font-size: 1.25rem;\n`;\n\nexport const SocialIcons = styled.div`\n display: flex;\n gap: 1.5rem;\n`;\n\nexport const SocialIcon = styled.a`\n color: rgba(255, 255, 255, 0.8);\n transition: color 0.3s ease;\n`;\n\nexport const RightSection = styled.div`\n position: relative;\n`;\n\nexport const FormBackground = styled.div`\n position: absolute;\n top: 50%;\n right: 0;\n width: 16rem;\n height: 16rem;\n background: rgba(255, 255, 255, 0.1);\n border-radius: 50%;\n filter: blur(100px);\n z-index: -1;\n`;\n\nexport const FormBackground2 = styled(FormBackground)`\n bottom: 0;\n left: 50%;\n background-color: rgba(249, 115, 22, 0.2);\n`;\n\nexport const Form = styled.form`\n backdrop-filter: blur(10px);\n border-radius: 1.5rem;\n padding: 2rem;\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n background-color: transparent;\n border: 1px solid rgba(255, 255, 255, 0.2);\n`;\n\nexport const InputGroup = styled.div`\n display: grid;\n gap: 1.5rem;\n\n @media (min-width: 768px) {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nexport const InputWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n\n`;\n\nexport const Label = styled.label`\n color: black;\n font-size: 0.875rem;\n font-weight: 600;\n`;\n\nexport const Required = styled.span`\n color: #F87171;\n`;\n\nexport const Input = styled.input`\n background-color: transparent;\n border: 1px solid gray;\n border-radius: 0.9rem;\n padding: 0.5rem 1rem;\n color: black;\n font-size: 1rem;\n height: 2.3rem;\n &::placeholder {\n color: gray;\n }\n`;\n\nexport const Textarea = styled(Input).attrs({ as: 'textarea' })`\n min-height: 120px;\n resize: vertical;\n`;\n\nexport const SubmitButton = styled.button`\n background: ${colors.redSecondary};\n color: black;\n border: none;\n border-radius: 1.6rem;\n padding: 1rem;\n font-size: 1.125rem;\n cursor: pointer;\n transition: opacity 0.3s ease;\n font-weight: 900;\n &:hover {\n opacity: 0.9;\n }\n\n &:disabled {\n opacity: 0.7;\n cursor: not-allowed;\n }\n`;\n\nexport const FormFooter = styled.p`\n color: black;\n text-align: center;\n font-size: 0.875rem;\n font-weight: 900;\n`;\n\n \nexport const BorderBottom = styled.div`\n width: 30%;\n height: 2px;\n background: #3b82f6;\n margin-top: 24px;\n background: linear-gradient(90deg, gray, gray,red);\n\n`\n","// create a hook to handle the form and send message to the backend\nimport { useState } from 'react';\nimport config from 'config/config';\n\nconst useContact = () => {\n const [valueForm, setValueForm] = useState({});\n const [error, setError] = useState(false);\n const [success, setSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const [isVerifiedRecaptcha, setIsVerifiedRecaptcha] = useState(false);\n\n const handleChange = (e) => {\n setValueForm({\n ...valueForm,\n [e.target.name]: e.target.value,\n });\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setLoading(true);\n setError(false)\n setSuccess(false)\n // add code to send post using fetch with code \n try{\n const send = await fetch(config.endPointContact, {\n method: 'POST',\n headers: { \n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(valueForm),\n });\n if(send.status === 200){\n setSuccess(true)\n setValueForm({\n \n })\n }else{\n setError(true)\n }\n }\n catch(err){\n setError(err)\n }finally{\n setLoading(false);\n }\n };\n\n const handleCaptchaSubmission = async (tokenRecaptcha) => {\n try {\n const response = await fetch(config.endPointVerifyRecaptcha, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n },\n body: JSON.stringify({\n token:tokenRecaptcha,\n }),\n });\n \n if (!response.ok) {\n throw new Error(`Request failed with status: ${response.status}`);\n }\n \n const data = await response.json();\n\n console.log(\"data\", data);\n\n if (data.success) {\n setIsVerifiedRecaptcha(true);\n } else {\n setIsVerifiedRecaptcha(false);\n }\n } catch (err) {\n console.error(\"Error during reCAPTCHA verification:\", err);\n setIsVerifiedRecaptcha(false);\n }\n }\n \n const handleExpiredRecaptcha = () => {\n setIsVerifiedRecaptcha(false);\n };\n\n return {\n error,\n loading,\n success,\n valueForm,\n isVerifiedRecaptcha,\n handleChange,\n handleSubmit,\n handleExpiredRecaptcha,\n handleCaptchaSubmission\n };\n};\n\nexport default useContact;","import React from 'react';\n\nconst Twitter = () => {\n return (\n \n );\n};\n\nexport default Twitter;\n","import {\n Container,\n Wrapper,\n LeftSection,\n Description,\n SocialSection,\n SocialIcons,\n SocialTitle,\n RightSection,\n FormBackground,\n FormBackground2,\n Form,\n InputGroup,\n InputWrapper,\n Label,\n Input,\n Textarea,\n Required,\n SubmitButton,\n FormFooter,\n Heading,\n GradientText,\n BorderBottom\n} from './style'\nimport { PrismicRichText } from '@prismicio/react';\n\nimport Link from 'next/link';\nimport useContact from 'hooks/useContact';\nimport { Alert } from '@mui/material';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport config from 'config/config';\nimport Facebook from 'common/assets/image/logo/social/Facebook';\nimport Twitter from 'common/assets/image/logo/social/twitter';\nimport Youtube from 'common/assets/image/logo/social/youtube';\nimport LinkedIn from 'common/assets/image/logo/social/LinkedIn';\n/**\n * @typedef {import(\"@prismicio/client\").Content.ContactSlice} ContactSlice\n * @typedef {import(\"@prismicio/react\").SliceComponentProps} ContactProps\n * @param {ContactProps}\n */\nconst Contact = ({ slice }) => {\n\n const { \n valueForm,\n handleChange,\n handleSubmit,\n loading,\n success,\n error,\n handleCaptchaSubmission,\n handleExpiredRecaptcha,\n isVerifiedRecaptcha\n } = useContact();\n\n return (\n \n );\n};\n\nexport default Contact;\n"],"names":["Facebook","svg","xmlns","width","height","viewBox","fill","path","d","LinkedIn","Youtube","config","endPointContact","process","env","URL_CONTACT","endPointVerifyRecaptcha","URL_VERIFY_RECAPTCHA","recaptchaSiteKey","endPointGetPricing","URL_GET_PRICING","Container","styled","div","Wrapper","LeftSection","Heading","h2","GradientText","span","Description","colors","black","SocialSection","SocialTitle","h3","SocialIcons","RightSection","a","FormBackground","FormBackground2","Form","form","InputGroup","InputWrapper","Label","label","Required","Input","input","Textarea","attrs","as","SubmitButton","button","redSecondary","FormFooter","p","BorderBottom","valueForm","setValueForm","useState","error","setError","success","setSuccess","loading","setLoading","isVerifiedRecaptcha","setIsVerifiedRecaptcha","handleChange","e","target","name","value","handleSubmit","async","preventDefault","fetch","method","headers","body","JSON","stringify","status","err","handleExpiredRecaptcha","handleCaptchaSubmission","tokenRecaptcha","response","token","ok","Error","json","g","id","slice","useContact","section","data-slice-type","slice_type","data-slice-variation","variation","data-aos","primary","title","PrismicRichText","field","description","following_us","Link","href","Twitter","onSubmit","Alert","severity","success_message","error_message","htmlFor","placeholder","name_placeholder","required","onChange","e_mail","email_placeholder","email","company_name","company_name_placeholder","company","size_of_company","size_of_company_placeholder","size","sector_of_activity","sector_of_activity_placeholder","sector","specific_request","specific_request_placeholder","message","ReCAPTCHA","sitekey","onExpired","type","disabled","button_loading","button_send","noticed"],"sourceRoot":""}