{"version":3,"file":"ForgotPassword-T6Wa1V9D.js","sources":["../../../app/frontend/pages/ForgotPassword.tsx"],"sourcesContent":["// app/frontend/pages/ForgotPassword.tsx\nimport React, { useState } from 'react';\nimport { Head } from '@inertiajs/react';\nimport { useForm } from '@mantine/form';\nimport {\n Container,\n Title,\n TextInput,\n Paper,\n Button,\n Stack,\n Anchor,\n Box,\n MantineProvider,\n createTheme,\n MantineTheme,\n} from '@mantine/core';\nimport { Notifications, showNotification } from '@mantine/notifications';\nimport { IconMail, IconAlertCircle, IconCheck } from '@tabler/icons-react';\n\nimport '@mantine/core/styles.css';\nimport '@mantine/notifications/styles.css';\nimport '../styles/Login-form.css';\n\n// Define your custom theme\nconst theme = createTheme({\n primaryColor: 'orange',\n colors: {\n orange: [\n '#FEF5ED',\n '#FDE3D1',\n '#FCB693',\n '#FA9D73',\n '#F87F4D',\n '#F66A33',\n '#EA580C',\n '#C44B0A',\n '#9E3D08',\n '#783006',\n ],\n },\n fontFamily: 'Poppins, sans-serif',\n headings: {\n fontFamily: 'Poppins, sans-serif',\n },\n});\n\nexport default function ForgotPassword() {\n const [isLoading, setIsLoading] = useState(false);\n\n // Initialize the form with an email field and real-time validation\n const form = useForm({\n initialValues: {\n email: '',\n },\n validate: {\n email: (value) => (/^\\S+@\\S+$/.test(value) ? null : 'Please enter a valid email address'),\n },\n validateInputOnChange: true,\n });\n\n const handleSubmit = async (values: typeof form.values) => {\n setIsLoading(true);\n // Get the CSRF token from the meta tag\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]')?.content;\n\n try {\n const formData = new FormData();\n formData.append('user[email]', values.email);\n\n // POST to the password reset route (adjust this URL as necessary)\n const response = await fetch('/password', {\n method: 'POST',\n headers: {\n 'X-CSRF-Token': csrfToken || '',\n },\n credentials: 'include',\n body: formData,\n });\n\n if (response.ok) {\n showNotification({\n color: 'green',\n title: 'Instructions Sent',\n message: 'Password reset instructions have been sent to your email.',\n icon: ,\n autoClose: 3000,\n });\n } else {\n const data = await response.json().catch(() => ({}));\n showNotification({\n color: 'red',\n title: 'Error',\n message: data.error || 'Unable to send instructions. Please try again.',\n icon: ,\n autoClose: 5000,\n });\n }\n } catch (error) {\n showNotification({\n color: 'red',\n title: 'Error',\n message: 'An error occurred. Please try again.',\n icon: ,\n autoClose: 5000,\n });\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n ({\n width: '100%',\n maxWidth: '400px',\n margin: '0 auto',\n marginTop: '40px',\n [mantineTheme.fn.smallerThan('sm')]: {\n padding: '20px',\n marginTop: '20px',\n },\n })}\n >\n \n Forgot your password?\n \n
\n \n }\n disabled={isLoading}\n {...form.getInputProps('email')}\n />\n \n \n
\n \n \n Back to login\n \n \n \n
\n
\n
\n );\n}\n"],"names":["theme","createTheme","ForgotPassword","isLoading","setIsLoading","useState","form","useForm","value","handleSubmit","values","csrfToken","_a","formData","response","showNotification","IconCheck","data","IconAlertCircle","jsxs","MantineProvider","jsx","Notifications","Head","Container","Box","Paper","mantineTheme","Title","Stack","TextInput","IconMail","Button","Anchor"],"mappings":"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"}