import { signIn, useSession, getSession } from "next-auth/react" import { useRouter } from "next/router"; import { useState, useEffect } from "react" import { useNDKContext } from "@/context/NDKContext"; import GenericButton from "@/components/buttons/GenericButton"; import { InputText } from 'primereact/inputtext'; export default function SignIn() { const [email, setEmail] = useState("") const [showEmailInput, setShowEmailInput] = useState(false) const {ndk, addSigner} = useNDKContext(); const { data: session, status } = useSession(); const router = useRouter(); const handleEmailSignIn = async (e) => { e.preventDefault() await signIn("email", { email, callbackUrl: '/' }) } const handleNostrSignIn = async (e) => { e.preventDefault() if (!ndk.signer) { await addSigner(); } try { const user = await ndk.signer.user() const pubkey = user?._pubkey signIn("nostr", { pubkey }) } catch (error) { console.error("Error signing Nostr event:", error) } } const handleAnonymousSignIn = async (e) => { e.preventDefault() // Check if we have keys in local storage const storedPubkey = localStorage.getItem('anonymousPubkey') const storedPrivkey = localStorage.getItem('anonymousPrivkey') const result = await signIn("anonymous", { pubkey: storedPubkey, privkey: storedPrivkey, redirect: false }) if (result?.ok) { // Fetch the session to get the pubkey and privkey const session = await getSession() if (session?.pubkey && session?.privkey) { localStorage.setItem('anonymousPubkey', session.pubkey) localStorage.setItem('anonymousPrivkey', session.privkey) router.push('/') } else { console.error("Pubkey or privkey not found in session") } // Redirect or update UI as needed } else { // Handle error console.error("Anonymous login failed:", result?.error) } } return (