import Tabs from '@/components/tabs'; import { TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import DashboardLayout from '@/layouts/dashboard/layout'; import { getQueryParams } from '@/lib/route'; import { router, usePage } from '@inertiajs/react'; import { ReactNode } from 'react'; import Mollie from './partials/mollie'; import Offline from './partials/offline'; import Paypal from './partials/paypal'; import Paystack from './partials/paystack'; import Razorpay from './partials/razorpay'; import SSLCommerz from './partials/sslcommerz'; import Stripe from './partials/stripe'; interface Props { payments: Settings[]; } const Payment = ({ payments }: Props) => { const page = usePage(); const params = getQueryParams(page.url); const tabs = payments.map((payment) => { let Component; switch (payment.sub_type) { case 'paypal': Component = Paypal; break; case 'stripe': Component = Stripe; break; case 'mollie': Component = Mollie; break; case 'paystack': Component = Paystack; break; case 'sslcommerz': Component = SSLCommerz; break; case 'razorpay': Component = Razorpay; break; case 'offline': Component = Offline; break; default: Component = ({ payment }: { payment: any }) =>
No component found
; break; } return { ...payment, Component, }; }); return (
{tabs.map(({ id, title, sub_type }) => ( router.get( route('settings.payment', { tab: sub_type, }), ) } > {title} ))}
{tabs.map((payment) => ( ))}
); }; Payment.layout = (page: ReactNode) => ; export default Payment;