first day of vibe coding

This commit is contained in:
k
2026-04-20 22:11:18 +08:00
commit 1747fc489f
38 changed files with 15267 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
'use client'
import Link from 'next/link'
import { usePathname } from 'next/navigation'
import { useTranslations } from 'next-intl'
import { useAccount } from 'wagmi'
import { useConnectModal } from '@rainbow-me/rainbowkit'
import { shortenAddress } from '@/lib/utils'
const navItems = [
{ key: 'overview', href: '' },
{ key: 'posts', href: '/posts' },
{ key: 'trades', href: '/trades' },
{ key: 'analytics', href: '/analytics' },
] as const
interface NavbarProps {
locale: string
}
export default function Navbar({ locale }: NavbarProps) {
const t = useTranslations('nav')
const pathname = usePathname()
const { address, isConnected } = useAccount()
const { openConnectModal } = useConnectModal()
function isActive(href: string) {
const full = `/${locale}${href}`
if (href === '') return pathname === `/${locale}` || pathname === `/${locale}/`
return pathname.startsWith(full)
}
return (
<nav className="fixed top-0 left-0 right-0 z-50 h-14 bg-[#000000] border-b border-[#141414] flex items-center px-6">
{/* Logo */}
<Link href={`/${locale}`} className="flex items-center gap-2 mr-10 shrink-0">
<span className="text-[#f97316] font-bold text-lg leading-none">TS</span>
<span className="text-white font-medium text-sm">TrumpSignal</span>
</Link>
{/* Center nav */}
<div className="flex items-center gap-6 flex-1">
{navItems.map((item) => (
<Link
key={item.key}
href={`/${locale}${item.href}`}
className={`text-[13px] transition-colors ${
isActive(item.href) ? 'text-[#f97316]' : 'text-[#555555] hover:text-white'
}`}
>
{t(item.key)}
</Link>
))}
</div>
{/* Right side */}
<div className="flex items-center gap-3 shrink-0">
<button className="text-[13px] text-[#555555] hover:text-white border border-[#141414] rounded-full px-3 py-1 transition-colors">
{t('language')}
</button>
{isConnected && address ? (
<button className="text-[13px] bg-[#141414] text-white border border-[#1a1a1a] rounded-full px-3 py-1">
{shortenAddress(address)}
</button>
) : (
<button
onClick={openConnectModal}
className="text-[13px] bg-[#f97316] text-black font-medium rounded-full px-4 py-1.5 hover:bg-[#fb923c] transition-colors"
>
{t('connectWallet')}
</button>
)}
</div>
</nav>
)
}