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
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:
@ -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 {
|
||||
|
||||
@ -22,6 +22,7 @@ import {
|
||||
Activity,
|
||||
Loader2,
|
||||
Search,
|
||||
Bell,
|
||||
} from 'lucide-react'
|
||||
import clsx from 'clsx'
|
||||
import Link from 'next/link'
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -906,6 +906,7 @@ export interface DomainValuation {
|
||||
confidence: string
|
||||
source: string
|
||||
calculated_at: string
|
||||
valuation_formula?: string
|
||||
}
|
||||
|
||||
export interface PriceAlert {
|
||||
|
||||
Reference in New Issue
Block a user