import { useBillingPlans, useBillingQuery, } from "@/ee/billing/queries/billing-query.ts"; import { Group, Text, SimpleGrid, Paper } from "@mantine/core"; import classes from "./billing.module.css"; import { format } from "date-fns"; import { formatInterval } from "@/ee/billing/utils.ts"; export default function BillingDetails() { const { data: billing } = useBillingQuery(); const { data: plans } = useBillingPlans(); if (!billing || !plans) { return null; } return (
Plan {plans.find( (plan) => plan.productId === billing.stripeProductId, )?.name || billing.planName || "Standard"}
Billing Period {formatInterval(billing.interval)}
{billing.cancelAtPeriodEnd ? "Cancellation date" : "Renewal date"} {format(billing.periodEndAt, "dd MMM, yyyy")}
Seat count {billing.quantity}
Cost {billing.billingScheme === "tiered" && ( <> ${billing.amount / 100} {billing.currency.toUpperCase()} per {billing.interval} )} {billing.billingScheme !== "tiered" && ( <> {(billing.amount / 100) * billing.quantity}{" "} {billing.currency.toUpperCase()} ${billing.amount / 100} /user/{billing.interval} )}
{billing.billingScheme === "tiered" && billing.tieredUpTo && (
Current Tier For {billing.tieredUpTo} users {/*billing.tieredFlatAmount && ( )*/}
)}
); }