{"version":3,"file":"ContactView-BwOWDqSM.js","sources":["../../../assets/images/contact/contact-entrance.jpg","../../../src/types.ts","../../../src/components/Form.tsx","../../../src/components/pages/contact/ContactView.tsx"],"sourcesContent":["export default \"__VITE_ASSET__DFWzR879__\"","declare global {\n interface Window {\n _paq: Array;\n }\n}\n\nexport type BreakpointKey = keyof Breakpoints;\n\nexport interface Breakpoints {\n sm?: string | number,\n md?: string | number,\n lg?: string | number,\n xl?: string | number,\n xxl?: string | number,\n}\n\nexport interface User {\n id: number;\n name: string;\n email: string;\n position: string;\n published: boolean;\n notEmployed: boolean;\n image: string;\n summary: string;\n tags: string;\n quoteTitle: string;\n quote: string;\n deleted: boolean;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface Article {\n id: number;\n title: string;\n subtitle: string;\n slug: string;\n date: Date;\n image: string;\n published: boolean;\n summary: string;\n content: string;\n userIds: Array;\n intervieweeId: number;\n interviewee: User;\n tags: Tag[];\n deleted: boolean;\n createdAt: Date;\n updatedAt: Date;\n authors: User[];\n locale: string;\n}\n\nexport interface Tag {\n id: number;\n name: string;\n description: string;\n language: boolean;\n active?: boolean,\n}\n\nexport interface CaseCategory {\n id: number;\n name: string;\n description?: string,\n slug: string;\n}\n\nexport interface Case {\n id: number;\n name: string;\n category: CaseCategory;\n image: string;\n client_image: string;\n description: string;\n date: Date;\n tags: Tag[];\n published: boolean;\n}\n\nexport interface OsProject {\n id: number;\n name: string;\n description: string;\n link: string;\n date: Date;\n image: string;\n published: boolean;\n tags: Tag[];\n users: User[];\n deleted: boolean;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface Vacancy {\n id: number;\n title: string;\n slug: string;\n subtitle: string;\n image: string;\n teaser: string;\n sliderTitle: string;\n sliderIntro: string;\n aboutYouTitle: string;\n aboutYouIntro: string;\n aboutUsTitle: string;\n aboutUsIntro: string;\n yourJobTitle: string;\n yourJobIntro: string;\n gainsTitle: string;\n gainsIntro: string;\n published: boolean;\n deleted: boolean;\n createdAt: Date;\n updatedAt: Date;\n locale: string;\n}\n\nexport interface Author {\n name: string,\n image: string,\n position: string,\n email: string,\n}\n\nexport interface AnimationInterface {\n background: string;\n color: string;\n\n init(canvas: HTMLCanvasElement): void;\n update(ctx: CanvasRenderingContext2D): void;\n move(x: number, y: number): void;\n}\n\nexport interface Client {\n image: string,\n name: string,\n tag: string,\n description?: string,\n link?: string;\n}\n\nexport interface FormDetails {\n id: string,\n fieldGroups: Array,\n}\n\nexport interface FieldGroupDetails {\n groupType: string,\n richTextType: string,\n fields: Array\n}\n\nexport interface FieldDetails {\n objectTypeId: string,\n name: string,\n label?: string,\n required: boolean,\n hidden: boolean,\n fieldType: FieldType,\n options: Array,\n defaultValues: Array,\n}\n\nexport interface FormOption {\n label: string,\n value: string,\n description: string,\n displayOrder: number\n}\n\nexport enum FieldType {\n string = 'string',\n email = 'email',\n single_line_text = 'single_line_test',\n multi_line_text = 'multi_line_text',\n radio = 'radio',\n}\n\nexport interface FormValues {\n fields: Array\n}\n\nexport interface FieldValue {\n name: string,\n value: string,\n}\n\nexport interface SubmissionResponse {\n inlineMessage: string,\n}\n","import React, { useEffect, useState } from 'react';\nimport { getFormDetails } from '../api';\nimport { FieldDetails, FieldType, FieldValue, FormDetails, FormValues, SubmissionResponse } from '../types';\nimport axios from 'axios';\nimport { styled } from 'styled-components';\nimport Button from './Button';\nimport { useRoute } from 'react-router5';\nimport { RouterState } from '../routerMiddleware';\n\n\nconst StyledForm = styled.form`\n label {\n font-size: var(--font-size-md);\n font-weight: 500;\n line-height: var(--line-height-tight);\n margin-bottom: 0.5rem;\n width: 50%;\n }\n\n fieldset > label {\n font-weight: 300;\n display: flex;\n align-items: center;\n margin-top: .7rem;\n margin-bottom: 0;\n }\n\n div {\n margin-bottom: 1rem;\n }\n\n input,\n textarea {\n width: 100%;\n padding: var(--space-xs);\n border-style: solid;\n border-color: var(--color-downriver-400);\n border-width: 1px;\n border-radius: var(--border-radius);\n resize: vertical;\n font-family: inherit;\n font-size: var(--font-size-md);\n font-weight: 300;\n }\n\n fieldset {\n display: flex;\n flex-wrap: wrap;\n }\n\n input[type=\"radio\"] {\n width: auto;\n margin-left: 0;\n margin-top: 0;\n margin-right: var(--space-xs);\n appearance: none;\n border: 2px solid var(--color-downriver-400);\n border-radius: 100%;\n transition: 0.2s all linear;\n }\n\n input[type=\"radio\"]:checked {\n //border: 6px solid var(--color-downriver-400);\n background-color: var(--color-downriver-400);\n height: 1rem;\n }\n\n`;\n\nexport interface FormProps {\n form_id: string\n}\n\nexport default function Form({ form_id }: FormProps) {\n const { route } = useRoute();\n const state = route as RouterState;\n\n const [formDetails, setFormDetails] = useState();\n const [successMessage, setSuccessMessage] = useState();\n\n useEffect(() => {\n getFormDetails(form_id).then(response => setFormDetails(response));\n }, []);\n\n const renderElement = (field_details: FieldDetails, id: number,): React.ReactElement => {\n if (field_details.name === 'referrer') {\n return ;\n }\n if (field_details.fieldType === FieldType.multi_line_text) {\n return ;\n }\n if (field_details.fieldType === FieldType.string || field_details.fieldType === FieldType.single_line_text) {\n return ;\n }\n if (field_details.fieldType === FieldType.radio) {\n let default_value = field_details.defaultValues[0] || undefined;\n default_value = state.params[field_details.name] ? decodeURIComponent(state.params[field_details.name]) : default_value;\n return (\n
\n { field_details.options.map(option => (\n \n )) }\n
\n )\n }\n\n return ;\n }\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n const form = e.target as HTMLFormElement;\n const formData = new FormData(form);\n const fields: FieldValue[] = []\n\n for (const [name, value] of formData) {\n if (typeof value === 'string') {\n fields.push({ name, value })\n }\n }\n\n const data: FormValues = { fields }\n axios.post(`/api/form/${ form_id }`, data).then((response) => {\n if (response.status != 200) {\n setSuccessMessage('Unfortunately, this did not work. Please contact us via email.')\n } else {\n setSuccessMessage(response.data.inlineMessage)\n }\n }).catch(() => {\n setSuccessMessage('Unfortunately, this did not work. Please contact us via email.')\n });\n }\n\n return (\n <>\n {successMessage &&(\n

\n )}\n {!successMessage && formDetails && formDetails.fieldGroups && (\n \n {\n formDetails.fieldGroups.map((fieldGroup, key) => (\n fieldGroup.fields.map((field) => (\n
\n { !field.hidden &&\n }\n { field.hidden && renderElement(field, key) }\n
\n )))\n )\n }\n \n
\n )}\n \n )\n}\n","import React from 'react';\nimport { faEnvelope, faMapMarker, faPhone } from '@fortawesome/free-solid-svg-icons';\nimport Button from '../../Button';\nimport ButtonGroup from '../../ButtonGroup';\nimport Card from '../../Card';\nimport Col from '../../layout/Col';\nimport Container from '../../layout/Container';\nimport Flex from '../../layout/Flex';\nimport Grid from '../../layout/Grid'\nimport Heading from '../../Heading';\nimport HeroAnimated from '../../HeroAnimated';\nimport Image from '../../Image';\nimport Layout from '../../layout/Layout';\nimport List from '../../List';\nimport Sections from '../../layout/Sections';\nimport Text from '../../Text';\nimport { Seo } from '../../seo/Seo';\nimport contact from '../../../../assets/images/contact/contact-entrance.jpg';\nimport Form from '../../Form';\nimport ContentSingle from '../../ContentSingle';\nimport Icon from '../../Icon';\n\nexport default function ContactView() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n

