UNPKG

@particle-network/authkit

Version:

Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.

8 lines (7 loc) 9.48 kB
{ "version": 3, "sources": ["../../src/pages/loginAccount/index.tsx"], "sourcesContent": ["import { AuthType } from '@particle-network/auth-core';\nimport { useThrottleFn } from 'ahooks';\nimport { parsePhoneNumber } from 'libphonenumber-js/max';\nimport React, { useMemo } from 'react';\nimport useMessage from '../..//context/hooks/useMessage';\nimport Header from '../../components/header';\nimport SVGIcon from '../../components/icon/svg-icon';\nimport PowerFooter from '../../components/power-footer';\nimport { useCustomNavigate, useParticleAuth, useTranslation } from '../../context';\nimport { PageType } from '../account/accountVerify/config';\n\nimport email from '../../common/images/email_icon.png';\nimport facebook from '../../common/images/facebook_icon.png';\nimport google from '../../common/images/google_icon.png';\nimport phone from '../../common/images/phone_icon.png';\nimport twitter from '../../common/images/twitter_icon.png';\n\nimport styles from './index.less';\n\nexport const getAccountList = (params: any) => {\n const { userInfo, t } = params;\n const list = [\n {\n type: AuthType.phone,\n icon: phone,\n name: t('account.mobile'),\n value: userInfo.phone,\n id: undefined,\n isOriginal: false,\n },\n {\n type: AuthType.email,\n icon: email,\n name: t('account.email'),\n value: userInfo.email,\n id: undefined,\n isOriginal: false,\n },\n {\n type: AuthType.google,\n icon: google,\n name: t('login.google'),\n value: userInfo.google_email,\n id: userInfo.google_id,\n isOriginal: false,\n },\n {\n type: AuthType.facebook,\n icon: facebook,\n name: t('login.facebook'),\n value: userInfo.facebook_email,\n id: userInfo.facebook_id,\n isOriginal: false,\n },\n {\n type: AuthType.twitter,\n icon: twitter,\n name: t('login.twitter'),\n value: userInfo.twitter_email,\n id: userInfo.twitter_id,\n isOriginal: false,\n },\n ];\n // if (userInfo.email && isSDKSupportPassKeys()) {\n // list.push({\n // type: AuthType.passkeys,\n // icon: passkeys,\n // name: t('login.passkeys'),\n // value: undefined,\n // id: userInfo.passkeys_id ? userInfo.email : undefined,\n // isOriginal: false,\n // });\n // }\n return list;\n};\n\nexport const encryptValue = (value: string) => {\n let result = value?.replace(' ', '');\n if (!result) {\n return result;\n } else if (result?.includes?.('@')) {\n // email\n result = `${result.split('@')[0].substr(0, 3)}****@${result.split('@')[1]}`;\n } else if (result?.includes?.('+')) {\n // phone\n const phoneNumber = parsePhoneNumber(result);\n const nationalNumber = phoneNumber.nationalNumber.toString();\n const countryCode = phoneNumber.countryCallingCode;\n result = `+${countryCode} ${nationalNumber?.substr?.(0, 3)}****${nationalNumber?.substr?.(-4)}`;\n } else if (result) {\n result = `${result.substr(0, 3)}****${result.substr(-4)}`;\n }\n return result;\n};\n\nlet selectedAuthType: AuthType;\n\nconst LoginAccount = () => {\n const { t } = useTranslation();\n const navigate = useCustomNavigate();\n const { userInfo, showSelectSecurityAccount } = useParticleAuth();\n const message = useMessage();\n const { run: toAccountVerify } = useThrottleFn(\n (params) => {\n navigate('/account/verify', {\n state: {\n account: params.account, // \u9A8C\u8BC1\u5B89\u5168\u8D26\u53F7\n authType: selectedAuthType, // \u5217\u8868\u9009\u62E9\u7684 authType\n pageType: PageType.VerifySecurityAccount_BindLoginAccount,\n },\n });\n },\n { wait: 3000 }\n );\n\n const accountList = useMemo(() => {\n return getAccountList({ userInfo, t });\n }, [userInfo, t]);\n\n const toLoginAccountBind = (item: any) => {\n if (item.value || item.id) {\n // \u76F4\u63A5\u8DF3\u8F6C\u5230LoginAccount\u9875\u9762\n // if (item.type === AuthType.passkeys) {\n // navigate('/login-account/details', {\n // state: {\n // accountInfo: item,\n // },\n // });\n // } else {\n navigate('/login-account/bind', {\n state: {\n authType: item.type,\n },\n });\n // }\n } else if (!userInfo?.security_account?.email && !userInfo?.security_account?.phone) {\n // \u7ED1\u5B9A\u5B89\u5168\u8D26\u53F7\n message.error('Please bind security account first.');\n } else if (userInfo?.security_account?.email && userInfo?.security_account?.phone) {\n // \u9009\u62E9\u5B89\u5168\u8D26\u53F7\n showSelectSecurityAccount(true, {\n authType: selectedAuthType, // \u5217\u8868\u9009\u62E9\u7684 authType\n pageType: PageType.VerifySecurityAccount_BindLoginAccount,\n });\n } else {\n // \u9A8C\u8BC1\u5B89\u5168\u8D26\u53F7\n toAccountVerify({\n account: userInfo?.security_account?.email || userInfo?.security_account?.phone,\n });\n }\n };\n\n return (\n <div className='login-account-box'>\n <style>{styles as unknown as string}</style>\n <Header displayBackBtn={true}>{t('account.login_account')}</Header>\n <div className='scroll-content'>\n <div className='login-account-description'>{t('account.login_account_hint')}</div>\n <div className='account-list'>\n {accountList?.map((item, index) => {\n return (\n <div\n className='login-account-item'\n onClick={() => {\n selectedAuthType = item.type;\n toLoginAccountBind(item);\n }}\n key={index}\n >\n <img src={item.icon} />\n <div className='login-account-name'>{item.name}</div>\n <div className='login-account-value' data-no-linked={item.value || item.id ? false : true}>\n {encryptValue(item.value || item.id) || t('account.not_linked')}\n </div>\n <SVGIcon className='arrow-right-icon' name='arrow_right_icon' />\n </div>\n );\n })}\n </div>\n </div>\n\n <PowerFooter className='footer-box-v2' />\n </div>\n );\n};\n\nexport default LoginAccount;\n"], "mappings": "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", "names": ["loginAccount_default"] }