{"version":3,"file":"static/chunks/5539.291cf45b3a794c05.js","mappings":"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","sources":["webpack://_N_E/./components/FormContact/FormContact.js","webpack://_N_E/./components/FormContact/index.js","webpack://_N_E/./components/FormContact/FormContact.folkhem.module.scss","webpack://_N_E/./components/FormContact/FormContact.nordr.module.scss"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik, Field } from 'formik';\nimport * as Yup from 'yup';\nimport i18n from '../../i18n';\nimport FormInputText from '../FormInputText';\nimport FormCheckbox from '../FormCheckbox';\nimport FormTextarea from '../FormTextarea';\nimport Btn from '../Btn';\nimport { httpPost } from '../../utils/Http';\nimport { keysToSnakeFromCamel } from '../../utils/CaseConverters';\nimport { dataLayerPush } from '../../utils/DataLayerHelpers';\nimport FormFieldError from '../FormFieldError/FormFieldError';\nimport { ThemeContext, themes } from '../../themes/ThemeContext';\nimport { withThemeAndCSRFToken } from '../../utils/enhancers';\nimport stylesNordr from './FormContact.nordr.module.scss';\nimport stylesFolkhem from './FormContact.folkhem.module.scss';\n\nconst getStyles = (theme) => ({\n [themes.NORDR]: stylesNordr,\n [themes.FOLKHEM]: stylesFolkhem,\n }[theme]\n);\n\nconst validation = {\n contactEmail: Yup.string()\n .email(i18n.t('formContact.validEmail'))\n .required(i18n.t('formContact.emailRequired')),\n contactMessage: Yup.string().required(i18n.t('formContact.messageRequired')),\n contactGdprApproved: Yup.boolean().oneOf(\n [true],\n i18n.t('formContact.gdprApprovedRequired')\n ),\n};\n\nclass FormContact extends React.PureComponent {\n handleSubmit = (values, { setSubmitting, setStatus, setErrors }) => {\n setSubmitting(true);\n\n const { serviceUrl, csrfToken } = this.props;\n\n const postData = {};\n for (const k in values) {\n const x = k.replace(/^contact/, '');\n const newKey = x.charAt(0).toLowerCase() + x.slice(1);\n postData[newKey] = values[k];\n }\n\n if (window.dataLayer && window.dataLayer.length) {\n postData['dataLayer'] = window.dataLayer[0];\n }\n\n postData['submittedFromUrl'] = window.location.href;\n\n httpPost(\n serviceUrl,\n keysToSnakeFromCamel(postData),\n {\n 'X-CSRFToken': csrfToken,\n }\n )\n .then((data) => {\n setSubmitting(false);\n\n if ('errors' in data) {\n setErrors(data.errors);\n return;\n }\n\n dataLayerPush({\n event: 'formSuccess',\n category: 'contact form',\n action: 'submit',\n label: window.location.pathname,\n });\n\n setStatus('submited');\n })\n .catch((error) => {\n error.response\n .json()\n .then((data) => {\n setSubmitting(false);\n\n const errorKeys = Object.keys(data);\n let errors = [];\n if (errorKeys.length) {\n errors = data[errorKeys[0]];\n }\n\n if (!errors.length) {\n errors = [i18n.t('formContact.unexpectedError')];\n }\n\n setErrors(errors);\n })\n .catch(() => {\n setSubmitting(false);\n setErrors([\n i18n.t('formContact.unexpectedError')\n ]);\n });\n });\n };\n\n render() {\n const { title, text, guid, termsText, theme } = this.props;\n const styles = getStyles(theme);\n\n const initialValues = {\n contactEmail: '',\n contactMessage: '',\n contactGdprApproved: false,\n contactProjectGuid: guid,\n };\n\n return (\n
\n
\n

{title}

\n \n\n (\n \n )}\n />\n
\n
\n );\n }\n}\n\nFormContact.propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n guid: PropTypes.string,\n termsText: PropTypes.string,\n};\n\nconst ContactForm = (props) => {\n const untouchedErrors = { ...props.errors };\n for (const k in props.initialValues) {\n if (!props.touched[k] && untouchedErrors[k]) {\n delete untouchedErrors[k];\n }\n }\n\n const theme = useContext(ThemeContext);\n const styles = getStyles(theme);\n\n return (\n
\n \n \n \n\n
\n {untouchedErrors &&\n Object.values(untouchedErrors).map((x, k) => {\n return {x};\n })}\n
\n\n \n {props.status === 'submited' ? (\n
\n {' '}\n {i18n.t('formContact.submitted')}\n \n
\n ) : (\n i18n.t('formContact.submit')\n )}\n \n \n );\n};\n\nContactForm.propTypes = {\n errors: PropTypes.object,\n initialValues: PropTypes.object,\n handleSubmit: PropTypes.func,\n termsText: PropTypes.string,\n touched: PropTypes.object,\n isSubmitting: PropTypes.bool,\n status: PropTypes.bool,\n serviceUrl: PropTypes.string,\n theme: PropTypes.string,\n csrfToken: PropTypes.string,\n};\n\nFormContact.defaultProps = {\n errorList: [],\n serviceUrl: '/wt/api/v1/contact-submission/',\n theme: '',\n csrfToken: '',\n};\n\nexport default withThemeAndCSRFToken(FormContact);\n","import FormContact from './FormContact';\n\nexport default FormContact;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FormContact\":\"FormContact_folkhem_FormContact__JJOQs\",\"FormContact__Content\":\"FormContact_folkhem_FormContact__Content__KkV7I\",\"FormContact__Title\":\"FormContact_folkhem_FormContact__Title__FWK_E\",\"FormContact__Text\":\"FormContact_folkhem_FormContact__Text__LkU3t\",\"FormContact__Errors\":\"FormContact_folkhem_FormContact__Errors__HnwG9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FormContact\":\"FormContact_nordr_FormContact__CXH_j\",\"FormContact__Content\":\"FormContact_nordr_FormContact__Content__twVcg\",\"FormContact__Title\":\"FormContact_nordr_FormContact__Title__vO4re\",\"FormContact__Text\":\"FormContact_nordr_FormContact__Text__g5_vF\",\"FormContact__Errors\":\"FormContact_nordr_FormContact__Errors__cPngX\"};"],"names":["getStyles","theme","themes","stylesNordr","stylesFolkhem","validation","contactEmail","Yup","email","i18n","required","contactMessage","contactGdprApproved","oneOf","FormContact","handleSubmit","values","setSubmitting","setStatus","setErrors","props","serviceUrl","csrfToken","postData","k","x","replace","charAt","toLowerCase","slice","window","dataLayer","length","location","href","httpPost","keysToSnakeFromCamel","then","data","errors","dataLayerPush","event","category","action","label","pathname","catch","error","response","json","errorKeys","Object","keys","this","title","text","guid","termsText","styles","initialValues","contactProjectGuid","className","dangerouslySetInnerHTML","__html","onSubmit","validationSchema","shape","render","ContactForm","React","untouchedErrors","touched","useContext","ThemeContext","name","placeholder","component","FormInputText","autoComplete","FormTextarea","FormCheckbox","map","FormFieldError","Btn","type","disabled","isSubmitting","status","defaultProps","errorList","withThemeAndCSRFToken","module","exports"],"sourceRoot":""}