+ );
+}
diff --git a/src/i18n/en.ts b/src/i18n/en.ts
index dca6179..fd94398 100644
--- a/src/i18n/en.ts
+++ b/src/i18n/en.ts
@@ -4307,6 +4307,29 @@ socialUi: {
},
settingsUi: {
+ proSupport: {
+ title: 'Pro & Support',
+ subtitle: 'Optional extras that keep SkateSpots free',
+ prepaidTitle: 'Prepaid, not a subscription',
+ prepaidBody: 'Every purchase is a one-off Bitcoin/Lightning payment — no account, no recurring charge, no custody. Paying again extends your time.',
+ sasquatchTitle: 'Sasquatch Pro',
+ sasquatchBenefit: 'Unlocks the personal AI assistant — it can read your own Stash, crews and listings — and helps fund the project.',
+ active: 'Active',
+ activeUntil: 'Active until {{date}}',
+ daysLeft: '{{count}} days left',
+ notActive: 'Not active',
+ goPro: 'Go Pro',
+ extend: 'Extend Pro',
+ day: 'day',
+ featuredTitle: 'Featured placement',
+ featuredBenefit: 'Push a listing to the top with a Pro badge — for Lab profiles, events, shops and tours.',
+ featuredHow: 'Duration tiers apply to every type; longer commitments cost less per day. You feature a listing when you create or edit it.',
+ featuredUntil: 'Until {{date}}',
+ yourFeatured: 'Your featured listings',
+ noneFeatured: 'No active featured placements.',
+ freeTitle: 'Free paths',
+ freeBody: 'The AI FAQ and local search are always free, and you can publish a marketplace listing with a free proof-of-work instead of the sats fee.',
+ },
notFound: {
seoTitle: '404 - Page Not Found',
seoDescription: 'The page you are looking for could not be found. Return to the home page to continue browsing.',
diff --git a/src/i18n/es.ts b/src/i18n/es.ts
index 23bc589..669a2bc 100644
--- a/src/i18n/es.ts
+++ b/src/i18n/es.ts
@@ -4307,6 +4307,29 @@ socialUi: {
},
settingsUi: {
+ proSupport: {
+ title: 'Pro y apoyo',
+ subtitle: 'Extras opcionales que mantienen SkateSpots gratis',
+ prepaidTitle: 'Pago por adelantado, no suscripción',
+ prepaidBody: 'Cada compra es un pago único en Bitcoin/Lightning — sin cuenta, sin cargo recurrente y sin custodia. Pagar de nuevo amplía tu tiempo.',
+ sasquatchTitle: 'Sasquatch Pro',
+ sasquatchBenefit: 'Desbloquea el asistente personal con IA — puede leer tu Stash, crews y anuncios — y ayuda a financiar el proyecto.',
+ active: 'Activo',
+ activeUntil: 'Activo hasta {{date}}',
+ daysLeft: 'Quedan {{count}} días',
+ notActive: 'No activo',
+ goPro: 'Hazte Pro',
+ extend: 'Ampliar Pro',
+ day: 'día',
+ featuredTitle: 'Posición destacada',
+ featuredBenefit: 'Lleva un anuncio arriba con un distintivo Pro — para perfiles del Lab, eventos, tiendas y tours.',
+ featuredHow: 'Los tramos de duración se aplican a cada tipo; los compromisos más largos cuestan menos por día. Destacas un anuncio al crearlo o editarlo.',
+ featuredUntil: 'Hasta {{date}}',
+ yourFeatured: 'Tus anuncios destacados',
+ noneFeatured: 'No hay destacados activos.',
+ freeTitle: 'Opciones gratis',
+ freeBody: 'El FAQ de IA y la búsqueda local son siempre gratis, y puedes publicar un anuncio con prueba de trabajo en vez de la tarifa en sats.',
+ },
notFound: {
seoTitle: '404 - Página no encontrada',
seoDescription: 'La página que buscas no se pudo encontrar. Vuelve a la página de inicio para seguir navegando.',
diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx
index 64a51c7..24cc7b9 100644
--- a/src/pages/SettingsPage.tsx
+++ b/src/pages/SettingsPage.tsx
@@ -13,6 +13,7 @@ import { RelatrSettings } from '@/components/RelatrSettings';
import { CVMHealthCheck } from '@/components/CVMHealthCheck';
import { SasquatchAiStatusCard } from '@/components/SasquatchAiStatusCard';
import { GrantProCard } from '@/components/GrantProCard';
+import { ProSupportScreen } from '@/components/ProSupportScreen';
import { AdminReviewCard } from '@/components/AdminReviewCard';
import { RegionBackfillCard } from '@/components/RegionBackfillCard';
import { NotificationSettingsCard } from '@/components/NotificationSettingsCard';
@@ -34,7 +35,7 @@ import { cn } from '@/lib/utils';
import { NIP05_PROVIDERS } from '@/lib/nip05Providers';
import { SKATE_NIP05_DOMAIN } from '@/lib/skateNip05';
import { useTranslation } from '@/contexts/language';
-import { User, Radio, Wallet, Wrench, RotateCcw, Shield, ExternalLink, Languages, RefreshCw, AlertCircle, Database, Package, ChevronRight, ChevronLeft, Smartphone, Download, Zap, WifiOff, Bell, Server } from 'lucide-react';
+import { User, Radio, Wallet, Wrench, RotateCcw, Shield, ExternalLink, Languages, RefreshCw, AlertCircle, Database, Package, ChevronRight, ChevronLeft, Smartphone, Download, Zap, WifiOff, Bell, Server, Crown } from 'lucide-react';
// ─── Types ────────────────────────────────────────────────────────────────────
@@ -52,7 +53,8 @@ type Section =
| 'stash'
| 'notifications'
| 'coordinator'
- | 'advanced';
+ | 'advanced'
+ | 'pro';
// ─── Back header ──────────────────────────────────────────────────────────────
@@ -818,6 +820,14 @@ function SettingsMenu({ onNavigate }: { onNavigate: (s: Section) => void }) {
iconBg="bg-pink-500/15"
onClick={() => onNavigate('appearance')}
/>
+ onNavigate('pro')}
+ />
}
{section === 'appearance' && }
+ {section === 'pro' && }
{section === 'wallet' && }
{section === 'notifications' && (