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 && (
)*/}
)}
);
}