{"version":3,"file":"static/chunks/2445.795b607e74fa6ce1.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/twitter.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/slices/Contact/index.js"],"sourcesContent":["import React from 'react';\n\nconst Facebook = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default Facebook;\n","import React from 'react';\n\nconst Linkedin = () => {\n return (\n \n \n\n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default Linkedin;\n","import React from 'react';\n\nconst Twitter = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default Twitter;\n","import React from 'react';\n\nconst Youtube = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport default Youtube;\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.white};\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: white;\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 &:hover {\n color: white;\n }\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: white;\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 rgba(255, 255, 255, 0.2);\n border-radius: 0.9rem;\n padding: 0.5rem 1rem;\n color: white;\n font-size: 1rem;\n height: 2.3rem;\n &::placeholder {\n color: rgba(255, 255, 255, 0.5);\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: white;\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: rgba(255, 255, 255, 0.6);\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, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.4),rgba(255, 255, 255, 0.05));\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 {\n Container,\n Wrapper,\n LeftSection,\n Title,\n Description,\n SocialIcon,\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';\nimport Facebook from 'common/assets/image/logo/social/facebook';\nimport Linkedin from 'common/assets/image/logo/social/linkedin';\nimport Twitter from 'common/assets/image/logo/social/twitter';\nimport Youtube from 'common/assets/image/logo/social/youtube';\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';\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 \n {slice.primary.title}\n \n \n \n \n \n {slice.primary.following_us}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {success ? {slice.primary.success_message} : null}\n {error ? {slice.primary.error_message} : null}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n