import { AuthModalContent, AuthModalOverlay, AuthOptions, WalletConnectorsList, } from "@/components"; import { useMoonSDK } from "@/hooks"; import type { AuthModalConfig } from "@/types"; import React from "react"; import { SignupForm } from "../SignUp/SignupForm"; type AuthModalProps = { children: React.ReactNode; config: AuthModalConfig; }; export const AuthModal: React.FC = ({ config, children }) => { const { enabled, appearance } = config; const [_, setConnectWallet] = React.useState(false); const [screen, setScreen] = React.useState< "login" | "walletConnect" | "signup" >("login"); const { session } = useMoonSDK(); if (!enabled) return <>{children}; if (session) return <>{children}; let logoPosition = "left-8"; if (appearance.logo?.position === "center") logoPosition = "left-[50%] transform -translate-x-1/2"; else if (appearance.logo?.position === "right") logoPosition = "right-8"; return ( <> {}} config={config} /> {config.appearance.logo?.enabled && ( logo )} {screen === "login" && ( setScreen("walletConnect")} onSignupEmail={() => setScreen("signup")} /> )} {screen === "walletConnect" && ( setConnectWallet(false)} /> )} {screen === "signup" && ( setScreen("login")} onSuccess={() => { setScreen("login"); }} config={config} /> )} ); };