import React, { useState } from 'react'; import { useMsal } from '@azure/msal-react'; import { BarclaysLogo } from './icons/BarclaysLogo'; import { XIcon } from './icons/XIcon'; import { MicrosoftLogo } from './icons/MicrosoftLogo'; import { loginRequest } from '../services/authConfig'; const API_URL = import.meta.env.VITE_BACKEND_URL || 'http://localhost:8000'; const SupportModal: React.FC<{ isOpen: boolean; onClose: () => void; }> = ({ isOpen, onClose }) => { const [query, setQuery] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); const [submitStatus, setSubmitStatus] = useState<{ type: 'success' | 'error'; message: string } | null>(null); if (!isOpen) return null; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!query.trim()) return; setIsSubmitting(true); setSubmitStatus(null); try { const response = await fetch(`${API_URL}/api/support/email`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: query, subject: 'Support Request from Mod Comms Login', }), }); if (!response.ok) { throw new Error('Failed to send'); } setSubmitStatus({ type: 'success', message: 'Thank you for your query. A member of the support team will be in touch with you shortly.' }); setQuery(''); setTimeout(() => { onClose(); setSubmitStatus(null); }, 3000); } catch { setSubmitStatus({ type: 'error', message: 'Failed to send your message. Please try again later.' }); } finally { setIsSubmitting(false); } }; return (
e.stopPropagation()} >

Contact Support

Please describe your issue or query below. A member of our team will be in touch shortly.

{submitStatus && (
{submitStatus.message}
)}