import { signIn } from 'next-auth/react' import styles from './login.module.css' import { Form, Input, SubmitButton } from '@/components/form' import { useState, useEffect } from 'react' import Alert from 'react-bootstrap/Alert' import { useRouter } from 'next/router' import { LightningAuthWithExplainer } from './lightning-auth' import { NostrAuthWithExplainer } from './nostr-auth' import LoginButton from './login-button' import { emailSchema } from '@/lib/validate' import { OverlayTrigger, Tooltip } from 'react-bootstrap' import { datePivot } from '@/lib/time' import * as cookie from 'cookie' import { cookieOptions } from '@/lib/auth' import Link from 'next/link' export function EmailLoginForm ({ text, callbackUrl, multiAuth }) { const disabled = multiAuth return (
) } const authErrorMessages = { OAuthSignin: 'Error constructing OAuth URL. Try again or choose a different method.', OAuthCallback: 'Error handling OAuth response. Try again or choose a different method.', OAuthCreateAccount: 'Could not create OAuth account. Try again or choose a different method.', EmailCreateAccount: 'Could not create Email account. Try again or choose a different method.', Callback: 'Could not authenticate. Try again or choose a different method.', OAuthAccountNotLinked: 'This auth method is linked to another account. To link to this account first unlink the other account.', EmailSignin: 'Failed to send email. Make sure you entered your email address correctly.', CredentialsSignin: 'Could not authenticate. Try again or choose a different method.', default: 'Auth failed. Try again or choose a different method.' } export function authErrorMessage (error, signin) { if (!error) return null const message = error && (authErrorMessages[error] ?? authErrorMessages.default) // workaround for signin/signup awareness due to missing support from next-auth if (signin) { return ( <> {message}