import { ChevronDown, CreditCard, Settings, LogOut } from "lucide-react"; import { useEffect, useState, type Dispatch, type SetStateAction } from "react"; import { useNavStore } from "../store"; import type { contentType } from "../content/content"; import Cookies from "js-cookie"; import { getBalance, type UserBalance } from "../getBalance"; const refreshBalance = async ( setBalance: Dispatch> ) => { try { const data = await getBalance(); setBalance(data); } catch (err) { console.log("error", err); } }; export function Profile({ content }: { content: contentType["profile"] }) { const [profileOpen, setProfileOpen] = useState(false); const { user, logout, selectedLang } = useNavStore(); const [balance, setBalance] = useState(null); useEffect(() => { refreshBalance(setBalance); }, []); if (!user) return null; // Check if profilePicture is a URL or a color const isImageUrl = user.profilePicture.startsWith("http") || user.profilePicture.startsWith("/avatars/"); const firstLetter = user.username.charAt(0).toUpperCase(); return (
{profileOpen && (
setProfileOpen(false)} /> )}
{/* User Info Section */}
{isImageUrl ? ( {user.username} ) : ( firstLetter )}

{user.username}

{user.email}

{/* Credits Display */}
{content.credits}
${balance?.credits}
{/* Menu Items */} {/* Sign Out */}
); }