import { ChangeEvent, useEffect, useState } from "react"; import Head from "next/head"; import Link from "next/link"; import { useRouter } from "next/router"; import { updateUser } from "@documenso/features"; import { getUser } from "@documenso/lib/api"; import { fetchPortalSession, isSubscriptionsEnabled, useSubscription } from "@documenso/lib/stripe"; import { Button } from "@documenso/ui"; import { BillingPlans } from "./billing-plans"; import { CreditCardIcon, KeyIcon, UserCircleIcon } from "@heroicons/react/24/outline"; import { SubscriptionStatus } from "@prisma/client"; import { useSession } from "next-auth/react"; const subNavigation = [ { name: "Profile", href: "/settings/profile", icon: UserCircleIcon, current: true, }, { name: "Password", href: "/settings/password", icon: KeyIcon, current: false, }, ]; if (process.env.NEXT_PUBLIC_ALLOW_SUBSCRIPTIONS === "true") { subNavigation.push({ name: "Billing", href: "/settings/billing", icon: CreditCardIcon, current: false, }); } function classNames(...classes: any) { return classes.filter(Boolean).join(" "); } export default function Setttings() { const session = useSession(); const { subscription, hasSubscription } = useSubscription(); const [user, setUser] = useState({ email: "", name: "", }); useEffect(() => { getUser().then((res: any) => { res.json().then((j: any) => { setUser(j); }); }); }, [session]); const router = useRouter(); subNavigation.forEach((element) => { element.current = element.href == router.route; }); const [savingTimeout, setSavingTimeout] = useState(); const [password, setPassword] = useState(""); function handleNameChange(e: ChangeEvent): void { let u = { ...user }; u.name = e.target.value; setUser(u); clearTimeout(savingTimeout); const t = setTimeout(() => { updateUser(u); }, 1000); setSavingTimeout(t); } const handleKeyPress = (event: any) => { if (event.key === "Enter") { clearTimeout(savingTimeout); updateUser(user); } }; return (
Settings | Documenso

Settings

); }