"use client" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Separator } from "@/components/ui/separator" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { useRouter, useSearchParams } from "next/navigation" import Link from "next/link" import * as React from "react" import { useQuery } from "convex/react" import { api } from "@/convex/_generated/api" export default function SettingsPage() { const router = useRouter() const searchParams = useSearchParams() const profile = useQuery(api.users.getCurrentProfile) const user = profile?.user const accounts = profile?.accounts ?? [] const allowedTabs = React.useMemo(() => ["account", "billing"], []) const queryTab = searchParams.get("tab") const initialTab = allowedTabs.includes(queryTab ?? "") ? (queryTab as string) : "account" const [tab, setTab] = React.useState(initialTab) React.useEffect(() => { if (initialTab !== tab) { setTab(initialTab) } }, [initialTab, tab]) const checkoutHref = "/api/checkout" return (
Account Center Active

Account & Billing

Manage your subscription, billing, and account details in one place.

{ setTab(value) router.replace(`/settings?tab=${value}`) }} className="relative" >
Account Billing
Current plan Starter
Profile

{user?.name || user?.email || "Not provided"}

{user?.email || "Not provided"}

{/* TODO: Wire profile editing flow. */}

Name

{user?.name || "Not provided"}

Email

{user?.email || "Not provided"}

Phone

{user?.phone || "Not provided"}

Sign-in Methods

{accounts.length > 0 ? Array.from(new Set(accounts.map((account) => { if (account.provider === "password") return "Password"; if (account.provider === "google") return "Google"; return account.provider; }))).join(", ") : "Not provided"}

Email Verified

{user?.emailVerificationTime ? new Date(user.emailVerificationTime).toLocaleDateString() : "Not verified"}

User ID

{user?._id || "Not provided"}

{/* TODO: Wire security management flow. */}
Integrations
{/* TODO: Replace with real provider status. */}

Coming soon.

Coming soon.

Linked
{/* TODO: Replace with real provider status. */}

Coming soon.

Coming soon.

{/* TODO: Wire provider disconnect. */}
{/* TODO: Replace with real provider status. */}

Coming soon.

Coming soon.

{/* TODO: Wire provider connect. */}
Plan

Starter

Upgrade to unlock full opportunity search and automation.

Pro includes

Unlimited projects and data sources

Advanced opportunity search

Priority analysis queue

Billing History

No invoices yet

Invoices will appear after your first payment.

Pro
Need a receipt? Complete checkout to generate your first invoice.
) }