import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { InputOTP, InputOTPGroup, InputOTPSlot } from "@/components/ui/input-otp"; import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp"; import { useState, useCallback } from "react"; import { toast } from "sonner"; import LoginHeader from "./LoginHeader"; import { SendCodeFormData } from "./types"; import { Label } from "@/components/ui/label"; export default function EmailLoginMode({ onSendCode }: { onSendCode: (data: SendCodeFormData) => Promise }) { const [email, setEmail] = useState(""); const handleSendCode = useCallback(() => { if (!email.trim().match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/)) { toast.error('请输入正确的邮箱地址'); return; } onSendCode({ type: 'email', email, }) }, [email, onSendCode]); return ( <>
setEmail(e.target.value)} required />
) }