import { createFileRoute, notFound } from "@tanstack/react-router"; import { AutumnProvider, useCustomer, useListPlans } from "autumn-js/react"; import { LoaderCircle } from "lucide-react"; import { CenteredCard } from "@/client/features/billing/BillingRouteParts"; import { HostedBillingContent } from "@/client/features/billing/HostedBillingContent"; import { useSession } from "@/lib/auth-client"; import { isHostedClientAuthMode } from "@/lib/auth-mode"; export const Route = createFileRoute("/_app/billing")({ beforeLoad: () => { if (!isHostedClientAuthMode()) { throw notFound(); } }, component: BillingPage, }); function BillingPage() { return ( ); } function BillingPageContent() { const { data: session, isPending: isSessionPending } = useSession(); const customerQuery = useCustomer({ queryOptions: { enabled: Boolean(session?.user?.id), }, }); const plansQuery = useListPlans({ queryOptions: { enabled: Boolean(session?.user?.id), }, }); if ( isSessionPending || (session?.user?.id && (customerQuery.isLoading || plansQuery.isLoading)) ) { return (
); } if (!session?.user?.id) { return ( Go to sign in } /> ); } if (customerQuery.isError || plansQuery.isError) { return ( ); } return ( ); }