"use client"; import { useState, useCallback } from "react"; import { Users, Share2 } from "lucide-react"; import { motion, AnimatePresence } from "framer-motion"; interface TopNavProps { roomId: string; userCount: number; } export default function TopNav({ roomId, userCount }: TopNavProps) { const [toast, setToast] = useState(""); const showToast = useCallback((msg: string) => { setToast(msg); setTimeout(() => setToast(""), 2200); }, []); const handleInvite = useCallback(async () => { const url = window.location.href; const shareData = { title: "别说随便啦,来滑卡片决定吃什么!", text: "我建好房间了,快点开链接一起选餐厅,滑中同一家就去吃!", url, }; try { if (navigator.share && navigator.canShare?.(shareData)) { await navigator.share(shareData); return; } } catch (e) { if (e instanceof Error && e.name === "AbortError") return; } try { await navigator.clipboard.writeText(url); showToast("邀请链接已复制,快去发给朋友吧!"); } catch { showToast("复制失败,请手动复制链接"); } }, [showToast]); return ( <> {toast && ( {toast} )} ); }