deploy: Sync all changes
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled

This commit is contained in:
2025-12-13 18:38:44 +01:00
parent 6074506539
commit f8f168d063
2 changed files with 24 additions and 17 deletions

View File

@ -399,9 +399,9 @@ export default function AcquirePage() {
<div className="flex items-center gap-2 mt-1 text-[10px] font-mono text-white/30">
<span className="uppercase">{auction.platform}</span>
<span></span>
<span className={getTimeColor(auction.time_remaining)}>
<span className={getTimeColor(auction.end_time)}>
<Clock className="w-3 h-3 inline mr-1" />
{auction.time_remaining}
{calcTimeRemaining(auction.end_time)}
</span>
</div>
</div>
@ -611,8 +611,8 @@ export default function AcquirePage() {
<div className="text-right font-mono text-base text-accent">
{formatCurrency(auction.current_bid)}
</div>
<div className={clsx("text-center text-xs font-mono", getTimeColor(auction.time_remaining))}>
{auction.time_remaining}
<div className={clsx("text-center text-xs font-mono", getTimeColor(auction.end_time))}>
{calcTimeRemaining(auction.end_time)}
</div>
<div className="flex justify-end">
<div className="w-8 h-8 border border-white/10 flex items-center justify-center text-white/30 group-hover:bg-white group-hover:text-black transition-all">

View File

@ -164,7 +164,7 @@ export default function MarketPage() {
tld: tldFilter === 'all' ? undefined : tldFilter,
minPrice: priceRange === 'low' ? undefined : priceRange === 'mid' ? 100 : priceRange === 'high' ? 1000 : undefined,
maxPrice: priceRange === 'low' ? 100 : priceRange === 'mid' ? 1000 : undefined,
sortBy: 'newest',
sortBy: 'time', // Sort by end time (ending soonest first) - same as Acquire page
limit: ITEMS_PER_PAGE,
offset: (currentPage - 1) * ITEMS_PER_PAGE
})
@ -360,29 +360,30 @@ export default function MarketPage() {
<div className="flex items-center gap-2">
<div className="w-1.5 h-1.5 bg-accent animate-pulse" />
<span className="text-[10px] font-mono tracking-[0.2em] text-accent uppercase">Live Market</span>
{hideSpam && <span className="text-[9px] font-mono text-accent/60 bg-accent/10 px-1 py-0.5">CLEAN</span>}
</div>
<div className="flex items-center gap-2 text-[10px] font-mono text-white/40">
<span>{stats.total.toLocaleString()} auctions</span>
<span className="text-accent">{stats.highScore} premium</span>
<span>{filteredItems.length} shown</span>
{hideSpam && filteredItems.length !== stats.total && <span className="text-white/20">/ {stats.total}</span>}
</div>
</div>
{/* Stats Grid */}
<div className="grid grid-cols-4 gap-2">
<div className="bg-white/[0.02] border border-white/[0.08] p-2">
<div className="text-lg font-bold text-white tabular-nums">{stats.total}</div>
<div className="text-[9px] font-mono text-white/30 uppercase tracking-wider">Total</div>
<div className="text-lg font-bold text-white tabular-nums">{filteredItems.length}</div>
<div className="text-[9px] font-mono text-white/30 uppercase tracking-wider">Shown</div>
</div>
<div className="bg-accent/[0.05] border border-accent/20 p-2">
<div className="text-lg font-bold text-accent tabular-nums">{stats.pounceCount}</div>
<div className="text-lg font-bold text-accent tabular-nums">{filteredItems.filter(i => i.is_pounce).length}</div>
<div className="text-[9px] font-mono text-accent/60 uppercase tracking-wider">Pounce</div>
</div>
<div className="bg-white/[0.02] border border-white/[0.08] p-2">
<div className="text-lg font-bold text-white tabular-nums">{stats.auctionCount}</div>
<div className="text-lg font-bold text-white tabular-nums">{filteredItems.filter(i => !i.is_pounce).length}</div>
<div className="text-[9px] font-mono text-white/30 uppercase tracking-wider">External</div>
</div>
<div className="bg-orange-500/[0.05] border border-orange-500/20 p-2">
<div className="text-lg font-bold text-orange-400 tabular-nums">{stats.highScore}</div>
<div className="text-lg font-bold text-orange-400 tabular-nums">{filteredItems.filter(i => i.pounce_score >= 80).length}</div>
<div className="text-[9px] font-mono text-orange-400/60 uppercase tracking-wider">Score 80+</div>
</div>
</div>
@ -559,25 +560,31 @@ export default function MarketPage() {
<div className="flex items-center gap-2">
<div className="w-1.5 h-1.5 bg-accent animate-pulse" />
<span className="text-[10px] font-mono tracking-[0.2em] text-accent uppercase">Live Auctions</span>
{hideSpam && <span className="text-[9px] font-mono text-accent/60 bg-accent/10 px-1.5 py-0.5">CLEAN</span>}
</div>
<h1 className="font-display text-[2.5rem] leading-[1] tracking-[-0.02em]">
<span className="text-white">Market</span>
<span className="text-white/30 ml-3 font-mono text-[2rem]">{stats.total}</span>
<span className="text-white/30 ml-3 font-mono text-[2rem]">
{filteredItems.length}
{hideSpam && filteredItems.length !== stats.total && (
<span className="text-white/15 text-lg">/{stats.total}</span>
)}
</span>
</h1>
</div>
<div className="flex gap-8">
<div className="text-right">
<div className="text-2xl font-bold text-accent font-mono">{stats.pounceCount}</div>
<div className="text-2xl font-bold text-accent font-mono">{filteredItems.filter(i => i.is_pounce).length}</div>
<div className="text-[9px] font-mono text-white/30 uppercase tracking-wider">Pounce Direct</div>
</div>
<div className="text-right">
<div className="text-2xl font-bold text-white font-mono">{stats.auctionCount}</div>
<div className="text-2xl font-bold text-white font-mono">{filteredItems.filter(i => !i.is_pounce).length}</div>
<div className="text-[9px] font-mono text-white/30 uppercase tracking-wider">External</div>
</div>
<div className="text-right">
<div className="text-2xl font-bold text-amber-400 font-mono">{stats.highScore}</div>
<div className="text-2xl font-bold text-amber-400 font-mono">{filteredItems.filter(i => i.pounce_score >= 80).length}</div>
<div className="text-[9px] font-mono text-white/30 uppercase tracking-wider">Score 80+</div>
</div>
</div>
@ -939,7 +946,7 @@ export default function MarketPage() {
{totalPages > 1 && (
<div className="flex items-center justify-between pt-4">
<div className="text-[10px] text-white/40 font-mono uppercase tracking-wider">
Page {page}/{totalPages} · {stats.total} domains
Page {page}/{totalPages} · {filteredItems.length} domains{hideSpam && filteredItems.length !== items.length && ` (${items.length} before filter)`}
</div>
<div className="flex items-center gap-1">
<button