\n We would love to hear more about your goals and challenges. After submitting, Hugo will get back to you within one business day.\n

\n
\n \n \n \n \n \n

\n \n

\n \n \n
  • Tweede golf
  • \n
  • Castellastraat 26
  • \n
  • 6512 EX Nijmegen
  • \n
  • The Netherlands
  • \n
  • Phone: +31 24 3010484
  • \n
  • Email: info@tweedegolf.nl
  • \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n );\n}\n"],"names":["contact","FieldType","StyledForm","styled","form","withConfig","displayName","componentId","Form","form_id","route","useRoute","state","formDetails","setFormDetails","useState","successMessage","setSuccessMessage","useEffect","getFormDetails","then","response","renderElement","field_details","id","name","toString","document","referrer","fieldType","multi_line_text","jsx","required","hidden","params","string","single_line_text","radio","default_value","defaultValues","undefined","decodeURIComponent","options","map","option","value","label","handleSubmit","e","preventDefault","target","formData","FormData","fields","push","data","axios","post","status","inlineMessage","catch","__html","fieldGroups","jsxs","fieldGroup","key","field","Button","ContactView","Layout","Seo","Sections","HeroAnimated","Heading","Text","ButtonGroup","Icon","faPhone","faEnvelope","ContentSingle","Container","Grid","lg","Card","Flex","sm","md","List","faMapMarker","Col","Image"],"mappings":"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"}