diff --git a/app/components/dashboard/app-sidebar.tsx b/app/components/dashboard/app-sidebar.tsx index 1708ba19..f552ae62 100644 --- a/app/components/dashboard/app-sidebar.tsx +++ b/app/components/dashboard/app-sidebar.tsx @@ -26,13 +26,7 @@ const data = { icon: MessageCircle, }, ], - navSecondary: [ - { - title: "Settings", - url: "/dashboard/settings", - icon: IconSettings, - }, - ], + navSecondary: [], }; export function AppSidebar({ diff --git a/app/components/dashboard/nav-user.tsx b/app/components/dashboard/nav-user.tsx index 3ded4859..25e1177f 100644 --- a/app/components/dashboard/nav-user.tsx +++ b/app/components/dashboard/nav-user.tsx @@ -5,6 +5,7 @@ import { IconUserCircle, } from "@tabler/icons-react"; import { SettingsIcon } from "lucide-react"; +import { Link } from "react-router"; import { Avatar, AvatarFallback, AvatarImage } from "~/components/ui/avatar"; import { DropdownMenu, @@ -85,9 +86,12 @@ export function NavUser({ user }: any) { Account - - - Settings + + + + + Settings + diff --git a/convex/subscriptions.ts b/convex/subscriptions.ts index 41b2d2cc..54f12b4d 100644 --- a/convex/subscriptions.ts +++ b/convex/subscriptions.ts @@ -51,7 +51,6 @@ const createCheckout = async ({ customerEmail: customerEmail, metadata: { ...metadata, - priceId: productPriceId, }, }; @@ -185,7 +184,7 @@ export const checkUserSubscriptionStatus = query({ } tokenIdentifier = identity.subject; } - + const user = await ctx.db .query("users") .withIndex("by_token", (q) => q.eq("tokenIdentifier", tokenIdentifier)) @@ -194,10 +193,11 @@ export const checkUserSubscriptionStatus = query({ if (!user) { return { hasActiveSubscription: false }; } - + const subscription = await ctx.db .query("subscriptions") .withIndex("userId", (q) => q.eq("userId", user.tokenIdentifier)) + .filter((q) => q.eq(q.field("status"), "active")) .first(); const hasActiveSubscription = subscription?.status === "active"; @@ -234,6 +234,7 @@ export const checkUserSubscriptionStatusByClerkId = query({ const subscription = await ctx.db .query("subscriptions") .withIndex("userId", (q) => q.eq("userId", user.tokenIdentifier)) + .order("desc") // Order by createdAt in descending order .first(); const hasActiveSubscription = subscription?.status === "active"; @@ -261,6 +262,7 @@ export const fetchUserSubscription = query({ const subscription = await ctx.db .query("subscriptions") .withIndex("userId", (q) => q.eq("userId", user.tokenIdentifier)) + .order("desc") // Order by createdAt in descending order .first(); return subscription; @@ -328,6 +330,7 @@ export const handleWebhookEvent = mutation({ if (existingSub) { await ctx.db.patch(existingSub._id, { + polarPriceId: args.body.data.price_id, amount: args.body.data.amount, status: args.body.data.status, currentPeriodStart: new Date(