diff --git a/src/components/NoBitcoinDialog.tsx b/src/components/NoBitcoinDialog.tsx new file mode 100644 index 00000000..ed7b6a14 --- /dev/null +++ b/src/components/NoBitcoinDialog.tsx @@ -0,0 +1,56 @@ +import { openUrl } from '@/lib/downloadFile'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; + +interface NoBitcoinDialogProps { + open: boolean; + onOpenChange: (open: boolean) => void; +} + +/** + * For donors who don't already hold Bitcoin. Rather than a wall of + * instructions, this is a simple "get it here" surface — a single branded + * Cash App badge (styled like the App Store / Google Play badges) that + * deep-links to cash.app, where the donor can buy Bitcoin and send it on. + * Agora never custodies or converts funds; this just points at a mainstream + * on-ramp the donor controls. + */ +export function NoBitcoinDialog({ open, onOpenChange }: NoBitcoinDialogProps) { + return ( + + ); +} diff --git a/src/pages/CampaignDetailPage.tsx b/src/pages/CampaignDetailPage.tsx index 3b21c195..67f4d50b 100644 --- a/src/pages/CampaignDetailPage.tsx +++ b/src/pages/CampaignDetailPage.tsx @@ -24,6 +24,7 @@ import { } from '@/components/CampaignWalletDonatePanel'; import { HDSendBitcoinDialog } from '@/components/HDSendBitcoinDialog'; import { Lightbox } from '@/components/ImageGallery'; +import { NoBitcoinDialog } from '@/components/NoBitcoinDialog'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { Skeleton } from '@/components/ui/skeleton'; @@ -1080,6 +1081,7 @@ function DonateColumn({ const { user } = useCurrentUser(); const hdAccess = useHdWalletAccess(); const [sendOpen, setSendOpen] = useState(false); + const [noBitcoinOpen, setNoBitcoinOpen] = useState(false); const isSilentPayment = !campaign.wallets.onchain; // The in-app "Pay with Agora" button opens HDSendBitcoinDialog @@ -1199,6 +1201,20 @@ function DonateColumn({ } + + {/* For donors who don't already hold Bitcoin: a low-emphasis text + link (no button chrome) that opens an instructional dialog + pointing at a mainstream on-ramp. Kept visually quiet so it + never competes with the primary on-chain CTA above. */} +