import { cn } from 'ui' import PaymentMethods from '../../Billing/Payment/PaymentMethods/PaymentMethods' import { InvoicesSection } from '../InvoicesSettings/InvoicesSection' import BillingBreakdown from './BillingBreakdown/BillingBreakdown' import { BillingCustomerData } from './BillingCustomerData/BillingCustomerData' import BillingEmail from './BillingEmail' import CostControl from './CostControl/CostControl' import CreditBalance from './CreditBalance' import Subscription from './Subscription/Subscription' import { ScaffoldContainer, ScaffoldContainerLegacy, ScaffoldDivider, ScaffoldTitle, } from '@/components/layouts/Scaffold' import { useOrgSubscriptionQuery } from '@/data/subscriptions/org-subscription-query' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' import { MANAGED_BY } from '@/lib/constants/infrastructure' export const BillingSettings = () => { const { billingAccountData: isBillingAccountDataEnabledOnProfileLevel, billingPaymentMethods: isBillingPaymentMethodsEnabledOnProfileLevel, billingCredits: isBillingCreditsEnabledOnProfileLevel, billingInvoices: isBillingInvoicesEnabledOnProfileLevel, } = useIsFeatureEnabled([ 'billing:account_data', 'billing:payment_methods', 'billing:credits', 'billing:invoices', ]) const { data: org } = useSelectedOrganizationQuery() const { data: subscription } = useOrgSubscriptionQuery({ orgSlug: org?.slug }) const isNotOrgWithPartnerBilling = !subscription?.billing_via_partner const isStripeOrg = org?.managed_by === MANAGED_BY.STRIPE_PROJECTS const billingAccountDataEnabled = isBillingAccountDataEnabledOnProfileLevel && isNotOrgWithPartnerBilling const billingPaymentMethodsEnabled = isBillingPaymentMethodsEnabledOnProfileLevel && (isNotOrgWithPartnerBilling || isStripeOrg) return ( <> Billing div]:pt-0!')}> {org && org.plan.id !== 'free' && ( )} {isBillingInvoicesEnabledOnProfileLevel && ( <> )} {billingPaymentMethodsEnabled && ( <> )} {isBillingCreditsEnabledOnProfileLevel && ( <> )} {billingAccountDataEnabled && ( <> )} ) }