"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}
)}
>
);
}