{"version":3,"sources":["components/organisms/feedback/api.ts","components/organisms/feedback/FeedbackForm.tsx","components/organisms/feedback/Feedback.tsx"],"names":["sendFeedback","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fields","submission","name","email","municipality","reCaptchaToken","wrap","_context","prev","next","feedback","Axios","post","url","window","location","href","catch","e","stop","_x","apply","arguments","Message","title","text","_jsx","className","children","_jsxs","FeedbackForm","_ref2","i18n","handleDone","_useState","useState","_useState2","_slicedToArray","error","setError","captchaKey","drupalSettings","recaptcha_site_key","captchaEl","useRef","formik","useFormik","initialValues","answer","validationSchema","Yup","error_messages","required","invalidToken","nullable","onSubmit","_onSubmit","val","t0","message","handleSubmit","description","id","component","type","onChange","handleChange","value","values","email_label","placeholder","maxLength","errors","touched","name_label","municipality_label","feedback_label","rows","ReCAPTCHA","sitekey","setFieldValue","ref","disabled","isSubmitting","submit_label","Feedback","open","setOpen","_useState3","_useState4","done","setDone","_Fragment","onClick","width","height","viewBox","opacity","d"],"mappings":"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","file":"js/19.12b96c34.chunk.js","sourcesContent":["import Axios from \"axios\";\n\nimport { FeedbackFields } from \"./types\";\n\nconst sendFeedback = async (fields: FeedbackFields) => {\n const {\n feedback: submission,\n name,\n email,\n municipality,\n reCaptchaToken,\n } = fields;\n\n await Axios.post(\"/feedback/submit\", {\n submission,\n name,\n municipality,\n email,\n reCaptchaToken,\n url: window.location.href,\n }).catch((e) => {\n throw e;\n });\n};\n\nexport { sendFeedback };\n","import { useState, useRef, FC } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport ReCAPTCHA from \"react-google-recaptcha\";\n\nimport { sendFeedback } from \"./api\";\n\ninterface MessageProps {\n title?: string;\n text?: string;\n}\n\nconst Message: FC = ({ title, text }) => (\n
\n
\n {title &&

{title}

}\n {text && {text}}\n
\n
\n);\n\ninterface FeedbackFormProps {\n i18n: any;\n handleDone: () => void;\n}\n\nconst FeedbackForm: FC = ({ i18n, handleDone }) => {\n const [error, setError] = useState(\"\");\n const captchaKey = window.drupalSettings.recaptcha_site_key;\n const captchaEl = useRef(null);\n const formik = useFormik({\n initialValues: {\n email: \"\",\n name: \"\",\n municipality: \"\",\n feedback: \"\",\n reCaptchaToken: \"\",\n answer: \"\",\n },\n validationSchema: Yup.object({\n email: Yup.string()\n .email(i18n.error_messages.email)\n .required(i18n.error_messages.required),\n name: Yup.string().required(i18n.error_messages.required),\n municipality: Yup.string(),\n feedback: Yup.string().required(i18n.error_messages.required),\n reCaptchaToken: Yup.string()\n .required(i18n.error_messages.invalidToken)\n .nullable(),\n }),\n onSubmit: async (val) => {\n try {\n setError(\"\");\n await sendFeedback(val);\n handleDone();\n } catch (e: any) {\n setError(e?.message);\n }\n },\n });\n\n return (\n
\n
\n {i18n.description}\n
\n \n
\n \n \n {formik.errors.email && formik.touched.email ? (\n
{formik.errors.email}
\n ) : null}\n
\n
\n \n \n {formik.errors.name && formik.touched.name ? (\n
{formik.errors.name}
\n ) : null}\n
\n
\n \n \n {formik.errors.municipality && formik.touched.municipality ? (\n
\n {formik.errors.municipality}\n
\n ) : null}\n
\n
\n \n \n {formik.errors.feedback && formik.touched.feedback ? (\n
\n {formik.errors.feedback}\n
\n ) : null}\n
\n
\n formik.setFieldValue(\"reCaptchaToken\", value)}\n ref={captchaEl}\n />\n {formik.errors.reCaptchaToken && formik.touched.reCaptchaToken ? (\n
\n {formik.errors.reCaptchaToken}\n
\n ) : null}\n
\n
\n \n \n {i18n.submit_label}\n \n
\n {error && }\n \n );\n};\n\nexport default FeedbackForm;\n","import { FC, useState } from \"react\";\n\nimport FeedbackForm from \"./FeedbackForm\";\n\ninterface Props {\n i18n: any;\n}\n\nconst Feedback: FC = ({ i18n }) => {\n const [open, setOpen] = useState(false);\n const [done, setDone] = useState(false);\n\n const handleDone = () => {\n setDone(true);\n };\n\n return (\n
\n {done ? (\n
\n
\n {i18n.done}\n
\n
\n ) : (\n <>\n
\n
\n setOpen(true)}\n type=\"button\"\n >\n {i18n.title}\n {!open && (\n \n \n \n \n \n \n \n \n )}\n \n
\n {open && (\n setOpen(false)}\n >\n -\n \n )}\n
\n {open && }\n \n )}\n
\n );\n};\n\nexport default Feedback;\n"],"sourceRoot":""}