import { useSeoMeta } from '@unhead/react'; import { Link } from 'react-router-dom'; import { Hammer, ChevronRight } from 'lucide-react'; import { useTranslation } from '@/contexts/language'; import { cn } from '@/lib/utils'; import { DIY_CATEGORIES, DIY_CARDS, DIY_ACTIONS, type DiyCard } from '@/lib/diyGuides'; /** * DIY — resources for making your own boards, ramps and concrete spots, with * cross-links into the rest of the app (find a builder, map a spot, sell). * Content lives in `src/lib/diyGuides.ts`. Cards with no destination yet render * unclickable with a "Coming soon" badge. */ function DiyCardView({ card }: { card: DiyCard }) { const { t } = useTranslation(); const body = ( <> {card.emoji} {t(card.titleKey)} {card.comingSoon && ( {t('diyUi.comingSoon')} )} {t(card.blurbKey)} {card.to && } ); const base = 'flex items-start gap-3 rounded-2xl border border-white/10 p-4 transition-colors'; if (!card.to) { // Coming soon — deliberately not a link. return (
{body}
); } return ( {body} ); } export default function DiyPage() { const { t } = useTranslation(); useSeoMeta({ title: t('seoUi.diyTitle'), description: t('seoUi.diyDesc'), }); return (
{/* Header */}

{t('diyUi.title')}

{t('diyUi.tagline')}

{/* Resource sections */} {DIY_CATEGORIES.map((cat) => { const cards = DIY_CARDS.filter((c) => c.category === cat.id); if (cards.length === 0) return null; return (

{cat.emoji} {t(cat.titleKey)}

{cards.map((card) => )}
); })} {/* Do it with people — cross-links into the app */}

🤝 {t('diyUi.doItWithPeople')}

{DIY_ACTIONS.map((card) => )}

{t('diyUi.footer')}

); }