import { Button, Hr, Section, Text } from "@react-email/components"; import { BaseLayout } from "./BaseLayout"; interface OrderItem { id: string; name: string; quantity: number; price: string; } interface OrderPaidProps { language: string; orderId: string; orderNumber: string; customerName: string; items: OrderItem[]; total: string; siteUrl: string; } const translations: Record< string, { title: string; preview: string; greeting: string; orderPaid: string; items: string; total: string; nextSteps: string; nextStepsText: string; questions: string; } > = { sr: { title: "Plaćanje je primljeno!", preview: "Vaša uplata je zabeležena", greeting: "Poštovani {name},", orderPaid: "Plaćanje za vašu narudžbinu je primljeno. Hvala vam! Narudžbina će uskoro biti spremna za slanje.", items: "Artikli", total: "Ukupno", nextSteps: "Šta dalje?", nextStepsText: "Primićete još jedan email kada vaša narudžbina bude poslata. Možete očekivati dostavu u roku od 3-5 radnih dana.", questions: "Imate pitanja? Pišite nam na support@manoonoils.com", }, en: { title: "Payment Received!", preview: "Your payment has been recorded", greeting: "Dear {name},", orderPaid: "Payment for your order has been received. Thank you! Your order will be prepared for shipping soon.", items: "Items", total: "Total", nextSteps: "What's next?", nextStepsText: "You will receive another email when your order ships. You can expect delivery within 3-5 business days.", questions: "Questions? Email us at support@manoonoils.com", }, de: { title: "Zahlung erhalten!", preview: "Ihre Zahlung wurde verbucht", greeting: "Sehr geehrte/r {name},", orderPaid: "Zahlung für Ihre Bestellung ist eingegangen. Vielen Dank! Ihre Bestellung wird bald für den Versand vorbereitet.", items: "Artikel", total: "Gesamt", nextSteps: "Was kommt als nächstes?", nextStepsText: "Sie erhalten eine weitere E-Mail, wenn Ihre Bestellung versandt wird. Die Lieferung erfolgt innerhalb von 3-5 Werktagen.", questions: "Fragen? Schreiben Sie uns an support@manoonoils.com", }, fr: { title: "Paiement reçu!", preview: "Votre paiement a été enregistré", greeting: "Cher(e) {name},", orderPaid: "Le paiement de votre commande a été reçu. Merci! Votre commande sera bientôt prête à être expédiée.", items: "Articles", total: "Total", nextSteps: "Et ensuite?", nextStepsText: "Vous recevrez un autre email lorsque votre commande sera expédiée. Vous pouvez vous attendre à une livraison dans 3-5 jours ouvrables.", questions: "Questions? Écrivez-nous à support@manoonoils.com", }, }; export function OrderPaid({ language = "en", orderId, orderNumber, customerName, items, total, siteUrl, }: OrderPaidProps) { const t = translations[language] || translations.en; return ( {t.title} {t.greeting.replace("{name}", customerName)} {t.orderPaid}
Order Number: {orderNumber}
{t.items}
{items.map((item) => (
{item.quantity}x {item.name} {item.price}
))}
{t.total}: {total}
{t.nextSteps} {t.nextStepsText}
{t.questions}
); } const styles = { title: { fontSize: "24px", fontWeight: "bold" as const, color: "#16a34a", marginBottom: "20px", }, greeting: { fontSize: "16px", color: "#333333", marginBottom: "10px", }, text: { fontSize: "14px", color: "#666666", marginBottom: "20px", }, orderInfo: { backgroundColor: "#f0fdf4", padding: "15px", borderRadius: "8px", marginBottom: "20px", }, orderNumber: { fontSize: "14px", color: "#333333", margin: "0", }, itemsSection: { marginBottom: "20px", }, sectionTitle: { fontSize: "16px", fontWeight: "bold" as const, color: "#1a1a1a", marginBottom: "10px", }, hr: { borderColor: "#e0e0e0", margin: "10px 0", }, itemRow: { display: "flex" as const, justifyContent: "space-between" as const, padding: "8px 0", }, itemName: { fontSize: "14px", color: "#333333", margin: "0", }, itemPrice: { fontSize: "14px", color: "#333333", margin: "0", }, totalRow: { display: "flex" as const, justifyContent: "space-between" as const, padding: "8px 0", }, totalLabel: { fontSize: "16px", fontWeight: "bold" as const, color: "#1a1a1a", margin: "0", }, totalValue: { fontSize: "16px", fontWeight: "bold" as const, color: "#1a1a1a", margin: "0", }, nextSteps: { backgroundColor: "#f9f9f9", padding: "15px", borderRadius: "8px", marginBottom: "20px", }, nextStepsTitle: { fontSize: "14px", fontWeight: "bold" as const, color: "#1a1a1a", marginBottom: "5px", }, nextStepsText: { fontSize: "14px", color: "#666666", margin: "0", }, buttonSection: { textAlign: "center" as const, marginBottom: "20px", }, button: { backgroundColor: "#000000", color: "#ffffff", padding: "12px 30px", borderRadius: "4px", fontSize: "14px", fontWeight: "bold" as const, textDecoration: "none", }, questions: { fontSize: "14px", color: "#666666", }, };