From 3330d83d08904bc547740bfc9fdcbc5ff214d977 Mon Sep 17 00:00:00 2001 From: Dries Augustyns Date: Wed, 18 Feb 2026 15:38:41 +0100 Subject: [PATCH] feat: Add billing for inbound --- apps/web/src/components/BillingLimits.tsx | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/apps/web/src/components/BillingLimits.tsx b/apps/web/src/components/BillingLimits.tsx index b638a6c..2b385e7 100644 --- a/apps/web/src/components/BillingLimits.tsx +++ b/apps/web/src/components/BillingLimits.tsx @@ -78,6 +78,7 @@ export function BillingLimits({projectId, hasSubscription, billingEnabled}: Bill workflows: null, campaigns: null, transactional: null, + inbound: null, }, }); @@ -88,6 +89,7 @@ export function BillingLimits({projectId, hasSubscription, billingEnabled}: Bill workflows: limitsData.workflows.limit, campaigns: limitsData.campaigns.limit, transactional: limitsData.transactional.limit, + inbound: limitsData.inbound.limit, }); } }, [limitsData, form]); @@ -121,6 +123,7 @@ export function BillingLimits({projectId, hasSubscription, billingEnabled}: Bill workflows: limitsData.workflows.limit, campaigns: limitsData.campaigns.limit, transactional: limitsData.transactional.limit, + inbound: limitsData.inbound.limit, }); } setIsEditing(false); @@ -217,6 +220,7 @@ export function BillingLimits({projectId, hasSubscription, billingEnabled}: Bill usage={limitsData.transactional} currency={limitsData.currency} /> + )} @@ -322,6 +326,36 @@ export function BillingLimits({projectId, hasSubscription, billingEnabled}: Bill }} /> + { + const estimatedCost = + limitsData?.currency && field.value + ? formatEmailCost(Number(field.value), limitsData.currency) + : null; + return ( + + Inbound Emails Limit + + field.onChange(e.target.value === '' ? null : e.target.value)} + /> + + + Maximum inbound emails per month. Leave empty for unlimited. + {estimatedCost && ≈ {estimatedCost}/month} + + + + ); + }} + /> +