"use client"; import { useState, useCallback } from "react"; import { Users, QrCode, LogOut, Crown, Lock } from "lucide-react"; import { motion, AnimatePresence } from "framer-motion"; import QrInviteModal from "./QrInviteModal"; import RoomManageModal from "./RoomManageModal"; import type { UserProfile, SceneType } from "@/types"; import { getSceneConfig } from "@/lib/sceneConfig"; interface TopNavProps { roomId: string; userCount: number; onExit?: () => void; isCreator?: boolean; userId?: string; users?: string[]; locked?: boolean; swipeCounts?: Record; totalCards?: number; userProfiles?: Record; scene?: SceneType; } export default function TopNav({ roomId, userCount, onExit, isCreator = false, userId = "", users = [], locked = false, swipeCounts = {}, totalCards = 0, userProfiles = {}, scene = "eat", }: TopNavProps) { const sceneConfig = getSceneConfig(scene); const [toast, setToast] = useState(""); const [showQr, setShowQr] = useState(false); const [showManage, setShowManage] = useState(false); const showToast = useCallback((msg: string) => { setToast(msg); setTimeout(() => setToast(""), 2200); }, []); return ( <> {toast && ( {toast} )} setShowQr(false)} roomId={roomId} onToast={showToast} scene={scene} /> {isCreator && ( setShowManage(false)} roomId={roomId} userId={userId} users={users} locked={locked} swipeCounts={swipeCounts} totalCards={totalCards} userProfiles={userProfiles} onToast={showToast} /> )} ); }