From 848b87dd5e97eb9532ef0009291e9ff1f9555b6a Mon Sep 17 00:00:00 2001 From: "yves.gugger" Date: Wed, 10 Dec 2025 14:59:55 +0100 Subject: [PATCH] fix: Portfolio API calls + Landing Page layout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PORTFOLIO API FIX: - addToPortfolio → addPortfolioDomain - removeFromPortfolio → deletePortfolioDomain - markAsSold → markDomainSold - getValuation → getDomainValuation - refreshPortfolioValuation → refreshDomainValue LANDING PAGE: - Changed 'Beyond Hunting' section to 3-column grid - Portfolio now displayed equally with Sell Domains & Sniper Alerts - Compact card design for all three features - Consistent sizing and spacing --- frontend/src/app/command/portfolio/page.tsx | 13 +- frontend/src/app/page.tsx | 191 +++++++++----------- 2 files changed, 90 insertions(+), 114 deletions(-) diff --git a/frontend/src/app/command/portfolio/page.tsx b/frontend/src/app/command/portfolio/page.tsx index 0afcc3d..cf18beb 100644 --- a/frontend/src/app/command/portfolio/page.tsx +++ b/frontend/src/app/command/portfolio/page.tsx @@ -95,7 +95,7 @@ export default function PortfolioPage() { setAddingDomain(true) try { - await api.addToPortfolio({ + await api.addPortfolioDomain({ domain: addForm.domain.trim(), purchase_price: addForm.purchase_price ? parseFloat(addForm.purchase_price) : undefined, purchase_date: addForm.purchase_date || undefined, @@ -145,10 +145,7 @@ export default function PortfolioPage() { setProcessingSale(true) try { - await api.markAsSold(selectedDomain.id, { - sale_date: sellForm.sale_date, - sale_price: parseFloat(sellForm.sale_price), - }) + await api.markDomainSold(selectedDomain.id, sellForm.sale_date, parseFloat(sellForm.sale_price)) showToast(`Marked ${selectedDomain.domain} as sold`, 'success') setShowSellModal(false) loadPortfolio() @@ -163,7 +160,7 @@ export default function PortfolioPage() { setValuatingDomain(domain.domain) setShowValuationModal(true) try { - const result = await api.getValuation(domain.domain) + const result = await api.getDomainValuation(domain.domain) setValuation(result) } catch (err: any) { showToast(err.message || 'Failed to get valuation', 'error') @@ -176,7 +173,7 @@ export default function PortfolioPage() { const handleRefresh = async (domain: PortfolioDomain) => { setRefreshingId(domain.id) try { - await api.refreshPortfolioValuation(domain.id) + await api.refreshDomainValue(domain.id) showToast('Valuation refreshed', 'success') loadPortfolio() } catch (err: any) { @@ -190,7 +187,7 @@ export default function PortfolioPage() { if (!confirm(`Remove ${domain.domain} from your portfolio?`)) return try { - await api.removeFromPortfolio(domain.id) + await api.deletePortfolioDomain(domain.id) showToast(`Removed ${domain.domain}`, 'success') loadPortfolio() } catch (err: any) { diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 65bba52..a1f5ab6 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -403,162 +403,141 @@ export default function HomePage() {

-
+
{/* For Sale Marketplace */} -
- {/* Corner accent */} -
+
-
-
- +
+
+
-

Sell Your Domains

-

Marketplace

+

Sell Domains

+

Marketplace

-

- Create professional "For Sale" landing pages with one click. - DNS verification proves ownership. - Buyers contact you directly through Pounce. +

+ Create "For Sale" pages with DNS verification. Buyers contact you directly.

-
    -
  • -
    - -
    +
      +
    • + Verified Owner badge
    • -
    • -
      - -
      +
    • + Pounce Score valuation
    • -
    • -
      - -
      +
    • + Secure contact form
    - Browse Marketplace - + Browse +
{/* Sniper Alerts */} -
- {/* Decorative element */} -
-
-
-
+
+
+
+
-
-
- +
+
+
-

Sniper Alerts

-

Hyper-Personalized

+

Sniper Alerts

+

Hyper-Personalized

-

- Ultra-specific filters that notify you exactly when matching domains appear. - "4-letter .com under $500 without numbers" — we've got you. +

+ Custom filters that notify you when matching domains appear.

-
    -
  • -
    - -
    - Custom TLD, length, price filters +
      +
    • + + TLD, length, price filters
    • -
    • -
      - -
      +
    • + Email & SMS alerts
    • -
    • -
      - -
      - Real-time auction matching +
    • + + Real-time matching
    - Set Up Alerts - + Set Up +
-
- {/* Portfolio Management - Full Width Below */} -
-
-
-
-
-
- -
-
-

Portfolio Health

-

Your Domain Insurance

-
-
-

- Import your domains and let Pounce monitor them 24/7. - SSL expiry, - renewal reminders, - uptime checks, and - P&L tracking — all in one place. - Never miss a renewal again. -

+ {/* Portfolio Health */} +
+
+
+
-
-
- - - SSL Monitor - - - - Expiry Alerts - - - - Valuation - +
+ +
+
+
+ +
+
+

Portfolio

+

Domain Insurance

- - Manage Portfolio - -
+

+ Monitor your domains 24/7. SSL, renewals, uptime & P&L tracking. +

+
    +
  • + + Expiry reminders +
  • +
  • + + Uptime monitoring +
  • +
  • + + Valuation & P&L +
  • +
+ + Manage + +