P1: path routing, prerender shells, E2E, and HelmetProvider donate fix.

Replace hash URLs with path-based routing, post-build prerender for money pages, Playwright smoke tests, and wrap the app in HelmetProvider so /donate mounts correctly.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
defiQUG
2026-06-16 11:11:20 -07:00
co-authored by Cursor
parent 6c0de165d3
commit 4e4df13ab1
33 changed files with 2545 additions and 2324 deletions
+9 -9
View File
@@ -106,7 +106,7 @@ function Programs() {
))}
</div>
<div className="mt-10 text-center">
<a href="#/what-we-do" className="btn-secondary">
<a href="/what-we-do" className="btn-secondary">
See all programs <ArrowRight className="ml-1 inline h-4 w-4" />
</a>
</div>
@@ -131,7 +131,7 @@ function FeatureCard({ icon: Icon, title, body }: FeatureCardProps) {
</div>
<p className="mt-3 text-sm leading-6 text-neutral-700 dark:text-neutral-300">{body}</p>
<a
href="#/what-we-do"
href="/what-we-do"
className="mt-5 inline-flex items-center text-sm text-primary-700 transition hover:underline dark:text-primary-300"
>
Learn more <ArrowRight className="ml-1 h-4 w-4" />
@@ -174,10 +174,10 @@ function Impact() {
</p>
</div>
<div className="flex flex-wrap items-center justify-end gap-3">
<a href="#/donate" className="btn-primary">
<a href="/donate" className="btn-primary">
Donate <ArrowRight className="ml-2 h-4 w-4" />
</a>
<a href="#/stories" className="btn-secondary">
<a href="/stories" className="btn-secondary">
Stories of hope
</a>
</div>
@@ -269,21 +269,21 @@ function GetInvolved() {
{
title: 'Donate',
body: 'Restore hope through outreach, emergency aid, and compassionate care.',
href: '#/donate',
href: '/donate',
accent: 'from-secondary-500 to-primary-500',
icon: Heart,
},
{
title: 'Volunteer',
body: 'Serve at outreach events and support families in your community.',
href: '#/volunteers',
href: '/volunteers',
accent: 'from-sky-500 to-secondary-500',
icon: Users,
},
{
title: 'Partner with us',
body: "Churches, businesses, and organizations — let's serve together.",
href: '#/contact',
href: '/contact',
accent: 'from-primary-500 to-secondary-500',
icon: Globe,
},
@@ -369,11 +369,11 @@ function CTA() {
crisis throughout Los Angeles County.
</p>
<div className="mt-6 flex flex-wrap items-center gap-3">
<a href="#/donate" className="btn-white">
<a href="/donate" className="btn-white">
Donate now
</a>
<a
href="#/request-assistance"
href="/request-assistance"
className="inline-flex items-center gap-2 rounded-full border-2 border-white/40 px-6 py-3 text-sm font-medium text-white backdrop-blur transition hover:bg-white/10 focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2"
>
Request assistance <ArrowRight className="ml-1 h-4 w-4" />