{"version":3,"sources":["pages/Contact/index.js"],"names":["Contact","window","location"],"mappings":"qHA+PeA,UALf,WACE,OAAQC,OAAOC,SAAW","file":"static/js/18.37a471f5.chunk.js","sourcesContent":["{/*import { useState, useCallback, useRef } from 'react';\nimport classNames from 'classnames';\nimport { TransitionGroup, Transition } from 'react-transition-group';\nimport { Helmet } from 'react-helmet';\nimport Input from 'components/Input';\nimport DecoderText from 'components/DecoderText';\nimport Divider from 'components/Divider';\nimport { Button } from 'components/Button';\nimport Section from 'components/Section';\nimport Icon from 'components/Icon';\nimport Heading from 'components/Heading';\nimport Text from 'components/Text';\nimport { useScrollRestore, useFormInput, useRouteTransition } from 'hooks';\nimport { reflow, isVisible } from 'utils/transition';\nimport prerender from 'utils/prerender';\nimport { msToNum, numToPx, numToMs } from 'utils/style';\nimport { tokens } from 'components/ThemeProvider/theme';\nimport './index.css';\n\nconst initDelay = tokens.base.durationS;\n\nfunction getStatusError({\n status,\n errorMessage,\n fallback = 'There was a problem with your request',\n}) {\n if (status === 200) return false;\n\n const statuses = {\n 500: 'There was a problem with the server, try again later',\n 404: 'There was a problem connecting to the server. Make sure you are connected to the internet',\n };\n\n if (errorMessage) {\n return errorMessage;\n }\n\n return statuses[status] || fallback;\n}\n\nfunction getDelay(delayMs, initDelayMs = numToMs(0), multiplier = 1) {\n const numDelay = msToNum(delayMs) * multiplier;\n return { '--delay': numToMs((msToNum(initDelayMs) + numDelay).toFixed(0)) };\n}\n\nconst Contact = () => {\n const { status } = useRouteTransition();\n const errorRef = useRef();\n const email = useFormInput('');\n const message = useFormInput('');\n const [sending, setSending] = useState(false);\n const [complete, setComplete] = useState(false);\n const [statusError, setStatusError] = useState('');\n useScrollRestore();\n\n const onSubmit = useCallback(\n async event => {\n event.preventDefault();\n setStatusError('');\n\n if (sending) return;\n\n try {\n setSending(true);\n\n const response = await fetch('/api/message', {\n method: 'POST',\n mode: 'cors',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email: email.value,\n message: message.value,\n }),\n });\n\n const responseMessage = await response.json();\n\n const statusError = getStatusError({\n status: response?.status,\n errorMessage: responseMessage?.error,\n fallback: 'There was a problem sending your message',\n });\n\n if (statusError) throw new Error(statusError);\n\n setComplete(true);\n setSending(false);\n } catch (error) {\n setSending(false);\n setStatusError(error.message);\n }\n },\n [email.value, message.value, sending]\n );\n\n return (\n
\n \n Contact | Cody Bennett\n \n \n \n {!complete && (\n \n {status => (\n
\n \n \n \n \n \n \n \n {!!statusError && (\n \n {errorStatus => (\n \n
\n
\n \n {statusError}\n
\n
\n \n )}\n
\n )}\n
\n \n Send Message\n \n \n )}\n
\n )}\n {complete && (\n \n {status => (\n
\n \n Message Sent\n \n \n I’ll get back to you within a couple days\n \n \n Back to homepage\n \n
\n )}\n
\n )}\n
\n
\n );\n};\n\nexport default Contact;\n*/}\n\nfunction Contact() {\n return (window.location = 'mailto:areebhammad@gmail.com');\n}\n
Send e-mail
;\n\nexport default Contact;\n"],"sourceRoot":""}