import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import { CreditCardIcon } from 'lucide-react'; import { Link } from 'react-router'; import { useSession } from '@documenso/lib/client-only/providers/session'; import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app'; import { ORGANISATION_MEMBER_ROLE_MAP } from '@documenso/lib/constants/organisations-translations'; import { formatAvatarUrl } from '@documenso/lib/utils/avatars'; import { canExecuteOrganisationAction } from '@documenso/lib/utils/organisations'; import { AvatarWithText } from '@documenso/ui/primitives/avatar'; import { Button } from '@documenso/ui/primitives/button'; import { Card, CardContent } from '@documenso/ui/primitives/card'; export const AccountBillingOrganisations = () => { const { _ } = useLingui(); const { user, organisations } = useSession(); if (!IS_BILLING_ENABLED()) { return null; } // Filter to only organisations where user can manage billing const billingOrganisations = organisations.filter((org) => canExecuteOrganisationAction('MANAGE_BILLING', org.currentOrganisationRole), ); if (billingOrganisations.length === 0) { return null; } return (

Billing Management

Manage billing for organisations where you have billing permissions.

{billingOrganisations.map((org) => (
{org.name}} secondaryText={ org.ownerUserId === user.id ? _(msg`Owner`) : _(ORGANISATION_MEMBER_ROLE_MAP[org.currentOrganisationRole]) } />
))}
); };