import SuccessToast from "./SuccessToast"; import { ManageUserSubscriptionButton } from "./ManageSubscription"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; import { storeSubscriptionPlans } from "@/config/subscriptions"; import { checkAuth, getUserAuth } from "@/lib/auth/utils"; import { getUserSubscriptionPlan } from "@/lib/stripe/subscription"; import { CheckCircle2Icon } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; export default async function Billing() { await checkAuth(); const { session } = await getUserAuth(); const subscriptionPlan = await getUserSubscriptionPlan(); if (!session) return redirect("/"); return (

Billing

Subscription Details

{subscriptionPlan.name}

{!subscriptionPlan.isSubscribed ? "You are not subscribed to any plan." : subscriptionPlan.isCanceled ? "Your plan will be canceled on " : "Your plan renews on "} {subscriptionPlan?.stripeCurrentPeriodEnd ? subscriptionPlan.stripeCurrentPeriodEnd.toLocaleDateString() : null}

{storeSubscriptionPlans.map((plan) => ( {plan.name === subscriptionPlan.name ? (
Current Plan
) : null} {plan.name} {plan.description}

${plan.price / 100} / month

    {plan.features.map((feature, i) => (
  • {feature}
  • ))}
{session?.user.email ? ( ) : (
)}
))}
); }