import { useSeoMeta } from '@unhead/react'; import { Link, useSearchParams } from 'react-router-dom'; import { Layout } from '@/components/Layout'; import { EditProfileForm } from '@/components/EditProfileForm'; import { RelayListManager } from '@/components/RelayListManager'; import { FollowListManager } from '@/components/FollowListManager'; import { WalletModal } from '@/components/WalletModal'; import { SecuritySettings } from '@/components/SecuritySettings'; import { RelatrSettings } from '@/components/RelatrSettings'; import { LanguageSelector } from '@/components/LanguageToggle'; import { MyDataTab } from '@/components/MyDataTab'; import { useTranslation } from '@/contexts/LanguageContext'; import { useQueryClient } from '@tanstack/react-query'; import { useNostr } from '@nostrify/react'; import { NSchema as n } from '@nostrify/nostrify'; import { useState } from 'react'; import { LoginArea } from '@/components/auth/LoginArea'; import { Button } from '@/components/ui/button'; import { useCurrentUser } from '@/hooks/useCurrentUser'; import { useAppContext } from '@/hooks/useAppContext'; import { toast } from '@/hooks/useToast'; import { cn } from '@/lib/utils'; import { User, Palette, Radio, Wallet, Settings, Wrench, RotateCcw, Shield, ExternalLink, Languages, RefreshCw, AlertCircle, Database, Package, ChevronRight, ChevronLeft, } from 'lucide-react'; // ─── Types ──────────────────────────────────────────────────────────────────── type Section = | null | 'profile' | 'follows' | 'nip05' | 'security' | 'mydata' | 'language' | 'appearance' | 'relays' | 'wallet' | 'stash' | 'advanced'; // ─── Back header ────────────────────────────────────────────────────────────── function BackHeader({ title, onBack }: { title: string; onBack: () => void }) { return (
{label}
{sublabel &&{sublabel}
}{title}
Log in to edit your profile
Profile not loaded from relays.
Get a verified Nostr address (like name@domain.com) to build trust. Required for creating events, coaching profiles, and shops.
{p.name}
{p.desc}
Community Relay
{useSkateRelay ? 'Syncing with global skate community' : 'Using only personal relays'}
Language
Dark Mode Only
SkateSpots runs a dark neon aesthetic inspired by skate culture. Black background, neon pink, lime, and orange.
🦧 Sasquatch Guide
Reset the onboarding guide to expanded view
Log in to manage your wallet
Open Wallet
Balance, send, receive
Account and app preferences