@particle-network/authkit
Version:
Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.
8 lines (7 loc) • 25.6 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/pages/account/accountBind/index.tsx", "../../src/pages/account/accountBind/captcha-input.tsx"],
"sourcesContent": ["import { DownOutlined } from '@ant-design/icons';\nimport { getBindSecurityAccounCaptcha, getCloudflareTurnstileResponse } from '@particle-network/auth-core';\nimport { useRequest } from 'ahooks';\nimport { Button } from 'antd';\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { defaultCountriesData, getCurrentCountry } from '../../../api/model/all-countries';\nimport SVGIcon from '../../../components/icon/svg-icon';\nimport PowerFooter from '../../../components/power-footer';\nimport { useAuthCoreModal, useCustomNavigate, useTranslation } from '../../../context';\nimport { useCustomize } from '../../../context/hooks/useCustomize';\nimport useMessage from '../../../context/hooks/useMessage';\nimport { EmailRegExp, isPhoneValid } from '../../../utils';\nimport CaptchaInput from './captcha-input';\nimport styles from './index.less';\n\nconst AccountBind = (props: any) => {\n const navigate = useCustomNavigate();\n\n const { t } = useTranslation();\n const state = props;\n const redirectUrl = (state as any)?.redirectUrl;\n const verifyToken = (state as any)?.verifyToken;\n const message = useMessage();\n const clickRef = useRef<any>();\n const [bindAccount, setBindAccount] = useState<string>('');\n const [countryData, setCountryData] = useState(['United States', 'us', '1']);\n const [isSendCode, setIsSendCode] = useState(false);\n const accountInputRef = useRef(null);\n const [errorMsg, setError] = useState('');\n\n const { themeType, language } = useCustomize();\n\n const { authCoreModal } = useAuthCoreModal();\n\n const [accountType, setAccountType] = useState<string>('email');\n\n useEffect(() => {\n if (accountType === 'phone' || (state as any)?.showSwitch) {\n const currentCountry = getCurrentCountry();\n if (currentCountry) {\n setCountryData(currentCountry);\n }\n }\n }, [accountType, (state as any)?.showSwitch]);\n\n const [visbSelectCountry, setVisbSelectCountry] = useState(false);\n useEffect(() => {\n if (visbSelectCountry) {\n document.addEventListener('click', clickCallback, true);\n return () => {\n document.removeEventListener('click', clickCallback, true);\n };\n }\n }, [visbSelectCountry]);\n\n const clickCallback = (event: any) => {\n setTimeout(() => {\n if (clickRef.current?.contains(event.target)) {\n return;\n }\n setVisbSelectCountry(false);\n });\n };\n useEffect(() => {\n const type = (state as any)?.accountType;\n if (type) {\n setAccountType(type);\n }\n }, [state]);\n\n const { loading: codeLoading, run: runGetCode } = useRequest(getBindSecurityAccounCaptcha, {\n manual: true,\n onSuccess: (result, params) => {\n setIsSendCode(result);\n },\n onError: (error: any) => {\n const code = error?.error_code || 0;\n if (code === 50003 || code === 50004) {\n setBindAccount('');\n (accountInputRef.current as any).value = '';\n }\n },\n });\n\n const checkAndRequestCode = () => {\n let account = (accountInputRef.current as any).value;\n\n if (accountType === 'email') {\n if (!account) {\n return setError(t('account.input_vaild_email') as string);\n } else if (!EmailRegExp.test(account)) {\n return setError(t('login.email_format_error') as string);\n }\n } else {\n const regionCode = countryData[1].toUpperCase();\n if (!account && account !== '0') {\n return setError(t('account.input_vaild_mobile') as string);\n } else if (!isPhoneValid(account, regionCode)) {\n return setError(t('login.phone_format_error') as string);\n } else {\n account = `+${countryData[2]}${account}`;\n }\n }\n setBindAccount(account);\n if (!account.includes('@')) {\n getCloudflareTurnstileResponse({\n theme: themeType,\n language,\n getContainer: () => {\n return authCoreModal.rootBody as HTMLElement;\n },\n })\n .then((token) => {\n runGetCode({\n phone: account,\n // eslint-disable-next-line camelcase\n cf_turnstile_response: token,\n });\n })\n .catch((error) => {\n message.error(t('error.server_20112'));\n });\n } else {\n runGetCode({\n email: account,\n });\n }\n };\n\n const changeAccountType = () => {\n setError('');\n setAccountType(accountType === 'email' ? 'phone' : 'email');\n setBindAccount('');\n };\n\n useEffect(() => {\n setTimeout(() => {\n (accountInputRef.current as any)?.focus();\n });\n }, []);\n\n // \u8F93\u5165\u9A8C\u8BC1\u7801\n if (isSendCode) {\n return (\n <CaptchaInput\n bindAccount={bindAccount}\n redirectUrl={redirectUrl || ''}\n verifyToken={verifyToken}\n backToInputAccount={() => {\n setIsSendCode(false);\n }}\n />\n );\n }\n return (\n <div className='set-email-container'>\n <style>{styles as unknown as string}</style>\n <SVGIcon className='icon-navigation-back' name='circle_back' onClick={() => navigate(-1)} />\n <h2 className='set-email-title'>\n {accountType === 'email' ? t('account.set_your_email') : t('account.set_your_mobile')}\n </h2>\n <p className='set-email-desc-1'>\n {accountType === 'email' ? t('account.set_your_email_tip') : t('account.set_your_mobile_tip')}\n </p>\n\n {accountType === 'email' ? (\n <>\n <div className='account-input-box'>\n <input\n onInput={() => setError('')}\n className='input_email'\n type='email'\n placeholder={t('account.place_email_address') as string}\n ref={accountInputRef}\n defaultValue={bindAccount}\n // \u56DE\u8F66\u4E8B\u4EF6\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n checkAndRequestCode();\n }\n }}\n />\n </div>\n </>\n ) : (\n <>\n <div className='account-input-box phone' ref={clickRef}>\n {visbSelectCountry && (\n <div className='account-select-country'>\n {defaultCountriesData.map((item, index) => (\n <p\n key={index}\n className='account-select-country-item'\n onClick={() => {\n setCountryData(item);\n setVisbSelectCountry(false);\n }}\n >\n <div className='country-box'>\n <div className='country-flag'>{getUnicodeFlagIcon(`${item[1]}`)}</div>\n <span className='country-name'>{item[0]}</span>\n </div>\n <div className='country-code'>{'+' + item[2]}</div>\n </p>\n ))}\n </div>\n )}\n <div className='account-select-opt' onClick={() => setVisbSelectCountry(!visbSelectCountry)}>\n <div className='account-select-icon'>{getUnicodeFlagIcon(`${countryData[1]}`)}</div>\n <DownOutlined className='down-more' />\n </div>\n <span>+{countryData[2]}</span>\n <input\n onInput={() => {\n setError('');\n\n (accountInputRef.current as any).value =\n (accountInputRef.current as any).value.match(/^\\d+/)?.[0] || '';\n }}\n type='text'\n className='no-number dd'\n placeholder={t('account.mobile') as string}\n ref={accountInputRef}\n onWheel={(e: any) => e.target.blur()}\n defaultValue={bindAccount.replace(`+${countryData[2]}`, '')}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n checkAndRequestCode();\n }\n }}\n onFocus={() => {\n document.querySelector('.account-input-box.phone')?.setAttribute('data-focus', 'true');\n }}\n onBlur={() => {\n document.querySelector('.account-input-box.phone')?.setAttribute('data-focus', 'false');\n }}\n />\n </div>\n </>\n )}\n <p className={`error-tip ${errorMsg ? 'show' : ''}`}>{errorMsg}</p>\n\n <Button\n className='send-code-btn account-submit-btn bottom-margin'\n loading={codeLoading}\n onClick={checkAndRequestCode}\n >\n {t('login.get_captcha')}\n </Button>\n\n {(state as any)?.showSwitch && (\n <div className='account-switch-item' onClick={changeAccountType}>\n {accountType === 'email' ? t('account.switch_text_mobile') : t('account.switch_text_email')}\n </div>\n )}\n <PowerFooter />\n </div>\n );\n};\n\nexport default AccountBind;\n", "import {\n ApiError,\n bindSecurityAccount,\n getBindSecurityAccounCaptcha,\n getCloudflareTurnstileResponse,\n syncUserInfo,\n} from '@particle-network/auth-core';\nimport { useInterval, useRequest } from 'ahooks';\nimport { Button } from 'antd';\nimport throttle from 'lodash/throttle.js';\nimport qs from 'qs';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport SVGIcon from '../../../components/icon/svg-icon';\nimport PowerFooter from '../../../components/power-footer';\nimport AuthCode from '../../../components/react-auth-code-input';\nimport { useAuthCoreModal, useCustomNavigate, useTranslation } from '../../../context';\nimport { useCustomize } from '../../../context/hooks/useCustomize';\nimport useMessage from '../../../context/hooks/useMessage';\nimport styles from './index.less';\n\nconst CaptchaInput = (props: any) => {\n const { bindAccount, backToInputAccount, redirectUrl = '', verifyToken = '' } = props;\n const message = useMessage();\n const { t } = useTranslation();\n\n const { themeType, language } = useCustomize();\n\n const navigate = useCustomNavigate();\n\n const [captchaCode, setCaptchaCode] = useState<string>('');\n\n const [interval, setInterval] = useState<number | undefined>(1000);\n\n const [countdown, setCountdown] = useState(60);\n\n const [errorTip, setErrorTip] = useState<string>();\n\n const inputRef = useRef(null);\n\n const { authCoreModal } = useAuthCoreModal();\n\n const [bindLoading, setBindLoading] = useState(false);\n\n useInterval(() => {\n if (countdown > 0) {\n const result = countdown - 1;\n setCountdown(result);\n if (result === 0) {\n setInterval(undefined);\n }\n }\n }, interval);\n\n const { run: runBinding } = useRequest(bindSecurityAccount, {\n manual: true,\n onBefore: () => {\n setBindLoading(true);\n },\n onSuccess: (result: any) => {\n syncUserInfo();\n\n if (redirectUrl) {\n navigate(redirectUrl.split('?')[0], {\n replace: true,\n back: true,\n state: {\n ...qs.parse(redirectUrl.split('?')[1]),\n verifyToken: result?.token,\n account: bindAccount,\n },\n });\n } else if (!result.has_set_payment_password) {\n // router to set payment password\n navigate('/account/set-password');\n } else {\n navigate('/account/security', { replace: true });\n }\n },\n onError: (error: any) => {\n console.log('bind accounts error', error);\n if (error?.error_code === ApiError.InvalidCode) {\n setErrorTip(t('login.invalid_code') as string);\n } else if (error?.error_code === ApiError.ResendCode) {\n setErrorTip(t('login.please_send_again') as string);\n }\n },\n onFinally: () => {\n setTimeout(() => {\n setBindLoading(false);\n }, 2000);\n },\n });\n\n const { loading: codeLoading, run: runGetCode } = useRequest(getBindSecurityAccounCaptcha, {\n manual: true,\n onSuccess: (result, params) => {\n if (!interval) {\n setCountdown(60);\n setInterval(1000);\n }\n },\n onError: (error: any) => {\n setCountdown(0);\n setInterval(undefined);\n },\n });\n\n const submitBind = (code?: string) => {\n let param: { email?: string; phone?: string; code: string; token?: string };\n if (bindAccount.includes('@')) {\n param = { email: bindAccount, code: code || captchaCode };\n } else {\n param = { phone: bindAccount, code: code || captchaCode };\n }\n\n if (verifyToken) {\n param.token = verifyToken;\n }\n runBinding(param as any);\n };\n\n const requestCaptchaCode = () => {\n setErrorTip('');\n if (bindAccount.includes('@')) {\n runGetCode({\n email: bindAccount,\n });\n } else {\n getCloudflareTurnstileResponse({\n theme: themeType,\n language,\n getContainer: () => {\n return authCoreModal.rootBody as HTMLElement;\n },\n })\n .then((token) => {\n runGetCode({\n phone: bindAccount,\n // eslint-disable-next-line camelcase\n cf_turnstile_response: token,\n });\n })\n .catch((error) => {\n message.error(t('error.server_20112'));\n });\n }\n };\n\n const onCodeInputChange = (code: string) => {\n setCaptchaCode(code);\n setErrorTip('');\n if (code.length === 6) {\n throttleSubmitBind(code);\n }\n };\n\n const throttleSubmitBind = useCallback(\n throttle(\n (code) => {\n submitBind(code);\n },\n 1000,\n {\n leading: true,\n trailing: false,\n }\n ),\n []\n );\n\n useEffect(() => {\n const elements = document.getElementsByClassName('react-input-code');\n const contextmenuEvent = (e: any) => e.preventDefault();\n elements[0]?.addEventListener('contextmenu', contextmenuEvent);\n return () => {\n elements[0]?.removeEventListener('contextmenu', contextmenuEvent);\n };\n }, []);\n\n const handleCodeInputFocus = () => {\n const elements = document.getElementsByClassName('input-code-item');\n //@ts-ignore\n elements[Math.min(captchaCode.length, 5)]?.focus();\n };\n\n return (\n <div className='set-email-container'>\n <style>{styles as unknown as string}</style>\n <SVGIcon className='icon-navigation-back' name='circle_back' onClick={backToInputAccount} />\n <h2 className='set-email-title'>{t('account.enter_code')}</h2>\n <p className='set-email-desc-2' style={{ margin: 20 }}>\n {bindAccount}\n </p>\n <div onClick={handleCodeInputFocus}>\n <AuthCode\n containerClassName='react-input-code'\n inputClassName='input-code-item'\n allowedCharacters='numeric'\n length={6}\n ref={inputRef}\n placeholder={' '}\n onChange={onCodeInputChange}\n />\n </div>\n\n {errorTip && <div className='code-error'>{errorTip}</div>}\n\n <Button\n disabled={captchaCode.length !== 6}\n className='account-submit-btn'\n loading={bindLoading}\n onClick={() => submitBind()}\n >\n {t('common.confirm')}\n </Button>\n\n <Button className='send-again' onClick={requestCaptchaCode} disabled={countdown > 0 || codeLoading}>\n {countdown > 0 ? `${t('login.send_again')} (${countdown}s)` : t('login.send_again')}\n </Button>\n <div className='back' onClick={backToInputAccount}>\n <SVGIcon className='arrow1-icon' name='arrow1_icon' />\n <span>{t('login.back')}</span>\n </div>\n <PowerFooter />\n </div>\n );\n};\n\nexport default CaptchaInput;\n"],
"mappings": "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",
"names": ["getBindSecurityAccounCaptcha", "getCloudflareTurnstileResponse", "useRequest", "Button", "React", "useEffect", "useRef", "useState", "_a", "useRef", "useState", "useEffect", "useRequest", "getBindSecurityAccounCaptcha", "getCloudflareTurnstileResponse", "React", "Button", "accountBind_default"]
}