import React, { useState } from 'react'; import { SettingsLayout } from './components/SettingsLayout'; import { SettingsCard } from './components/SettingsCard'; import { ToggleField } from './components/ToggleField'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { CreditCard, DollarSign, Banknote, Settings } from 'lucide-react'; import { toast } from 'sonner'; interface PaymentProvider { id: string; name: string; description: string; icon: React.ReactNode; enabled: boolean; connected: boolean; fees?: string; testMode?: boolean; } export default function PaymentsPage() { const [testMode, setTestMode] = useState(false); const [providers] = useState([ { id: 'stripe', name: 'Stripe Payments', description: 'Accept Visa, Mastercard, Amex, and more', icon: , enabled: false, connected: false, fees: '2.9% + $0.30 per transaction', }, { id: 'paypal', name: 'PayPal', description: 'Accept PayPal payments worldwide', icon: , enabled: true, connected: true, fees: '3.49% + fixed fee per transaction', }, ]); const [manualMethods, setManualMethods] = useState([ { id: 'bacs', name: 'Bank Transfer (BACS)', enabled: true }, { id: 'cod', name: 'Cash on Delivery', enabled: true }, { id: 'cheque', name: 'Check Payments', enabled: false }, ]); const handleSave = async () => { await new Promise((resolve) => setTimeout(resolve, 1000)); toast.success('Payment settings have been updated successfully.'); }; const toggleManualMethod = (id: string) => { setManualMethods((prev) => prev.map((m) => (m.id === id ? { ...m, enabled: !m.enabled } : m)) ); }; return ( {/* Manual Payment Methods - First priority */}
{manualMethods.map((method) => (

{method.name}

{method.enabled && (

Customers can choose this at checkout

)}
{method.enabled && ( )} toggleManualMethod(method.id)} />
))}
{/* Payment Providers - Second priority */}
{providers.map((provider) => (
{provider.icon}

{provider.name}

{provider.connected ? ( ● Connected ) : ( ○ Not connected )}

{provider.description}

{provider.fees && (

{provider.fees}

)}
{provider.connected ? ( <> ) : ( )}
))}
{/* Payment Settings - Third priority (test mode, capture, etc) */} {/* Test Mode Banner */} {testMode && (
⚠️ Test Mode Active No real charges will be processed
)}

Choose when to capture payment from customers

{/* Help Card */}

💡 Need help setting up payments?

Our setup wizard can help you connect Stripe or PayPal in minutes.

); }