import { Menu, X } from 'lucide-react'; import { login, logout } from "../utils/api/users.ts"; import { Dropdown, DropdownItem } from "./Dropdown.tsx"; import { GoogleLogin } from '@react-oauth/google'; import type { User } from "../utils/types.ts"; import type { CredentialResponse } from '@react-oauth/google'; import MenuButton from "./buttons/MenuButton.tsx"; import clsx from "clsx"; import {useNavigate} from "react-router-dom"; type props = { sidebarToggled: boolean; setSidebarToggled: (toggled: boolean) => void; user: User | null; fetchUser: () => void; isStreaming: boolean; className?: string; } const Topbar = ({ sidebarToggled, setSidebarToggled, user, fetchUser, isStreaming, className}: props) => { const navigate = useNavigate(); const handleLogin = (response: CredentialResponse) => { if (!response.credential) { console.error("No credential received from Google login."); return; } login(response.credential) .then(() => { fetchUser(); navigate(0); }) .catch((error) => { console.error("Login failed:", error); }); } const handleLogout = () => { logout() .then(() => { fetchUser(); navigate("/"); }) .catch((error) => { console.error("Logout failed:", error); }); } return (