{"version":3,"sources":["webpack:///./src/components/Pages/Partners/styled.js","webpack:///./src/components/Pages/Partners/helpers.js","webpack:///./src/components/Pages/Partners/index.js","webpack:///./src/pages/partners.de.js","webpack:///./src/components/global/Feature/styled.js","webpack:///./src/components/global/Feature/index.js"],"names":["Background","styled","div","props","src","ContentContainer","FormContainer","RichText","Anchor","getText","values","firstName","lastName","businessEmail","companyName","phoneNumber","country","interest","trim","initialValues","Partners","data","lng","useState","errors","setErrors","isLoading","setIsLoading","setValues","successFormSubmission","setSuccessFormSubmission","errorFormSubmission","setErrorFormSubmission","handleOnChange","name","value","prevValues","event","a","preventDefault","validatePartnersForm","foundErrors","isValid","sleep","postSlackMessage","error","background","publicURL","Container","narrow","padding","white","marginBottom","title","description","ButtonLink","label","button","href","primary","Feature","feature","hasBoxShadow","gutter","xs","id","md","text","dangerouslySetInnerHTML","__html","marked","onSubmit","sm","FormInput","form","placeholder","onChange","LastName","BusinessEmail","type","options","TextArea","Message","success_message","Button","width","submitButton","error_message","height","style","display","alt","PartnersComponent","rest","translatedData","useTranslated","pageContext","path","location","pathname","langKey","hasContainer","showOurCustomers","showWantToKnowMore","metatags","strapiPartners","FeaturesContainer","css","Icon","img","bold","center","margin","marginbottomonsmall","map","key","length","icon","sidenote","defaultProps"],"mappings":"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","file":"component---src-pages-partners-de-js-c996db77d91196ef3935.js","sourcesContent":["import styled from 'styled-components';\r\n\r\nexport const Background = styled.div`\r\n background: url(${props => props.src});\r\n padding: 200px 0;\r\n background-size: cover;\r\n\r\n margin-bottom: 30px;\r\n\r\n @media all and (max-width: 768px) {\r\n margin-bottom: 28px;\r\n padding: 3em 0;\r\n\r\n p {\r\n margin-bottom: 24px;\r\n }\r\n }\r\n`;\r\n\r\nexport const ContentContainer = styled.div`\r\n margin: 80px 0;\r\n`;\r\n\r\nexport const FormContainer = styled.div`\r\n box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);\r\n border-radius: 10px;\r\n padding: 24px 16px;\r\n`;\r\n\r\nexport const RichText = styled.div`\r\n p {\r\n margin-bottom: 32px;\r\n color: rgba(0, 0, 0, 0.64);\r\n line-height: 32px;\r\n\r\n strong {\r\n color: inherit;\r\n }\r\n @media all and (max-width: 768px) {\r\n font-size: 0.875rem;\r\n line-height: 24px;\r\n }\r\n }\r\n`;\r\n\r\nexport const Anchor = styled.div`\r\n height: 60px;\r\n`;\r\n","export function getText(values) {\r\n return `\r\n*New partner request:*\r\n\r\nFirst name: *${values.firstName}*\r\nLast name: *${values.lastName}*\r\nBusiness email: *${values.businessEmail}*\r\nCompany name: *${values.companyName}*\r\nPhone number: *${values.phoneNumber}*\r\nCountry: *${values.country}*\r\n${values.interest.trim() ? `Business: *${values.interest}*` : ''}\r\n `;\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, Row } from 'react-simple-flex-grid';\r\nimport marked from 'marked';\r\n\r\nimport Message from '../../global/Message';\r\nimport { Background, ContentContainer, FormContainer, RichText, Anchor } from './styled';\r\nimport FormInput from '../../global/FormInput';\r\nimport Button from '../../global/Button';\r\nimport ButtonLink from '../../global/ButtonLink';\r\nimport Container from '../../global/Container';\r\nimport TextArea from '../../global/TextArea';\r\nimport { Heading1, Paragraph } from '../../global/Typography';\r\nimport Feature from '../../global/Feature';\r\n\r\nimport { validatePartnersForm } from '../../../utils/validators';\r\nimport { postSlackMessage } from '../../../utils/slack';\r\nimport { sleep } from '../../../utils/helpers';\r\nimport { getText } from './helpers';\r\n\r\nconst initialValues = {\r\n firstName: '',\r\n lastName: '',\r\n businessEmail: '',\r\n companyName: '',\r\n phoneNumber: '',\r\n country: '',\r\n interest: '',\r\n};\r\n\r\nconst Partners = ({ data, lng }) => {\r\n const [errors, setErrors] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [values, setValues] = useState(initialValues);\r\n\r\n const [successFormSubmission, setSuccessFormSubmission] = useState(false);\r\n const [errorFormSubmission, setErrorFormSubmission] = useState(false);\r\n\r\n function handleOnChange(name, value) {\r\n setValues(prevValues => ({ ...prevValues, [name]: value }));\r\n }\r\n\r\n async function handlePartnersFormSubmit(event) {\r\n event.preventDefault();\r\n const { errors: foundErrors, isValid } = validatePartnersForm(values);\r\n\r\n setErrors(foundErrors);\r\n\r\n if (isValid) {\r\n setIsLoading(true);\r\n await sleep(500); // await a bit so button has a chance to show a spinner for better UX\r\n\r\n const { error } = await postSlackMessage(getText(values));\r\n\r\n if (!error) {\r\n setIsLoading(false);\r\n setValues(initialValues);\r\n setSuccessFormSubmission(true);\r\n } else {\r\n setIsLoading(false);\r\n setErrorFormSubmission(true);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {data.title}\r\n \r\n \r\n {data.description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.text ? (\r\n \r\n ) : null}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n >\r\n );\r\n};\r\n\r\nPartners.propTypes = {\r\n data: PropTypes.shape({\r\n form: PropTypes.shape({\r\n success_message: PropTypes.string,\r\n error_message: PropTypes.string,\r\n submitButton: PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n interest: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n country: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n values: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n }).isRequired,\r\n companyName: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n phoneNumber: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n BusinessEmail: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n LastName: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n firstName: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n text: PropTypes.string.isRequired,\r\n description: PropTypes.string.isRequired,\r\n background: PropTypes.shape({\r\n publicURL: PropTypes.string.isRequired,\r\n }).isRequired,\r\n title: PropTypes.string.isRequired,\r\n button: PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n href: PropTypes.string.isRequired,\r\n }).isRequired,\r\n feature: PropTypes.shape({}).isRequired,\r\n }).isRequired,\r\n lng: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Partners;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { graphql } from 'gatsby';\r\n\r\n// components\r\nimport Layout from '../components/Layout';\r\nimport Partners from '../components/Pages/Partners';\r\n\r\n// hooks\r\nimport useTranslated from '../hooks/useTranslated';\r\n\r\nconst PartnersComponent = ({ data, ...rest }) => {\r\n const { translatedData } = useTranslated(data, rest.pageContext);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nPartnersComponent.propTypes = {\r\n data: PropTypes.shape({\r\n strapiPartners: PropTypes.shape({}).isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default PartnersComponent;\r\n\r\nexport const query = graphql`\r\n query PartnersDe {\r\n strapiPartners {\r\n metatags {\r\n description_de\r\n description_en\r\n title_de\r\n title_en\r\n }\r\n background {\r\n publicURL\r\n }\r\n button {\r\n label_en\r\n label_de\r\n href\r\n }\r\n description_en\r\n description_de\r\n feature {\r\n feature {\r\n id\r\n icon {\r\n publicURL\r\n }\r\n description_de\r\n description_en\r\n }\r\n title_de\r\n title_en\r\n }\r\n form {\r\n BusinessEmail {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n LastName {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n companyName {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n country {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n values {\r\n value\r\n label_en\r\n label_de\r\n }\r\n }\r\n firstName {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n interest {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n phoneNumber {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n submitButton {\r\n label_en\r\n label_de\r\n }\r\n success_message_en\r\n success_message_de\r\n error_message_en\r\n error_message_de\r\n }\r\n text_en\r\n text_de\r\n title_en\r\n title_de\r\n }\r\n }\r\n`;\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const Container = styled.div`\r\n border-radius: 10px;\r\n margin-bottom: 70px;\r\n background: white;\r\n\r\n p {\r\n margin-top: 24px;\r\n }\r\n\r\n @media all and (max-width: 768px) {\r\n margin-bottom: 28px;\r\n }\r\n`;\r\n\r\nexport const FeaturesContainer = styled.div`\r\n border-radius: 10px;\r\n ${({ hasBoxShadow }) =>\r\n hasBoxShadow\r\n ? css`\r\n box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);\r\n padding: 40px 16px;\r\n `\r\n : css`\r\n padding: 40px 0px;\r\n\r\n h3 {\r\n font-size: 2.5rem;\r\n\r\n @media all and (max-width: 768px) {\r\n font-size: 1.125rem;\r\n }\r\n }\r\n `}\r\n\r\n h3 {\r\n text-align: center;\r\n }\r\n`;\r\n\r\nexport const Icon = styled.img`\r\n display: block;\r\n margin: 0 auto 20px;\r\n`;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Row } from 'react-simple-flex-grid';\r\n\r\nimport { Container, FeaturesContainer, Icon } from './styled';\r\nimport { Heading3, Paragraph } from '../Typography';\r\n\r\nconst Feature = ({ data, hasBoxShadow }) => {\r\n return (\r\n \r\n \r\n {data.title}\r\n \r\n {data.description}\r\n \r\n \r\n {data.feature.map(feature => (\r\n \r\n {feature.icon ? (\r\n \r\n ) : null}\r\n \r\n {feature.description}\r\n \r\n \r\n ))}\r\n
\r\n \r\n {data.sidenote ? {data.sidenote} : null}\r\n \r\n );\r\n};\r\n\r\nFeature.defaultProps = {\r\n hasBoxShadow: true,\r\n};\r\n\r\nFeature.propTypes = {\r\n data: PropTypes.shape({\r\n feature: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n icon: PropTypes.shape({\r\n publicURL: PropTypes.string.isRequired,\r\n }).isRequired,\r\n description: PropTypes.string.isRequired,\r\n })\r\n ).isRequired,\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n sidenote: PropTypes.string,\r\n }).isRequired,\r\n hasBoxShadow: PropTypes.bool,\r\n};\r\n\r\nexport default Feature;\r\n"],"sourceRoot":""}