import { render } from '@react-email/render'; import { WelcomeEmail } from '../../../../emails/welcome'; import { TransactionCompleteEmail } from '../../../../emails/transaction-complete'; import { EventTicketEmail } from '../../../../emails/event-ticket'; import { PaymentRequestEmail } from '../../../../emails/payment-request'; import { ReferralSuccessEmail } from '../../../../emails/referral-success'; import { NextResponse } from 'next/server'; import React from 'react'; const templates: Record> = { welcome: WelcomeEmail, 'transaction-complete': TransactionCompleteEmail, 'event-ticket': EventTicketEmail, 'payment-request': PaymentRequestEmail, 'referral-success': ReferralSuccessEmail, }; export async function GET( request: Request, context: { params: Promise<{ template: string }> } ) { const { template } = await context.params; const TemplateComponent = templates[template]; if (!TemplateComponent) { return NextResponse.json({ error: 'Template not found' }, { status: 404 }); } const html = render(React.createElement(TemplateComponent)); return new NextResponse(html, { headers: { 'Content-Type': 'text/html', }, }); }