"use client"; import React, { useState } from "react"; import { motion } from "framer-motion"; import { Send, User, Mail, MessageSquare, Sparkles } from "lucide-react"; import { ShimmerButton as MagicShimmerButton } from "@/components/magicui/shimmer-button"; // --- CONFIGURAÇÃO DE ENGENHARIA --- // Substitua pelo seu número real: CódigoPaís + DDD + Número (sem espaços ou símbolos) const WHATSAPP_NUMBER = "5547992742365"; interface FormData { name: string; email: string; subject: string; message: string; } /** * Wrapper Component: Resolve o erro de tipagem TS2322 (IntrinsicAttributes) * Estendemos a interface para aceitar propriedades de estilo customizadas. */ interface ExtendedShimmerProps extends React.ComponentProps { shimmerColor?: string; shimmerSize?: string; type?: "button" | "submit" | "reset"; disabled?: boolean; } const CustomShimmerButton = ({ children, className, shimmerColor = "#3b82f6", shimmerSize = "0.1em", ...props }: ExtendedShimmerProps) => { return ( {children} ); }; export default function Contact() { const [isSubmitting, setIsSubmitting] = useState(false); const [formData, setFormData] = useState({ name: "", email: "", subject: "full-stack", message: "", }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); await new Promise((resolve) => setTimeout(resolve, 800)); // Definimos os emojis via Unicode Escape para máxima compatibilidade const icons = { rocket: "\u{1F680}", person: "\u{1F464}", email: "\u{1F4E7}", tools: "\u{1F6E0}", chat: "\u{1F4AC}" }; const messageTemplate = `*NOVA REQUISICAO DE PROJETO* *Origem:* Portfolio Profissional *Prioridade:* Alta (Lead Qualificado) --- *CLIENTE:* ${formData.name} *EMAIL:* ${formData.email} *AREA:* ${formData.subject.toUpperCase()} *DESCRICAO:* "${formData.message}" --- _Mensagem gerada via Evandro.dev | Garuva, SC_`; const encodedMessage = encodeURIComponent(messageTemplate); const whatsappUrl = `https://wa.me/${WHATSAPP_NUMBER}?text=${encodedMessage}`; window.open(whatsappUrl, "_blank", "noopener,noreferrer"); setIsSubmitting(false); }; const inputStyles = "w-full bg-slate-950/50 border border-slate-800 rounded-xl px-4 py-3 text-slate-200 placeholder:text-slate-600 focus:border-blue-500/50 focus:ring-2 focus:ring-blue-500/10 outline-none transition-all duration-300 font-mono text-sm"; const labelStyles = "text-xs font-bold text-slate-500 uppercase tracking-widest mb-2 flex items-center gap-2"; return (
setFormData({ ...formData, name: e.target.value })} />
setFormData({ ...formData, email: e.target.value })} />