import { useState } from 'react'
import { useSession, signIn } from '../lib/auth-client'
import Input from './input'
import Button from './button'
export default function Auth({ children }) {
const { data: session, isPending } = useSession()
const isUser = !!session?.user
const [email, setEmail] = useState('')
const [loading, setLoading] = useState(false)
const [sent, setSent] = useState(false)
const [error, setError] = useState('')
if (isPending) return
Loading...
if (isUser) return children
if (process.env.NEXT_PUBLIC_GITHUB_ENABLED) {
signIn.social({ provider: "github", callbackURL: window.location.href })
return Loading...
}
if (sent) return E-Mail verschickt — bitte prüfe dein Postfach.
async function handleSubmit(e: React.FormEvent) {
e.preventDefault()
setLoading(true)
setError('')
const result = await signIn.magicLink({ email, callbackURL: window.location.href })
if (result.error) setError(result.error.message)
else setSent(true)
setLoading(false)
}
return (
)
}