import Link from "next/link"; import { redirect } from "next/navigation"; import { getServerSession } from "next-auth"; import { authOptions } from "@/lib/auth"; import { prisma } from "@/lib/db"; import { AccountPrivacyActions } from "@/components/AccountPrivacyActions"; import { DashboardShell } from "@/components/DashboardShell"; import { getUserApiKeyStatus } from "@/lib/api-keys"; import { getApiRateLimitStatus } from "@/lib/api-rate-limit"; import { ApiKeySettings } from "@/components/ApiKeySettings"; function InfoRow({ label, value }: { label: string; value: string }) { return (
{label}
{value}
); } export default async function SettingsPage() { const session = await getServerSession(authOptions); if (!session?.user?.email) redirect("/"); const user = await prisma.user.findUnique({ where: { email: session.user.email }, include: { youtubeConnection: true }, }); if (!user) redirect("/"); const [apiKeyStatus, apiRateLimit] = await Promise.all([ getUserApiKeyStatus(user.id), getApiRateLimitStatus(user.id), ]); const youtube = user.youtubeConnection; const channelUrl = youtube ? `https://www.youtube.com/channel/${youtube.channelId}` : null; return (

Settings

Account

YouTube

{youtube ? (
) : (

YouTube account not connected.

)} {channelUrl && ( Go to your channel )}

To refresh YouTube permissions,{" "} sign out and sign in again.

API key

Account deletion & data

Request a copy of your data or permanently delete your account and uploads.

); }