From 7b7ae9bb68b0d34e201e271c7140dafaa3b707dd Mon Sep 17 00:00:00 2001 From: Arhan Ansari Date: Tue, 8 Oct 2024 10:42:04 +0530 Subject: [PATCH] Update page.tsx --- app/plans/page.tsx | 72 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 15 deletions(-) diff --git a/app/plans/page.tsx b/app/plans/page.tsx index e601610..77ca1e9 100644 --- a/app/plans/page.tsx +++ b/app/plans/page.tsx @@ -1,4 +1,3 @@ -//app/plans/page.tsx "use client"; import React, { useEffect, useState } from "react"; import getStripe from "@/lib/stripe-js"; @@ -6,11 +5,14 @@ import SEO from "@/components/SEO"; // Import the SEO component import { getUserData } from "@/firebaseFunctions"; // Import function to fetch user data import { useSession } from "next-auth/react"; // Session management import { useRouter } from "next/navigation"; // Router for redirection +import { Chart } from "react-chartjs-2"; // Chart.js for plan benefits +import { Tooltip } from "react-tooltip"; // Tooltips export default function PlansPage() { const [userPlan, setUserPlan] = useState("free"); // State to hold user's current plan const { data: session, status } = useSession(); // Get session from NextAuth const router = useRouter(); // Router instance for redirecting + const [usageData, setUsageData] = useState(0); // User's current usage useEffect(() => { const fetchUserPlan = async () => { @@ -19,6 +21,7 @@ export default function PlansPage() { const userData = await getUserData(session.user.email); if (userData) { setUserPlan(userData.plan); // Update state with the user's plan + setUsageData(userData.usage); // Fetch usage data } } catch (error) { console.error("Error fetching user data:", error); @@ -33,8 +36,7 @@ export default function PlansPage() { const getPriceFn = (plan: string) => { if (plan === userPlan) { - // If the selected plan is already the user's plan, do nothing - return; + return; // If the selected plan is already the user's plan, do nothing } fetch("/api/checkout?plan=" + plan) @@ -48,12 +50,10 @@ export default function PlansPage() { const isCurrentPlan = (plan: string) => userPlan === plan; // Helper function to check if the user is on the current plan - // Display loading state if session is being fetched if (status === "loading") { return
Loading...
; } - // If session is null (user not logged in), redirect to login page if (!session) { router.push("/auth/signin"); return null; @@ -61,24 +61,29 @@ export default function PlansPage() { return (
- {/* Add SEO Component */} +

+ Welcome {session?.user?.name}! +

{/* Free Plan */} -
-

Free Plan

+
+

+ Free Plan Basic +

Up to 50 requests per month.

+

Basic AI content generation.

Community support.

{/* Pro Plan */} -
-

Pro Plan

+
+

+ Pro Plan Popular +

500 requests per month.

+

Advanced AI content generation.

Priority email support.

{/* Enterprise Plan */} -
-

Enterprise Plan

+
+

+ Enterprise Plan Best Value +

Unlimited requests.

+

Access to all AI features.

24/7 premium support.

+ + {/* Add testimonial section */} +
+

What our users are saying:

+ {/* Testimonials Grid */} +
+
+

"The Pro Plan gave my content a boost, worth every penny!"

+ - John Doe +
+ {/* Add more testimonials */} +
+
+ + {/* Plan benefits chart */} +
+

Compare Plan Benefits

+ +
); }