import React from 'react'; 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 { ReferralStatsEmail } from '../../../../emails/referral-stats'; import { ReferralSignupEmail } from '../../../../emails/referral-signup'; import { WaitlistEmail } from '../../../../emails/waitlist'; import { PromotionalEmail } from '../../../../emails/promotional'; import { KycVerificationEmail } from '../../../../emails/kyc-verification'; import { AccountBannedEmail } from '../../../../emails/account-banned'; import { TransactionReviewEmail } from '../../../../emails/transaction-review'; import { NextResponse } from 'next/server'; const templates: Record> = { welcome: WelcomeEmail, 'transaction-complete': TransactionCompleteEmail, 'event-ticket': EventTicketEmail, 'payment-request': PaymentRequestEmail, 'referral-success': ReferralSuccessEmail, 'referral-stats': ReferralStatsEmail, 'referral-signup': ReferralSignupEmail, waitlist: WaitlistEmail, promotional: PromotionalEmail, 'kyc-verification': KycVerificationEmail, 'account-banned': AccountBannedEmail, 'transaction-review': TransactionReviewEmail, }; 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 = await render(React.createElement(TemplateComponent)); return new NextResponse(html, { headers: { 'Content-Type': 'text/html', }, }); }