{"version":3,"sources":["webpack://switch-website/./src/components/common/Footer.js"],"names":["currentYear","Date","getFullYear","socialNetworks","facebook","icon","url","instagram","medium","linkedin","twitter","youtube","StyledFooter","colors","breakpoints","StyledSwitchLogo","SwitchLogo","FooterNavigationItem","P2","fontWeights","StyledNewsletterFormContainer","DefaultForm","Input","H6Mono","P2Mono","NewsletterForm","schema","useState","formData","setFormData","formErrors","setFormErrors","isSubmitting","setIsSubmitting","isSubmitted","setIsSubmitted","formElementClass","formElementOthersClass","formElementThankYouClass","submitNewsletterForm","event","preventDefault","frontendErrors","validateFormData","formPostToHubspot","newsletterHubspotFormId","message","Trans","formElements","map","input","errorMessages","fields","name","errorClass","length","className","key","element","value","onChange","getValue","target","disabled","attributes","type","onClick","colored","messages","id","CopyrightAndLegal","CopyrightLink","LinkDark","StyledMediaLogoDiv","MediaLogoLink","socialNetwork","href","rel","t","useTranslation","newsletterFormSchema","getNewsletterFormSchema","to","style","display","flexDirection"],"mappings":"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","file":"c3a2cf1c-b613e86cc59e96ccfce5.js","sourcesContent":["import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from '@emotion/styled';\nimport {Trans, useTranslation} from 'gatsby-plugin-react-i18next';\n\nimport {getNewsletterFormSchema, newsletterHubspotFormId} from '../../helpers/constants/forms';\nimport {formPostToHubspot, validateFormData} from '../../helpers/utils/forms';\nimport {breakpoints, colors, ContentContainer, fontWeights} from '../../styles/theme';\nimport {DefaultForm, FormError, Input} from './Forms';\nimport {H6Mono, Link, LinkDark, P2, P2Mono} from './Typography';\nimport {CTAArrow} from './Clickables';\nimport FacebookLogo from '../../images/social-media/facebook.svg';\nimport InstagramLogo from '../../images/social-media/instagram.svg';\nimport LinkedInLogo from '../../images/social-media/linkedin.svg';\nimport MediumLogo from '../../images/social-media/medium.svg';\nimport TwitterLogo from '../../images/social-media/twitter.svg';\nimport YoutubeLogo from '../../images/social-media/youtube.svg';\nimport SwitchLogo from '../../images/switch-logo.svg';\n\n\n/*\n * Constants\n */\nconst currentYear = new Date().getFullYear();\nconst socialNetworks = {\n facebook: {icon: , url: 'https://www.facebook.com/switchpayments/'},\n instagram: {icon: , url: 'https://www.instagram.com/switchpayments/'},\n medium: {icon: , url: 'https://medium.com/switch-blog'},\n linkedin: {icon: , url: 'https://www.linkedin.com/company/switchpayments/'},\n twitter: {icon: , url: 'https://twitter.com/switchpayments'},\n youtube: {icon: , url: 'https://www.youtube.com/channel/UCRBQMnh916VMruvBsa4P7-A'},\n};\n\n\n/*\n * Private Elements\n */\n\n// Common\nconst StyledFooter = styled.footer`\n background: ${colors.black};\n color: ${colors.white};\n padding-top: 100px;\n padding-bottom: 65px;\n\n div {\n &.legal-mobile {\n margin-top: 40px;\n }\n }\n\n .wrapper {\n margin-right: 25px;\n margin-left: 25px;\n }\n \n .media-links {\n margin-top: 60px;\n }\n\n @media (min-width: ${breakpoints.lg}) {\n .wrapper {\n margin-right: 64px;\n margin-left: 64px;\n }\n }\n\n @media (min-width: ${breakpoints.md}) {\n .media-links {\n margin-top: 0;\n }\n }\n`;\n\nconst StyledSwitchLogo = styled(SwitchLogo)`\n margin-bottom: 48px;\n`;\n\nconst FooterNavigationItem = styled(P2)`\n &:last-of-type {\n margin-bottom: 68px;\n }\n \n &.bold {\n font-weight: ${fontWeights.bold};\n }\n`;\n\n// Newsletter Form\nconst StyledNewsletterFormContainer = styled.div`\n flex-grow: 1;\n\n ${DefaultForm} {\n width: 100%;\n margin-top: 10px;\n margin-bottom: 30px;\n\n .form-group {\n width: 100%;\n margin-bottom: 0.6rem;\n }\n\n ${Input} {\n &::placeholder {\n color: ${colors.white};\n }\n }\n\n .input-group-text {\n padding: 0;\n border: none;\n border-bottom: 2px solid ${colors.white};\n border-radius: 0;\n background-color: inherit;\n }\n\n .input-group-append {\n position: absolute;\n top: 0;\n right: 0;\n height: 39px;\n display: flex;\n align-items: center;\n background-color: ${colors.black};\n border: none;\n }\n }\n\n .newsletter-form-helper-elements {\n &.newsletter-form-helper-elements-pledge {\n ${H6Mono} {\n flex: auto;\n }\n }\n }\n\n #newsletter-form-thank-you {\n display: none;\n margin-top: 10px;\n font-weight: ${fontWeights.bold};\n background: linear-gradient(to right, ${colors.darkPurple}, ${colors.white});\n background-clip: text;\n text-fill-color: transparent;\n\n ${P2Mono} {\n &:first-of-type {\n margin-bottom: 25%;\n }\n }\n }\n`;\n\n// Self contained form element for newsletter subscription\nconst NewsletterForm = ({schema}) => {\n const [formData, setFormData] = useState({});\n const [formErrors, setFormErrors] = useState({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isSubmitted, setIsSubmitted] = useState(false);\n\n let formElementClass = '';\n /* eslint-disable-next-line i18next/no-literal-string */\n let formElementOthersClass = 'row no-gutters newsletter-form-helper-elements';\n let formElementThankYouClass = '';\n\n\n const submitNewsletterForm = async event => {\n event.preventDefault();\n setIsSubmitting(true);\n setFormErrors({});\n\n try {\n const frontendErrors = validateFormData(formData, schema);\n if (frontendErrors) {\n setFormErrors(frontendErrors);\n return false;\n }\n\n const formPostResult = await formPostToHubspot(newsletterHubspotFormId, formData);\n if (!formPostResult) {\n setFormErrors({\n message: [Couldn't submit response. Please, try again later.],\n });\n return false;\n }\n setIsSubmitted(true);\n } finally {\n setIsSubmitting(false);\n }\n return true;\n };\n\n\n const formElements = schema.map(input => {\n const onChange = event => {\n // Clean error message when the form values changes\n if (formErrors?.message) {\n formErrors.message = null;\n }\n\n setFormErrors({...formErrors, fields: {...formErrors?.fields, [input.name]: null}});\n setFormData({...formData, [input.name]: input.getValue ? input.getValue(event) : event.target.value});\n };\n\n const errorMessages = formErrors.fields?.[input.name];\n // eslint-disable-next-line i18next/no-literal-string\n const errorClass = errorMessages && errorMessages.length ? 'error' : '';\n\n return (\n
\n \n \n\n \n
\n );\n });\n\n if (isSubmitted) {\n /* eslint-disable-next-line i18next/no-literal-string */\n formElementClass += 'd-none';\n /* eslint-disable-next-line i18next/no-literal-string */\n formElementOthersClass += ' d-none';\n /* eslint-disable-next-line i18next/no-literal-string */\n formElementThankYouClass = 'd-block';\n }\n\n return (\n \n
\n Join our newsletter.\n We promise not to spam you.\n
\n\n
\n \n {formElements}\n \n \n
\n Thank you for subscribing.\n \n \n You'll be the first to receive our updates. You should expect a confirmation email\n soon.\n \n \n
\n
\n\n
\n \n \n By moving forward, you are agreeing to our Privacy Policy as well as with our Terms and\n Conditions.\n \n \n
\n
\n );\n};\n\nNewsletterForm.propTypes = {\n schema: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n};\n\n// Copyright\nconst CopyrightAndLegal = styled(P2Mono)`\n color: ${colors.mediumGrey};\n margin-bottom: 0;\n`;\n\nconst CopyrightLink = styled(LinkDark)`\n color: ${colors.mediumGrey};\n text-decoration: underline;\n \n &:visited {\n color: ${colors.mediumGrey};\n }\n \n // \":hover\" must come AFTER \":visited\" so that it supersedes the color in the \":visited\" selector\n &:hover {\n color: ${colors.darkGrey};\n text-decoration: underline;\n }\n`;\n\n// Media\nconst StyledMediaLogoDiv = styled.div`\n padding: 0;\n\n svg {\n * {\n fill: ${colors.mediumGrey};\n }\n\n &:hover {\n * {\n fill: ${colors.darkGrey};\n }\n }\n }\n`;\n\nconst MediaLogoLink = ({socialNetwork}) => (\n \n {/* eslint-disable-next-line react/jsx-no-target-blank */}\n \n {socialNetworks[socialNetwork].icon}\n \n \n);\n\nMediaLogoLink.propTypes = {\n socialNetwork: PropTypes.string.isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst Footer = () => {\n const {t} = useTranslation();\n\n const newsletterFormSchema = getNewsletterFormSchema(t);\n\n return (\n \n \n
\n
\n
\n
\n
\n
\n
\n \n Products\n \n \n Processing\n \n \n \n Dynamic Routing\n \n \n \n Vault\n \n \n \n Reconciliation\n \n \n \n Risk\n \n \n Analytics\n \n \n \n Terminal\n \n \n
\n
\n
\n
\n \n Use Cases\n \n \n Merchants\n \n \n ISVs\n \n \n PSPs\n \n \n Acquirers\n \n
\n\n
\n \n Channels\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n Channels\n \n
\n
\n \n \n Developers\n \n \n
\n
\n \n Learn\n \n
\n
\n
\n
\n \n About\n \n \n Company\n \n \n Careers\n \n \n Newsroom\n \n \n Contact Us\n \n
\n
\n
\n
\n
\n\n
\n
\n {/* eslint-disable-next-line i18next/no-literal-string */}\n \n ©\n {' '}\n {currentYear}\n {' '}\n Switch\n {' '}\n Privacy Policy\n \n
\n
\n
\n\n
\n \n \n \n\n \n\n
\n \n \n \n \n \n \n
\n\n
\n
\n {/* eslint-disable-next-line i18next/no-literal-string */}\n \n ©\n {' '}\n {currentYear}\n {' '}\n Switch\n {' '}\n Privacy Policy\n \n
\n
\n
\n
\n
\n
\n );\n};\n\n\n/*\n * Exports\n */\nexport default Footer;\n"],"sourceRoot":""}