'use client'; import { useState } from 'react'; import { useTranslations } from 'next-intl'; import { submitContactMessage } from '@/lib/actions/contactActions'; import { Mail, Send, CheckCircle2, Sparkles } from 'lucide-react'; import { YoutubeIcon as Youtube } from '@/components/icons/YoutubeIcon'; export default function ContactPage() { const t = useTranslations('contact'); const [form, setForm] = useState({ name: '', email: '', subject: '', message: '' }); const [submitted, setSubmitted] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [errorMsg, setErrorMsg] = useState(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); setErrorMsg(null); const res = await submitContactMessage(form); setIsSubmitting(false); if (res.success) { setSubmitted(true); setForm({ name: '', email: '', subject: '', message: '' }); } else { setErrorMsg(res.error || 'Failed to submit message'); } }; return (
{/* Header */}
Get in Touch with Creator

{t('title')}

{t('subtitle')}

{/* Contact Info Card */}

Why Reach Out?

  • Future Tutorial Requests Suggest coding topics, frameworks, or projects you want covered.
  • Sponsorship & Inquiries Discuss channel sponsorships or platform collaborations.
  • Code Issues & Feedback Provide feedback on video code snippets or starter templates.
contact@youtube-devhub.com
YouTube: @DevHubChannel
{/* Form Area */}
{submitted ? (

{t('success')}

Your message has been saved in PostgreSQL. I will reply soon.

) : (
{errorMsg && (
{errorMsg}
)}
setForm({ ...form, name: e.target.value })} className="w-full bg-slate-950 border border-slate-800 rounded-xl px-4 py-2.5 text-xs text-white placeholder-slate-500 focus:outline-none focus:border-red-500/50" placeholder="John Doe" />
setForm({ ...form, email: e.target.value })} className="w-full bg-slate-950 border border-slate-800 rounded-xl px-4 py-2.5 text-xs text-white placeholder-slate-500 focus:outline-none focus:border-red-500/50" placeholder="john@example.com" />
setForm({ ...form, subject: e.target.value })} className="w-full bg-slate-950 border border-slate-800 rounded-xl px-4 py-2.5 text-xs text-white placeholder-slate-500 focus:outline-none focus:border-red-500/50" placeholder="Sponsorship Proposal or New Tutorial Request" />