fix: TypeScript build errors & CORS config
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

Frontend Fixes:
- command/auctions: Fix addDomainToWatchlist → addDomain, Set iteration
- command/dashboard: Add missing Bell icon import
- command/portfolio: Optional chaining for valuation_formula
- command/pricing: Wrap AlertTriangle in span for title prop
- command/watchlist: Fix Badge className, optional form event
- legal/privacy: Escape >> in JSX
- api.ts: Add optional valuation_formula to DomainValuation

Server:
- CORS: Added http://10.42.0.73:3000 to allowed origins
- Email verification enabled
This commit is contained in:
2025-12-12 20:47:41 +01:00
parent 6cb985fa8b
commit 5a1d3f2847
7 changed files with 19 additions and 16 deletions

View File

@ -202,8 +202,8 @@ export default function AuctionsPage() {
setTrackingInProgress(domain)
try {
await api.addDomainToWatchlist({ domain })
setTrackedDomains(prev => new Set([...prev, domain]))
await api.addDomain(domain)
setTrackedDomains(prev => new Set([...Array.from(prev), domain]))
} catch (error) {
console.error('Failed to track domain:', error)
} finally {

View File

@ -22,6 +22,7 @@ import {
Activity,
Loader2,
Search,
Bell,
} from 'lucide-react'
import clsx from 'clsx'
import Link from 'next/link'

View File

@ -705,10 +705,12 @@ export default function PortfolioPage() {
{valuation.confidence}
</span>
</div>
<div className="p-3 bg-foreground/5 rounded-lg">
<p className="text-foreground-muted mb-1">Valuation Formula</p>
<p className="text-foreground font-mono text-xs break-all">{valuation.valuation_formula}</p>
</div>
{valuation.valuation_formula && (
<div className="p-3 bg-foreground/5 rounded-lg">
<p className="text-foreground-muted mb-1">Valuation Formula</p>
<p className="text-foreground font-mono text-xs break-all">{valuation.valuation_formula}</p>
</div>
)}
<div className="p-3 bg-amber-400/10 border border-amber-400/20 rounded-lg text-xs text-amber-400">
<p>This is an algorithmic estimate based on domain length, TLD, and market patterns. Actual market value may vary.</p>
</div>

View File

@ -575,10 +575,9 @@ export default function CommandTldDetailPage() {
${registrar.renewal_price.toFixed(2)}
</span>
{hasRenewalTrap && (
<AlertTriangle
className="w-3.5 h-3.5 text-amber-400 cursor-help"
title={`Renewal trap: ${(registrar.renewal_price / registrar.registration_price).toFixed(1)}x registration price`}
/>
<span title={`Renewal trap: ${(registrar.renewal_price / registrar.registration_price).toFixed(1)}x registration price`}>
<AlertTriangle className="w-3.5 h-3.5 text-amber-400 cursor-help" />
</span>
)}
</div>
</td>

View File

@ -133,8 +133,8 @@ export default function WatchlistPage() {
], [stats])
// Callbacks - prevent recreation on every render
const handleAddDomain = useCallback(async (e: React.FormEvent) => {
e.preventDefault()
const handleAddDomain = useCallback(async (e?: React.FormEvent) => {
e?.preventDefault()
if (!newDomain.trim()) return
setAdding(true)
@ -227,7 +227,7 @@ export default function WatchlistPage() {
<div>
<span className="font-mono font-medium text-foreground">{domain.name}</span>
{domain.is_available && (
<Badge variant="success" size="xs" className="ml-2">AVAILABLE</Badge>
<span className="ml-2"><Badge variant="success" size="xs">AVAILABLE</Badge></span>
)}
</div>
</div>

View File

@ -108,15 +108,15 @@ export default function PrivacyPage() {
</p>
<ul className="space-y-3 font-mono text-sm text-white/60">
<li className="flex items-start gap-3">
<span className="text-accent mt-1">>></span>
<span className="text-accent mt-1">{'>>'}</span>
Provide millisecond-latency domain availability checks.
</li>
<li className="flex items-start gap-3">
<span className="text-accent mt-1">>></span>
<span className="text-accent mt-1">{'>>'}</span>
Execute automated acquisition strategies (Sniper Mode).
</li>
<li className="flex items-start gap-3">
<span className="text-accent mt-1">>></span>
<span className="text-accent mt-1">{'>>'}</span>
Process encrypted transactions via secure gateways.
</li>
</ul>

View File

@ -906,6 +906,7 @@ export interface DomainValuation {
confidence: string
source: string
calculated_at: string
valuation_formula?: string
}
export interface PriceAlert {