Merge pull request #2676 from seefs001/fix/aff-login-method
fix: the login method cannot be displayed under the aff link.
This commit is contained in:
@@ -17,9 +17,10 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
For commercial licensing, please contact support@quantumnous.com
|
For commercial licensing, please contact support@quantumnous.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useContext, useEffect, useRef, useState } from 'react';
|
import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import { Link, useNavigate, useSearchParams } from 'react-router-dom';
|
import { Link, useNavigate, useSearchParams } from 'react-router-dom';
|
||||||
import { UserContext } from '../../context/User';
|
import { UserContext } from '../../context/User';
|
||||||
|
import { StatusContext } from '../../context/Status';
|
||||||
import {
|
import {
|
||||||
API,
|
API,
|
||||||
getLogo,
|
getLogo,
|
||||||
@@ -73,6 +74,7 @@ const LoginForm = () => {
|
|||||||
const [searchParams, setSearchParams] = useSearchParams();
|
const [searchParams, setSearchParams] = useSearchParams();
|
||||||
const [submitted, setSubmitted] = useState(false);
|
const [submitted, setSubmitted] = useState(false);
|
||||||
const [userState, userDispatch] = useContext(UserContext);
|
const [userState, userDispatch] = useContext(UserContext);
|
||||||
|
const [statusState] = useContext(StatusContext);
|
||||||
const [turnstileEnabled, setTurnstileEnabled] = useState(false);
|
const [turnstileEnabled, setTurnstileEnabled] = useState(false);
|
||||||
const [turnstileSiteKey, setTurnstileSiteKey] = useState('');
|
const [turnstileSiteKey, setTurnstileSiteKey] = useState('');
|
||||||
const [turnstileToken, setTurnstileToken] = useState('');
|
const [turnstileToken, setTurnstileToken] = useState('');
|
||||||
@@ -108,20 +110,26 @@ const LoginForm = () => {
|
|||||||
localStorage.setItem('aff', affCode);
|
localStorage.setItem('aff', affCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
const [status] = useState(() => {
|
const status = useMemo(() => {
|
||||||
|
if (statusState?.status) return statusState.status;
|
||||||
const savedStatus = localStorage.getItem('status');
|
const savedStatus = localStorage.getItem('status');
|
||||||
return savedStatus ? JSON.parse(savedStatus) : {};
|
if (!savedStatus) return {};
|
||||||
});
|
try {
|
||||||
|
return JSON.parse(savedStatus) || {};
|
||||||
|
} catch (err) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}, [statusState?.status]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (status.turnstile_check) {
|
if (status?.turnstile_check) {
|
||||||
setTurnstileEnabled(true);
|
setTurnstileEnabled(true);
|
||||||
setTurnstileSiteKey(status.turnstile_site_key);
|
setTurnstileSiteKey(status.turnstile_site_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从 status 获取用户协议和隐私政策的启用状态
|
// 从 status 获取用户协议和隐私政策的启用状态
|
||||||
setHasUserAgreement(status.user_agreement_enabled || false);
|
setHasUserAgreement(status?.user_agreement_enabled || false);
|
||||||
setHasPrivacyPolicy(status.privacy_policy_enabled || false);
|
setHasPrivacyPolicy(status?.privacy_policy_enabled || false);
|
||||||
}, [status]);
|
}, [status]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
For commercial licensing, please contact support@quantumnous.com
|
For commercial licensing, please contact support@quantumnous.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useContext, useEffect, useRef, useState } from 'react';
|
import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import { Link, useNavigate } from 'react-router-dom';
|
import { Link, useNavigate } from 'react-router-dom';
|
||||||
import {
|
import {
|
||||||
API,
|
API,
|
||||||
@@ -59,6 +59,7 @@ import LinuxDoIcon from '../common/logo/LinuxDoIcon';
|
|||||||
import WeChatIcon from '../common/logo/WeChatIcon';
|
import WeChatIcon from '../common/logo/WeChatIcon';
|
||||||
import TelegramLoginButton from 'react-telegram-login/src';
|
import TelegramLoginButton from 'react-telegram-login/src';
|
||||||
import { UserContext } from '../../context/User';
|
import { UserContext } from '../../context/User';
|
||||||
|
import { StatusContext } from '../../context/Status';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { SiDiscord } from 'react-icons/si';
|
import { SiDiscord } from 'react-icons/si';
|
||||||
|
|
||||||
@@ -80,6 +81,7 @@ const RegisterForm = () => {
|
|||||||
});
|
});
|
||||||
const { username, password, password2 } = inputs;
|
const { username, password, password2 } = inputs;
|
||||||
const [userState, userDispatch] = useContext(UserContext);
|
const [userState, userDispatch] = useContext(UserContext);
|
||||||
|
const [statusState] = useContext(StatusContext);
|
||||||
const [turnstileEnabled, setTurnstileEnabled] = useState(false);
|
const [turnstileEnabled, setTurnstileEnabled] = useState(false);
|
||||||
const [turnstileSiteKey, setTurnstileSiteKey] = useState('');
|
const [turnstileSiteKey, setTurnstileSiteKey] = useState('');
|
||||||
const [turnstileToken, setTurnstileToken] = useState('');
|
const [turnstileToken, setTurnstileToken] = useState('');
|
||||||
@@ -114,25 +116,29 @@ const RegisterForm = () => {
|
|||||||
localStorage.setItem('aff', affCode);
|
localStorage.setItem('aff', affCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
const [status] = useState(() => {
|
const status = useMemo(() => {
|
||||||
|
if (statusState?.status) return statusState.status;
|
||||||
const savedStatus = localStorage.getItem('status');
|
const savedStatus = localStorage.getItem('status');
|
||||||
return savedStatus ? JSON.parse(savedStatus) : {};
|
if (!savedStatus) return {};
|
||||||
});
|
try {
|
||||||
|
return JSON.parse(savedStatus) || {};
|
||||||
|
} catch (err) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}, [statusState?.status]);
|
||||||
|
|
||||||
const [showEmailVerification, setShowEmailVerification] = useState(() => {
|
const [showEmailVerification, setShowEmailVerification] = useState(false);
|
||||||
return status.email_verification ?? false;
|
|
||||||
});
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setShowEmailVerification(status.email_verification);
|
setShowEmailVerification(!!status?.email_verification);
|
||||||
if (status.turnstile_check) {
|
if (status?.turnstile_check) {
|
||||||
setTurnstileEnabled(true);
|
setTurnstileEnabled(true);
|
||||||
setTurnstileSiteKey(status.turnstile_site_key);
|
setTurnstileSiteKey(status.turnstile_site_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从 status 获取用户协议和隐私政策的启用状态
|
// 从 status 获取用户协议和隐私政策的启用状态
|
||||||
setHasUserAgreement(status.user_agreement_enabled || false);
|
setHasUserAgreement(status?.user_agreement_enabled || false);
|
||||||
setHasPrivacyPolicy(status.privacy_policy_enabled || false);
|
setHasPrivacyPolicy(status?.privacy_policy_enabled || false);
|
||||||
}, [status]);
|
}, [status]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user