// src/components/UserProfileBox.tsx import { useState, useCallback } from "react"; import { useNavigate } from "react-router-dom"; import { useDescope, useSession, useUser } from "@descope/react-sdk"; import { User } from "lucide-react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "./ui/button"; import { LoginModal } from "./LoginModal"; export function UserProfileBox() { const { isAuthenticated, isSessionLoading } = useSession(); const { user, isUserLoading } = useUser(); const sdk = useDescope(); const navigate = useNavigate(); const [isLoginModalOpen, setIsLoginModalOpen] = useState(false); const handleLogout = useCallback(() => { sdk.logout(); navigate("/"); }, [sdk, navigate]); const handleLoginSuccess = () => { setIsLoginModalOpen(false); }; if (isSessionLoading || isUserLoading) { return (
); } return ( <>{user?.name}
{user?.email}