'use client'; import { useEffect, useRef, useState } from 'react'; import { motion, AnimatePresence, Reorder } from 'framer-motion'; import Announcement from "./components/Announcement"; function PlusIcon(props) { return ( ); } function TrashIcon(props) { return ( ); } function SettingsIcon(props) { return ( ); } function RefreshIcon(props) { return ( ); } function ChevronIcon(props) { return ( ); } function SortIcon(props) { return ( ); } function GridIcon(props) { return ( ); } function CloseIcon(props) { return ( ); } function ExitIcon(props) { return ( ); } function ListIcon(props) { return ( ); } function DragIcon(props) { return ( ); } function FolderPlusIcon(props) { return ( ); } function StarIcon({ filled, ...props }) { return ( ); } function Stat({ label, value, delta }) { const dir = delta > 0 ? 'up' : delta < 0 ? 'down' : ''; return (
{label} {value}
); } function FeedbackModal({ onClose }) { const [submitting, setSubmitting] = useState(false); const [succeeded, setSucceeded] = useState(false); const [error, setError] = useState(""); const onSubmit = async (e) => { e.preventDefault(); setSubmitting(true); setError(""); const formData = new FormData(e.target); const nickname = formData.get("nickname")?.trim(); if (!nickname) { formData.set("nickname", "匿名"); } // Web3Forms Access Key formData.append("access_key", "c390fbb1-77e0-4aab-a939-caa75edc7319"); formData.append("subject", "基估宝 - 用户反馈"); try { const response = await fetch("https://api.web3forms.com/submit", { method: "POST", body: formData }); const data = await response.json(); if (data.success) { setSucceeded(true); } else { setError(data.message || "提交失败,请稍后再试"); } } catch (err) { setError("网络错误,请检查您的连接"); } finally { setSubmitting(false); } }; return ( e.stopPropagation()} >
意见反馈
{succeeded ? (
🎉

感谢您的反馈!

我们已收到您的建议,会尽快查看。

) : (