import { redirect } from 'next/navigation'; import { BillingPortalCard, CurrentLifetimeOrderCard, CurrentSubscriptionCard, } from '@kit/billing-gateway/components'; import { requireUser } from '@kit/supabase/require-user'; import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client'; import { If } from '@kit/ui/if'; import { PageBody } from '@kit/ui/page'; import { Trans } from '@kit/ui/trans'; import billingConfig from '~/config/billing.config'; import { createI18nServerInstance } from '~/lib/i18n/i18n.server'; import { withI18n } from '~/lib/i18n/with-i18n'; // local imports import { HomeLayoutPageHeader } from '../_components/home-page-header'; import { createPersonalAccountBillingPortalSession } from '../billing/_lib/server/server-actions'; import { PersonalAccountCheckoutForm } from './_components/personal-account-checkout-form'; import { loadPersonalAccountBillingPageData } from './_lib/server/personal-account-billing-page.loader'; export const generateMetadata = async () => { const i18n = await createI18nServerInstance(); const title = i18n.t('account:billingTab'); return { title, }; }; async function PersonalAccountBillingPage() { const client = getSupabaseServerComponentClient(); const auth = await requireUser(client); if (auth.error) { redirect(auth.redirectTo); } const [data, customerId] = await loadPersonalAccountBillingPageData( auth.data.id, ); return ( <> } description={} />
{(data) => (
{'active' in data ? ( ) : ( )}
)}
); } export default withI18n(PersonalAccountBillingPage); function CustomerBillingPortalForm() { return (
); }