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
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:
@ -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">
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user