import Head from "next/head"; import Link from "next/link"; import { useRef, useState } from "react"; import prisma from "../../lib/prisma"; import Modal from "../../components/Modal"; import Shell from "../../components/Shell"; import SettingsShell from "../../components/Settings"; import { signIn, useSession, getSession } from "next-auth/client"; export default function Settings(props) { const [session, loading] = useSession(); const [successModalOpen, setSuccessModalOpen] = useState(false); const oldPasswordRef = useRef(); const newPasswordRef = useRef(); if (loading) { return
; } const closeSuccessModal = () => { setSuccessModalOpen(false); }; async function changePasswordHandler(event) { event.preventDefault(); const enteredOldPassword = oldPasswordRef.current.value; const enteredNewPassword = newPasswordRef.current.value; // TODO: Add validation const response = await fetch("/api/auth/changepw", { method: "PATCH", body: JSON.stringify({ oldPassword: enteredOldPassword, newPassword: enteredNewPassword }), headers: { "Content-Type": "application/json", }, }); setSuccessModalOpen(true); } return ( Change Password | Calendso

); } export async function getServerSideProps(context) { const session = await getSession(context); if (!session) { return { redirect: { permanent: false, destination: "/auth/login" } }; } const user = await prisma.user.findFirst({ where: { email: session.user.email, }, select: { id: true, username: true, name: true, }, }); return { props: { user }, // will be passed to the page component as props }; }