'use client' import Link from 'next/link' import { useSession, signIn, signOut } from 'next-auth/react' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import useSWR from 'swr' import { LgGeminiAi, LgFolderInvoices, LgComboChart, LgPlus, LgExit, LgIdea // using LgIdea for rewards icon temporarily or can import another } from '@/components/icons' import { useRouter } from 'next/navigation' import { UserBadges } from './ui/user-badges' const fetcher = (url: string) => fetch(url).then((res) => res.json()) export function Header() { const { data: session, status } = useSession() const { data: userData } = useSWR(session ? '/api/user' : null, fetcher, { refreshInterval: 10000, }) const { data: solPrice } = useSWR('/api/sol-price', fetcher, { refreshInterval: 60000, }) // userouter -> login const router = useRouter(); return (
{/* */} Logo
{/* pummmp - make this a gradient */} {/* pummmp */} pummmp.fun
{solPrice && (
{/* */} SOL ${solPrice.price?.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} USD = 0 ? 'text-primary' : 'text-destructive'}`}> {solPrice.change24h >= 0 ? '+' : ''}{solPrice.change24h?.toFixed(2)}%
)} {status === 'loading' ? (
) : session ? (
{userData?.balance?.toLocaleString('en-US', { minimumFractionDigits: 4, maximumFractionDigits: 4 }) ?? '...'} SOL ${((userData?.balance ?? 0) * (solPrice?.price ?? 0)).toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} USD
{session.user?.name?.[0]}
{session.user?.name}
{session.user?.email}
Dashboard Create Coin My Profile signOut()} className="cursor-pointer hover:bg-primary/10 focus:bg-primary/10" > Sign Out
) : ( // )}
) }