diff --git a/src/pages/FAQPage.tsx b/src/pages/FAQPage.tsx index 13b74d6..f3db8a5 100644 --- a/src/pages/FAQPage.tsx +++ b/src/pages/FAQPage.tsx @@ -32,6 +32,37 @@ const QUICK_FACTS = [ { icon: Package, color: '#a855f7', label: 'Private gear inventory', value: 'Encrypted Stash' }, ]; +/** + * Static answers. The page leans on The Sasquatch, but if the guide fails to + * mount (or events are missed) the FAQ must still answer the basics itself. + */ +const STATIC_FAQ = [ + { + q: 'What is SkateSpots?', + a: 'A decentralized map and community for skateboarding, built on Nostr. Discover spots, find coaches and filmers, join crews, list events, and buy/sell gear — with no company in the middle.', + }, + { + q: 'How do I add a spot?', + a: 'Tap the map, or use the + / "Add Spot" button, then drop a pin and fill in the details. You need a free Nostr account (tap Log In → Create Account — no email required).', + }, + { + q: 'What are zaps?', + a: 'Zaps are Bitcoin Lightning tips. You can zap spots, events, crews and people you appreciate. They go straight to the recipient over Lightning — SkateSpots never holds your funds.', + }, + { + q: 'Is it free?', + a: 'Yes. Creating an account, adding spots and browsing are free. Optional paid extras (like featured listings) and tips (zaps) are paid directly between people.', + }, + { + q: 'What data is public?', + a: 'Anything you publish — spots, events, your profile — is public on Nostr relays. Your private messages and your Stash are end-to-end encrypted. See the Privacy page for details.', + }, + { + q: 'What is The Lab?', + a: 'The Lab is where you find people to hire or learn from: coaches, trainers, filmers, video editors, photographers, builders, artists and more.', + }, +]; + export default function FAQPage() { useSeoMeta({ title: 'FAQ - SkateSpots', @@ -133,6 +164,24 @@ export default function FAQPage() { ))} + {/* Static answers — work even if the guide doesn't open */} +
{a}
+
The Sasquatch uses live Nostr data from the SkateSpots relay + AI to answer your questions. 🛹
diff --git a/src/pages/ShopDetailPage.tsx b/src/pages/ShopDetailPage.tsx
index 1e7a24e..4c403f4 100644
--- a/src/pages/ShopDetailPage.tsx
+++ b/src/pages/ShopDetailPage.tsx
@@ -6,6 +6,7 @@ import ngeohash from 'ngeohash';
import { Layout } from '@/components/Layout';
import { PageError } from '@/components/ErrorState';
import { ImageWithFallback } from '@/components/ImageWithFallback';
+import { ImageLightbox } from '@/components/ImageLightbox';
import { SpotMap } from '@/components/SpotMap';
import { RouteDialog } from '@/components/RouteDialog';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -89,6 +90,7 @@ export default function ShopDetailPage() {
const queryClient = useQueryClient();
const [showDeleteDialog, setShowDeleteDialog] = useState(false);
const [showRouteDialog, setShowRouteDialog] = useState(false);
+ const [lightboxIndex, setLightboxIndex] = useState