diff --git a/pledge-now-pay-later/screenshots/pledge-form-amount.png b/pledge-now-pay-later/screenshots/pledge-form-amount.png new file mode 100644 index 0000000..6cbe65b Binary files /dev/null and b/pledge-now-pay-later/screenshots/pledge-form-amount.png differ diff --git a/pledge-now-pay-later/screenshots/pledge-match-expanded.png b/pledge-now-pay-later/screenshots/pledge-match-expanded.png new file mode 100644 index 0000000..8573cce Binary files /dev/null and b/pledge-now-pay-later/screenshots/pledge-match-expanded.png differ diff --git a/pledge-now-pay-later/screenshots/pledge-match-funding.png b/pledge-now-pay-later/screenshots/pledge-match-funding.png new file mode 100644 index 0000000..4790fda Binary files /dev/null and b/pledge-now-pay-later/screenshots/pledge-match-funding.png differ diff --git a/pledge-now-pay-later/screenshots/pledge-match-options.png b/pledge-now-pay-later/screenshots/pledge-match-options.png new file mode 100644 index 0000000..7c9c95b Binary files /dev/null and b/pledge-now-pay-later/screenshots/pledge-match-options.png differ diff --git a/pledge-now-pay-later/screenshots/pledge-match-toggle.png b/pledge-now-pay-later/screenshots/pledge-match-toggle.png new file mode 100644 index 0000000..79c5afd Binary files /dev/null and b/pledge-now-pay-later/screenshots/pledge-match-toggle.png differ diff --git a/pledge-now-pay-later/src/app/dashboard/collect/page.tsx b/pledge-now-pay-later/src/app/dashboard/collect/page.tsx index 13ecadc..5c4887d 100644 --- a/pledge-now-pay-later/src/app/dashboard/collect/page.tsx +++ b/pledge-now-pay-later/src/app/dashboard/collect/page.tsx @@ -113,7 +113,12 @@ export default function CollectPage() { }).catch(() => {}).finally(() => setLoading(false)) }, []) - const activeEvent = events[0] // Most orgs have one appeal + // Quick-add: which appeal does the new link belong to? + // Single appeal → auto-select. Multiple → user picks. + const [quickAddEventId, setQuickAddEventId] = useState(null) + const activeEvent = events.length === 1 + ? events[0] + : events.find(e => e.id === quickAddEventId) || events[0] // ── Actions ── const copyLink = async (code: string) => { @@ -584,24 +589,53 @@ export default function CollectPage() { {/* Quick add link inline */} {showQuickAdd && ( -
-
- - setQuickLinkName(e.target.value)} - placeholder="e.g. Table 5, Imam Yusuf, WhatsApp group" - autoFocus onKeyDown={e => e.key === "Enter" && handleQuickAdd()} - className="w-full h-10 px-3 border-2 border-gray-200 text-sm focus:border-[#1E40AF] outline-none" - /> +
+
+

Create a new pledge link

+ +
+ + {/* Appeal picker — only shows when there are multiple appeals */} + {events.length > 1 && ( +
+ +
+ {events.map(ev => ( + + ))} +
+
+ )} + +
+
+ + setQuickLinkName(e.target.value)} + placeholder="e.g. Table 5, Imam Yusuf, WhatsApp group" + autoFocus onKeyDown={e => e.key === "Enter" && handleQuickAdd()} + className="w-full h-10 px-3 border-2 border-gray-200 text-sm focus:border-[#1E40AF] outline-none" + /> +
+
- -
)} diff --git a/pledge-now-pay-later/src/app/dashboard/layout.tsx b/pledge-now-pay-later/src/app/dashboard/layout.tsx index 6b906dd..f30b557 100644 --- a/pledge-now-pay-later/src/app/dashboard/layout.tsx +++ b/pledge-now-pay-later/src/app/dashboard/layout.tsx @@ -4,7 +4,7 @@ import Link from "next/link" import { usePathname } from "next/navigation" import { useSession, signOut } from "next-auth/react" import { useState, useEffect } from "react" -import { Home, Megaphone, Banknote, FileText, Settings, LogOut, Shield, AlertTriangle, MessageCircle, Users, Zap } from "lucide-react" +import { Home, Megaphone, Banknote, FileText, Settings, LogOut, Shield, MessageCircle, Users, Zap } from "lucide-react" import { cn } from "@/lib/utils" /** @@ -157,7 +157,7 @@ export default function DashboardLayout({ children }: { children: React.ReactNod {/* Main content — white background, generous padding */}
- + {children}
@@ -165,8 +165,12 @@ export default function DashboardLayout({ children }: { children: React.ReactNod ) } -/** WhatsApp connection banner — shows until connected */ -function WhatsAppBanner() { +/** + * WhatsApp connection notice — thin, edge-to-edge, midnight-brand. + * Sits flush below the header. Not a warning — just a next step. + * Same design language as the header itself. + */ +function WhatsAppNotice() { const [status, setStatus] = useState(null) const [dismissed, setDismissed] = useState(false) const pathname = usePathname() @@ -182,22 +186,30 @@ function WhatsAppBanner() { if (status === "CONNECTED" || status === "skip" || status === null || dismissed) return null return ( -
- -
-

WhatsApp not connected — reminders won't send

-

- Connect your WhatsApp so donors automatically get payment reminders. -

-
+
+
+
+
+ +
+

+ Connect WhatsApp + {" "}to send automatic payment reminders +

+
+
- Connect WhatsApp + Set up → -