diff --git a/src/pages/HelpPage.tsx b/src/pages/HelpPage.tsx index 11cd446c..8779a104 100644 --- a/src/pages/HelpPage.tsx +++ b/src/pages/HelpPage.tsx @@ -1,12 +1,25 @@ import { useSeoMeta } from '@unhead/react'; -import { ChevronRight, HandHeart, HelpCircle, Megaphone, Shield } from 'lucide-react'; +import { HandHeart, HelpCircle, Megaphone, Shield } from 'lucide-react'; import { Link } from 'react-router-dom'; +import { Card } from '@/components/ui/card'; import { useAppContext } from '@/hooks/useAppContext'; import { useLayoutOptions } from '@/contexts/LayoutContext'; import { PageHeader } from '@/components/PageHeader'; import { TeamSoapboxCard } from '@/components/TeamSoapboxCard'; import { HelpFAQSection } from '@/components/HelpFAQSection'; +import { DEFAULT_ACTION_COVERS } from '@/lib/defaultActionCovers'; +import { cn } from '@/lib/utils'; + +/** Cover image used on the Donor Guide button. Mirrors the Donor Guide hero. */ +const DONOR_GUIDE_COVER = '/hero/wlc-1.webp'; + +/** + * Cover image used on the Activist Guide button. Picks the same "Raised + * Fists" image that opens the Activist Guide's hero gallery, so the button + * visually previews the destination. + */ +const ACTIVIST_GUIDE_COVER = DEFAULT_ACTION_COVERS[0].url; export function HelpPage() { const { config } = useAppContext(); @@ -21,19 +34,21 @@ export function HelpPage() {
} /> - {/* Two large guide buttons */} -
- + } + icon={} title="Donor Guide" description="How to support activists privately and safely." + cover={DONOR_GUIDE_COVER} /> - } + icon={} title="Activist Guide" description="Receiving donations and cashing out privately." + cover={ACTIVIST_GUIDE_COVER} />
@@ -65,27 +80,50 @@ export function HelpPage() { ); } -interface GuideButtonProps { +interface GuideCardProps { to: string; icon: React.ReactNode; title: string; description: string; + cover: string; + className?: string; } -function GuideButton({ to, icon, title, description }: GuideButtonProps) { +/** + * Visually echoes `CampaignCard` so the Help page's two long-form guides + * read like content cards rather than utility buttons. + */ +function GuideCard({ to, icon, title, description, cover, className }: GuideCardProps) { return ( -
- {icon} -
-
-

{title}

-

{description}

-
- + + {/* Cover image */} +
+ + {/* Bottom gradient for legibility of the icon badge */} +
+
+ {icon} +
+
+ + {/* Body */} +
+

{title}

+

{description}

+
+ ); }