|
1 |
| -import { useEffect, useState } from "react"; |
| 1 | +import { useState } from "react"; |
2 | 2 | import { useForm } from "react-hook-form";
|
3 | 3 | import { useNavigate } from "react-router-dom";
|
4 | 4 | import { ViewIcon, ViewOffIcon } from "@chakra-ui/icons";
|
@@ -33,21 +33,18 @@ type FormData = {
|
33 | 33 | export default function SignUp() {
|
34 | 34 | const signupMutation = useSignupMutation();
|
35 | 35 | const sendSmsCodeMutation = useSendSmsCodeMutation();
|
36 |
| - |
| 36 | + const [isNeedPhone, setIsNeedPhone] = useState(false); |
37 | 37 | const { providers, setProviders } = useAuthStore();
|
| 38 | + |
38 | 39 | useGetProvidersQuery((data: any) => {
|
39 | 40 | setProviders(data?.data || []);
|
40 |
| - }); |
41 |
| - const [isNeedPhone, setIsNeedPhone] = useState(false); |
42 |
| - |
43 |
| - useEffect(() => { |
44 | 41 | if (providers.length) {
|
45 |
| - const passwordProvider = providers.find((provider) => provider.type === "user-password"); |
| 42 | + const passwordProvider = providers.find((provider) => provider.name === "user-password"); |
46 | 43 | if (passwordProvider) {
|
47 | 44 | setIsNeedPhone(passwordProvider.bind?.phone === "required");
|
48 | 45 | }
|
49 | 46 | }
|
50 |
| - }, [providers]); |
| 47 | + }); |
51 | 48 |
|
52 | 49 | const { showSuccess, showError } = useGlobalStore();
|
53 | 50 | const navigate = useNavigate();
|
@@ -78,13 +75,21 @@ export default function SignUp() {
|
78 | 75 | return;
|
79 | 76 | }
|
80 | 77 |
|
81 |
| - const res = await signupMutation.mutateAsync({ |
82 |
| - phone: data.phone, |
83 |
| - code: data.validationCode, |
84 |
| - username: data.account, |
85 |
| - password: data.password, |
86 |
| - type: "Signup", |
87 |
| - }); |
| 78 | + const params = isNeedPhone |
| 79 | + ? { |
| 80 | + phone: data.phone, |
| 81 | + code: data.validationCode, |
| 82 | + username: data.account, |
| 83 | + password: data.password, |
| 84 | + type: "Signup", |
| 85 | + } |
| 86 | + : { |
| 87 | + username: data.account, |
| 88 | + password: data.password, |
| 89 | + type: "Signup", |
| 90 | + }; |
| 91 | + |
| 92 | + const res = await signupMutation.mutateAsync(params); |
88 | 93 |
|
89 | 94 | if (res?.data) {
|
90 | 95 | showSuccess(t("AuthPanel.SignupSuccess"));
|
@@ -132,7 +137,7 @@ export default function SignUp() {
|
132 | 137 | };
|
133 | 138 |
|
134 | 139 | return (
|
135 |
| - <div className="bg-white absolute left-1/2 top-1/2 -translate-y-1/2 w-[560px] h-[644px] rounded-[10px] p-[65px]"> |
| 140 | + <div className="bg-white absolute left-1/2 top-1/2 -translate-y-1/2 w-[560px] rounded-[10px] p-[65px]"> |
136 | 141 | <div className="mb-[45px]">
|
137 | 142 | <img src="/logo.png" alt="logo" width={40} className="mr-4" />
|
138 | 143 | </div>
|
|
0 commit comments