"use client"; // import { useSignUp } from "@clerk/nextjs"; import * as React from "react"; import { Loading } from "@/components/ui/loading"; import { FadeInStagger } from "@/components/landing/fade-in"; import { Input } from "@/components/ui/input"; import { toast } from "@/components/ui/toaster"; import { useRouter } from "next/navigation"; import service from "@/lib/http/service"; import Image from 'next/image'; import showImage from '@/components/images/show.png'; import { useTranslation } from "react-i18next"; // type Props = { // setError: (e: string | null) => void; // setVerification: (b: boolean) => void; // }; // export const EmailSignUp: React.FC = ({ setError, setVerification, emailValue, passwordValue }) => { export function EmailSignUp(props: { setError: (e: string | null) => void; setVerification: (b: boolean) => void; email: (value: string) => void; password: (value: string) => void; emailValue: string; passwordValue: string; }) { // const { signUp, isLoaded: signUpLoaded, setActive } = useSignUp(); const [isLoading, setIsLoading] = React.useState(false); const [showPassword, setShowPassword] = React.useState(false); const [showPassword2, setShowPassword2] = React.useState(false); const [goPassword, setGoPassword] = React.useState(false); const [_transferLoading, setTransferLoading] = React.useState(true); const router = useRouter(); const { t } = useTranslation(); React.useEffect(() => { const signUpFromParams = async () => { const ticket = new URL(window.location.href).searchParams.get("__clerk_ticket"); const emailParam = new URL(window.location.href).searchParams.get("email"); if (!ticket && !emailParam) { return; } if (ticket) { // await signUp // ?.create({ // strategy: "ticket", // ticket, // }) // .then((result) => { // if (result.status === "complete" && result.createdSessionId) { // setActive({ session: result.createdSessionId }).then(() => { // router.push("/app/apis"); // }); // } // }) // .catch((err) => { // setTransferLoading(false); // setError((err as Error).message); // console.error(err); // }); } if (emailParam) { // setVerification(true); // await signUp // ?.create({ // emailAddress: emailParam, // }) // .then(async () => { // await signUp.prepareEmailAddressVerification(); // // set verification to true so we can show the code input // setVerification(true); // setTransferLoading(false); // }) // .catch((err) => { // setTransferLoading(false); // if (err.errors[0].code === "form_identifier_exists") { // toast.error("Sorry, it looks like you have an account. Please use sign in"); // } else { // console.log("Supress error"); // } // }); } }; signUpFromParams(); setTransferLoading(false); }, []); // const signUpWithCode = async (e: React.FormEvent) => { const signUpWithCode = async (email: string, password: string) => { // e.preventDefault(); // const email = new FormData(e.currentTarget).get("email"); // const first = new FormData(e.currentTarget).get("first"); // const last = new FormData(e.currentTarget).get("last"); console.log("-------------", email) if ( // !signUpLoaded || isLoading || typeof email !== "string" // typeof first !== "string" || // typeof last !== "string" ) { return null; } setIsLoading(true) try { // await signUp // .create({ // emailAddress: email, // firstName: first, // lastName: last, // }) // .then(async () => { // await signUp.prepareEmailAddressVerification(); // setIsLoading(false); // // set verification to true so we can show the code input // setVerification(true); // }) // .catch((err) => { // setIsLoading(false); // if (err.errors[0].code === "form_identifier_exists") { // toast.error("Sorry, it looks like you have an account. Please use sign in"); // } else { // toast.error("Sorry, We couldn't sign you up. Please try again later"); // } // }); await service.post('/api/v1/common/auth-code', { user_name: email, email: email, }).then(function (result: any) { setIsLoading(false); console.log("result:", result) if (result && result.header.code != 0) { toast.error(result.header.message) return } props.password(password) toast.success(result.header.message) props.setVerification(true); // 自身方法 // localStorage.setItem("data", JSON.stringify(result.data)); // []方法 { {/* localStorage["name"]="bonly"; */ } } }).catch((err: any) => { setIsLoading(false); console.log(err); // if (err.errors[0].code === "form_identifier_not_found") { // props.setAccountNotFound(true); // props.email(email); // } else { // props.setError("Sorry, We couldn't sign you in. Please try again later"); // } }); } catch (error) { setIsLoading(false); console.error(error); } }; return ( {!goPassword ?
{ e.preventDefault(); const email = new FormData(e.currentTarget).get("email"); if ( typeof email !== "string" // typeof first !== "string" || // typeof last !== "string" ) { return null; } console.log("------1", email) props.email(email) setGoPassword(true) }}>
:
{ e.preventDefault(); const password = new FormData(e.currentTarget).get("password"); const confirmPassword = new FormData(e.currentTarget).get("confirmPassword"); console.log("------1", props.emailValue, password, confirmPassword) if (typeof password !== "string" || password != confirmPassword) { toast.error("two passwords do not match") return } await signUpWithCode(props.emailValue, password) setGoPassword(false) }} >
show { setShowPassword(!showPassword) // toast.success('coming soon') }} />
show { setShowPassword2(!showPassword2) // toast.success('coming soon') }} />
}
); };