"use client"; import { useState } from "react"; import { API_URL } from '../data/shared'; interface SupportModalProps { isOpen: boolean; onClose: () => void; } interface FormData { email: string; subject: string; message: string; } export default function SupportModal({ isOpen, onClose }: SupportModalProps) { const [formData, setFormData] = useState({ email: "", subject: "", message: "" }); const [isSubmitting, setIsSubmitting] = useState(false); const [submitStatus, setSubmitStatus] = useState<"success" | "error" | null>(null); if (!isOpen) return null; const handleModalClick = (e: React.MouseEvent) => { if (e.target === e.currentTarget) { onClose(); } }; const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); setSubmitStatus(null); try { const params = new URLSearchParams({ email: formData.email, subject: formData.subject, message: formData.message }); const response = await fetch(`${API_URL}add_feedback.php?${params}`, { method: 'GET', }); if (response.ok) { setSubmitStatus("success"); setFormData({ email: "", subject: "", message: "" }); setTimeout(() => { onClose(); }, 2000); } else { setSubmitStatus("error"); } } catch { setSubmitStatus("error"); } finally { setIsSubmitting(false); } }; return (

Support

Looking for support?

Join our{" "} Telegram group {" "} — our mods and community are always happy to help!

Interested in a collaboration or partnership?

Fill out the form below and we'll get back to you as soon as possible.