diff --git a/frontend/src/app/command/pricing/[tld]/page.tsx b/frontend/src/app/command/pricing/[tld]/page.tsx index f46e031..2c1104e 100644 --- a/frontend/src/app/command/pricing/[tld]/page.tsx +++ b/frontend/src/app/command/pricing/[tld]/page.tsx @@ -406,28 +406,38 @@ export default function CommandTldDetailPage() { {/* Stats Grid - All info from table */}
- - - 0 ? '+' : ''}${details.price_change_1y.toFixed(0)}%`} - icon={details.price_change_1y > 0 ? TrendingUp : details.price_change_1y < 0 ? TrendingDown : Minus} - /> - 0 ? '+' : ''}${details.price_change_3y.toFixed(0)}%`} - icon={BarChart3} - /> +
+ +
+
+ +
+
+ 0 ? '+' : ''}${details.price_change_1y.toFixed(0)}%`} + icon={details.price_change_1y > 0 ? TrendingUp : details.price_change_1y < 0 ? TrendingDown : Minus} + /> +
+
+ 0 ? '+' : ''}${details.price_change_3y.toFixed(0)}%`} + icon={BarChart3} + /> +
{/* Risk Level */} @@ -506,55 +516,95 @@ export default function CommandTldDetailPage() { Registrar - Register - Renew - Transfer + Register + Renew + Transfer - {details.registrars.map((registrar, idx) => ( - - -
- {registrar.name} - {idx === 0 && ( - Cheapest - )} -
- - - - ${registrar.registration_price.toFixed(2)} - - - -
- ${registrar.renewal_price.toFixed(2)} - {registrar.renewal_price / registrar.registration_price > 2 && ( - - )} -
- - - ${registrar.transfer_price.toFixed(2)} - - - - Visit - - - - - ))} + {details.registrars.map((registrar, idx) => { + const hasRenewalTrap = registrar.renewal_price / registrar.registration_price > 1.5 + const isBestValue = idx === 0 && !hasRenewalTrap + + return ( + + +
+ {registrar.name} + {isBestValue && ( + + Best + + )} + {idx === 0 && hasRenewalTrap && ( + + Cheap Start + + )} +
+ + + + ${registrar.registration_price.toFixed(2)} + + + +
+ + ${registrar.renewal_price.toFixed(2)} + + {hasRenewalTrap && ( + + )} +
+ + + + ${registrar.transfer_price.toFixed(2)} + + + + + Visit + + + + + ) + })} diff --git a/frontend/src/app/tld-pricing/[tld]/page.tsx b/frontend/src/app/tld-pricing/[tld]/page.tsx index 538477d..a488a17 100644 --- a/frontend/src/app/tld-pricing/[tld]/page.tsx +++ b/frontend/src/app/tld-pricing/[tld]/page.tsx @@ -690,7 +690,10 @@ export default function TldDetailPage() { {/* Quick Stats - All data from table */}
-
+

Buy (1y)

{isAuthenticated ? (

${details.pricing.min.toFixed(2)}

@@ -698,7 +701,12 @@ export default function TldDetailPage() { )}
-
+

Renew (1y)

{isAuthenticated ? (
@@ -706,14 +714,17 @@ export default function TldDetailPage() { ${details.min_renewal_price.toFixed(2)}

{renewalInfo?.isTrap && ( - + )}
) : ( )}
-
+

1y Change

{isAuthenticated ? (

)}

-
+

3y Change

{isAuthenticated ? (

Registrar - + Register - + Renew - + Transfer - {details.registrars.map((registrar, i) => ( - - -

- {registrar.name} - {i === 0 && ( - - Best - + {details.registrars.map((registrar, i) => { + const hasRenewalTrap = registrar.renewal_price / registrar.registration_price > 1.5 + const isBestValue = i === 0 && !hasRenewalTrap + + return ( + + +
+ {registrar.name} + {isBestValue && ( + + Best + + )} + {i === 0 && hasRenewalTrap && ( + + Cheap Start + + )} +
+ + + + ${registrar.registration_price.toFixed(2)} + + + + + ${registrar.renewal_price.toFixed(2)} + + {hasRenewalTrap && ( + )} -
- - - - ${registrar.registration_price.toFixed(2)} - - - - - ${registrar.renewal_price.toFixed(2)} - - {registrar.renewal_price > registrar.registration_price * 1.5 && ( - - )} - - - - ${registrar.transfer_price.toFixed(2)} - - - - - Visit - - - - - ))} + + + + ${registrar.transfer_price.toFixed(2)} + + + + + Visit + + + + + ) + })}