@matchain/matchid-sdk-react 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/MatchContext.tsx","../src/assets/icon/ArrowLeftIcon.tsx","../src/assets/icon/BackIcon.tsx","../src/assets/icon/CloseIcon.tsx","../src/assets/icon/XIcon.tsx","../src/assets/icon/GoogleIcon.tsx","../src/assets/icon/WalletIcon.tsx","../src/assets/icon/TelegramIcon.tsx","../src/assets/icon/EmailIcon.tsx","../src/assets/icon/ArrowRightIcon.tsx","../src/assets/icon/CloseRoundIcon.tsx","../src/assets/icon/LoadingIcon.tsx","../src/assets/icon/EmailLineIcon.tsx","../src/assets/icon/UnLoginIcon.tsx","../src/assets/icon/LoginIcon.tsx","../src/assets/icon/CheckRoundIcon.tsx","../src/assets/icon/PasswordRoundIcon.tsx","../src/assets/icon/CloseEyeIcon.tsx","../src/assets/icon/OpenEyeIcon.tsx","../src/assets/icon/DeleteRoundIcon.tsx","../src/components/Modal/index.tsx","../src/components/PasswordModal/index.tsx","../src/components/Input/index.tsx","../src/components/Field/index.tsx","../src/components/Button/index.tsx","../src/hooks/index.tsx","../src/store/useLocalStore.ts","../src/hooks/useUserInfo.tsx","../src/api/request.ts","../src/config/env/main.ts","../src/config/env/dev.ts","../src/config/env/test.ts","../src/config/env/index.ts","../src/store/index.ts","../src/api/index.ts","../src/hooks/eventManager.ts","../src/utils/index.ts","../src/hooks/useMatchEvents.ts","../src/hooks/useWallet.tsx","../src/store/useStore.ts","../src/components/RecoveryModal/index.tsx","../src/context/BusinessProvider.tsx","../src/context/index.tsx","../src/hooks/useInit.tsx","../src/components/index.tsx","../src/components/EmailModal/index.tsx","../src/components/EmailModal/StepEmail.tsx","../src/components/EmailModal/StepVerify.tsx","../src/config/index.tsx","../src/components/LoginBox/index.tsx","../src/components/LoginButton/index.tsx","../src/components/LoginPanel/index.tsx","../src/components/LoginModal/index.tsx","../src/components/UsernameModal/index.tsx","../src/assets/icon/InfoRoundIcon.tsx"],"sourcesContent":["// src/index.tsx\nimport {useMatch, MatchProvider} from \"./MatchContext\"\nimport * as Components from \"./components\"\nimport * as Hooks from \"./hooks\"\n\nexport {\n useMatch,\n MatchProvider,\n Components,\n Hooks\n}\n\n","// src/MatchContext.tsx\nimport React, {createContext, useContext, ReactNode, useEffect, useState, useRef} from 'react';\nimport Providers from './context';\nimport { IEnvName, IMatchEvents} from \"./types/types\";\nimport {useWalletInit} from \"hooks/useWallet\"\nimport useInit from \"./hooks/useInit\";\n\ntype MatchContextType = {\n env: IEnvName;\n appid: string;\n endpoints: {\n login: string;\n back: string;\n };\n events?: IMatchEvents;\n login: (data: { mid: string; token: string }) => Promise<void>;\n theme: \"light\" | \"dark\";\n};\n\nexport const MatchContext = createContext<MatchContextType | undefined>(undefined);\n\nexport const MatchProvider: React.FC<{\n children: ReactNode;\n appid: string;\n env?: IEnvName;\n events?: IMatchEvents;\n theme?: \"light\" | \"dark\",\n}> = ({children, appid, env = 'main', events, theme = \"light\"}) => {\n\n const {loadOverview, login, config, endpoints} = useInit({\n theme,\n appid,\n env,\n events,\n })\n\n useWalletInit({\n refreshOverview: loadOverview\n })\n\n return (\n <MatchContext.Provider\n value={{\n appid,\n env,\n endpoints,\n events,\n login,\n theme,\n }}\n >\n <Providers>{children}</Providers>\n </MatchContext.Provider>\n );\n};\n\nexport const useMatch = () => {\n const context = useContext(MatchContext);\n\n if (context === undefined) {\n throw new Error('useMatch must be used within a MatchProvider');\n }\n return context;\n};","import {IconProps} from \"types/types\";\n\nexport default function ArrowLeftIcon({\n color = \"#000\",\n width = 24,\n height = 25,\n ...props\n }: IconProps) {\n return <svg width={width} height={height} {...props} viewBox=\"0 0 24 25\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M10.2322 5.26777L11.1161 6.15165L5.55207 11.7157H20.2157L20.2157 12.962L5.55207 12.962L11.1161 18.526L10.2322 19.4099L3.16117 12.3388L10.2322 5.26777Z\"\n fill={color}/>\n </svg>\n\n}","import {CSSProperties} from \"react\";\n\nexport default function BackIcon({\n color = \"#000\",\n size = 24,\n className,\n style\n }: {\n color?: string,\n size?: number,\n style?: CSSProperties\n className?: string\n}) {\n return (\n <svg className={className} style={style} width={size} height={size} viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.2917 25.2926C11.1988 25.3855 11.1251 25.4958 11.0748 25.6172C11.0245 25.7386 10.9987 25.8687 10.9987 26.0001C10.9987 26.1315 11.0245 26.2616 11.0748 26.383C11.1251 26.5044 11.1988 26.6147 11.2917 26.7076C11.3846 26.8005 11.4949 26.8742 11.6163 26.9245C11.7377 26.9747 11.8678 27.0006 11.9992 27.0006C12.1306 27.0006 12.2607 26.9747 12.3821 26.9245C12.5035 26.8742 12.6138 26.8005 12.7067 26.7076L22.7067 16.7076C22.7997 16.6147 22.8734 16.5044 22.9238 16.383C22.9741 16.2616 23 16.1315 23 16.0001C23 15.8687 22.9741 15.7385 22.9238 15.6171C22.8734 15.4957 22.7997 15.3854 22.7067 15.2926L12.7067 5.29257C12.5191 5.10493 12.2646 4.99951 11.9992 4.99951C11.7338 4.99951 11.4794 5.10493 11.2917 5.29257C11.1041 5.48021 10.9987 5.7347 10.9987 6.00007C10.9987 6.26543 11.1041 6.51993 11.2917 6.70757L20.5855 16.0001L11.2917 25.2926Z\"\n fill={color}/>\n </svg>\n )\n}","import {CSSProperties} from \"react\";\n\nexport default function CloseIcon({\n color = \"#000\",\n size = 24,\n style\n }: {\n color?: string,\n size?: number,\n style?: CSSProperties\n\n}) {\n return <svg style={style} width={size} height={size} viewBox=\"0 0 29 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L14.5 14.5M28 28L14.5 14.5M14.5 14.5L1 28L28 1\" stroke={color} strokeWidth=\"2\"/>\n </svg>\n}","\nexport default function XIcon({size=40}:{\n size?:number\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"black\"/>\n <path\n d=\"M16 10H9L17.2609 21.0145L9.44995 29.9999H12.1L18.4883 22.651L24 30H31L22.3917 18.5223L29.8001 10H27.1501L21.1643 16.8858L16 10ZM25 28L13 12H15L27 28H25Z\"\n fill=\"white\"/>\n </svg>\n\n}","\nexport default function GoogleIcon({size=40}:{\n size?:number\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"#F8F8F8\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M31.52 20.2729C31.52 19.422 31.4436 18.6038 31.3018 17.8184H20V22.4602H26.4582C26.18 23.9602 25.3345 25.2311 24.0636 26.082V29.0929H27.9418C30.2109 27.0038 31.52 23.9274 31.52 20.2729Z\"\n fill=\"#4285F4\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M20 32.0003C23.24 32.0003 25.9564 30.9257 27.9418 29.093L24.0636 26.0821C22.9891 26.8021 21.6145 27.2275 20 27.2275C16.8745 27.2275 14.2291 25.1166 13.2855 22.2803H9.27637V25.3894C11.2509 29.3112 15.3091 32.0003 20 32.0003Z\"\n fill=\"#34A853\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M13.2855 22.2804C13.0455 21.5604 12.9091 20.7913 12.9091 20.0004C12.9091 19.2095 13.0455 18.4404 13.2855 17.7204V14.6113H9.27636C8.46364 16.2313 8 18.0641 8 20.0004C8 21.9368 8.46364 23.7695 9.27636 25.3895L13.2855 22.2804Z\"\n fill=\"#FBBC05\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M20 12.7727C21.7618 12.7727 23.3436 13.3782 24.5873 14.5673L28.0291 11.1255C25.9509 9.18909 23.2345 8 20 8C15.3091 8 11.2509 10.6891 9.27637 14.6109L13.2855 17.72C14.2291 14.8836 16.8745 12.7727 20 12.7727Z\"\n fill=\"#EA4335\"/>\n </svg>\n\n}","export default function WalletIcon({\n size = 40,\n }: {\n size?: number\n\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"url(#paint0_linear_412_1774)\"/>\n <path\n d=\"M32.3335 19.1112V17.3333C32.3335 15.1242 30.5426 13.3333 28.3335 13.3333H25.6668M32.3335 19.1112H25.1112C23.2089 19.1112 21.6668 20.6533 21.6668 22.5556C21.6668 24.4579 23.2089 26 25.1112 26H32.3335M32.3335 19.1112C33.0699 19.1112 33.6668 19.7081 33.6668 20.4445V24.6667C33.6668 25.403 33.0699 26 32.3335 26M32.3335 26V28C32.3335 30.2091 30.5426 32 28.3335 32H11.0002C8.79102 32 7.00016 30.2091 7.00016 28V17.3333C7.00016 15.5917 8.11324 14.1101 9.66683 13.5609M25.6668 13.3333H11.0002C10.5326 13.3333 10.0839 13.4135 9.66683 13.5609M25.6668 13.3333V11.75C25.6668 9.91548 23.8575 8.62884 22.1247 9.2311L9.66683 13.5609\"\n stroke=\"white\" strokeWidth=\"1.33333\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <circle cx=\"26.1668\" cy=\"22.8335\" r=\"2\" fill=\"white\"/>\n <defs>\n <linearGradient id=\"paint0_linear_412_1774\" x1=\"20\" y1=\"0\" x2=\"20\" y2=\"40\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#FFB950\"/>\n <stop offset=\"0.475\" stopColor=\"#FF7A60\"/>\n <stop offset=\"1\" stopColor=\"#FF3C4A\"/>\n </linearGradient>\n </defs>\n </svg>\n}","export default function TelegramIcon({\n size = 40,\n }: {\n size?: number\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"#28A7E8\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M9.65904 18.6099C16.1373 15.7874 20.4571 13.9267 22.6186 13.0277C28.7899 10.4608 30.0723 10.0149 30.9081 10.0002C31.0919 9.99692 31.503 10.0425 31.7692 10.2585C31.994 10.4409 32.0559 10.6874 32.0855 10.8603C32.1151 11.0333 32.1519 11.4273 32.1226 11.7351C31.7882 15.249 30.3411 23.7762 29.605 27.7118C29.2935 29.3771 28.6801 29.9354 28.0863 29.9901C26.7958 30.1088 25.8159 29.1372 24.566 28.3179C22.6101 27.0358 21.5052 26.2377 19.6067 24.9867C17.4127 23.5408 18.835 22.7462 20.0853 21.4475C20.4126 21.1076 26.0985 15.9358 26.2085 15.4667C26.2223 15.408 26.2351 15.1893 26.1051 15.0738C25.9752 14.9583 25.7834 14.9978 25.645 15.0292C25.4489 15.0737 22.3244 17.1389 16.2715 21.2247C15.3847 21.8337 14.5814 22.1304 13.8616 22.1149C13.0682 22.0977 11.5419 21.6663 10.4073 21.2974C9.0156 20.8451 7.90953 20.6059 8.00585 19.8376C8.05601 19.4374 8.60708 19.0282 9.65904 18.6099Z\"\n fill=\"white\"/>\n </svg>\n\n}","export default function EmailIcon({\n size = 40,\n }: {\n size?: number\n\n}) {\n return <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"url(#paint0_linear_124_10994)\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M30.8867 12.5448C30.9585 12.4862 31 12.3997 31 12.3085C31 12.1381 30.8581 12 30.683 12H9.49205C9.2203 12 9 12.2144 9 12.4789C9 12.6212 9.06508 12.7562 9.17759 12.8472L19.5082 21.2008C19.7333 21.3828 20.06 21.3821 20.2842 21.199L30.8867 12.5448ZM9.99246 15.2938C9.59792 14.9748 9 15.2478 9 15.7471V27.9107C9 28.2362 9.27109 28.5 9.6055 28.5H30.3945C30.7289 28.5 31 28.2362 31 27.9107V15.5103C31 15.0098 30.3994 14.7372 30.0054 15.0588L20.353 22.9375C20.0642 23.1732 19.7375 23.1739 19.5124 22.9919L9.99246 15.2938Z\"\n fill=\"white\"/>\n <defs>\n <linearGradient id=\"paint0_linear_124_10994\" x1=\"20\" y1=\"0\" x2=\"20\" y2=\"40\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#FFB950\"/>\n <stop offset=\"0.475\" stopColor=\"#FF7A60\"/>\n <stop offset=\"1\" stopColor=\"#FF3C4A\"/>\n </linearGradient>\n </defs>\n </svg>\n}","import {IconProps} from \"types/types\";\n\nexport default function ArrowRightIcon({\n color = \"#000\",\n size = 20,\n className,\n style\n }: IconProps) {\n return <svg className={className} style={style} width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M11.4733 3.97314L10.7367 4.70971L15.3734 9.34641L3.15374 9.34641L3.15374 10.385L15.3734 10.385L10.7367 15.0217L11.4733 15.7583L17.3658 9.8657L11.4733 3.97314Z\"\n fill={color}/>\n </svg>\n\n}","import {IconProps} from \"types/types\";\n\nexport default function CloseRoundIcon({size=30,...props}:IconProps) {\n return <svg width={size} height={size} {...props} viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"30\" height=\"30\" rx=\"15\" fill=\"#F9F9F9\"/>\n <path d=\"M10.7574 10.7573L19.2426 19.2426\" stroke=\"#6E6E6E\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n <path d=\"M19.2426 10.7573L10.7574 19.2426\" stroke=\"#6E6E6E\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n </svg>\n\n}","import React from 'react';\n\ninterface LoadingIconProps {\n size?: number;\n className?: string;\n color?: string;\n}\n\nconst LoadingIcon: React.FC<LoadingIconProps> = ({ size = 22, className=\"\",color=\"white\" }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M11 1V3.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.3\" d=\"M3.92834 3.92871L5.69977 5.70017\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.4\" d=\"M1 11H3.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.5\" d=\"M3.92834 18.0722L5.69977 16.3008\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.6\" d=\"M11 21V18.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.7\" d=\"M18.0715 18.0722L16.3 16.3008\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.8\" d=\"M21 11H18.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.9\" d=\"M18.0715 3.92871L16.3 5.70017\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nexport default LoadingIcon;","import {IconProps} from \"../../types/types\";\n\nexport default function EmailLineIcon({\n size=24,\n color=\"black\",\n ...props\n }:IconProps) {\n return <svg width={size} height={size} {...props} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 8.00049L10.8906 13.2609C11.5624 13.7088 12.4376 13.7088 13.1094 13.2609L21 8.00049M5 19.0005H19C20.1046 19.0005 21 18.1051 21 17.0005V7.00049C21 5.89592 20.1046 5.00049 19 5.00049H5C3.89543 5.00049 3 5.89592 3 7.00049V17.0005C3 18.1051 3.89543 19.0005 5 19.0005Z\"\n stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n\n}","import React from 'react';\nimport {IconProps} from \"../../types/types\";\n\nconst UnLoginIcon: React.FC<IconProps> = ({ size=32, color = 'white',...props }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 32 32\" fill=\"none\" {...props}>\n <path\n d=\"M24 14L26 12M24 14L22 12M24 14L22 16M24 14L26 16M18 12C18 14.2091 16.2091 16 14 16C11.7909 16 10 14.2091 10 12C10 9.79086 11.7909 8 14 8C16.2091 8 18 9.79086 18 12ZM10 19H18C20.2091 19 22 20.7909 22 23C22 23.5523 21.5523 24 21 24H7C6.44772 24 6 23.5523 6 23C6 20.7909 7.79086 19 10 19Z\"\n stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n);\n\nexport default UnLoginIcon;","import React from 'react';\nimport {IconProps} from \"../../types/types\";\n\nconst LoginIcon: React.FC<IconProps> = ({size = 32, color = 'white', ...props}) => (\n <svg width={size} height={size} viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect width=\"32\" height=\"32\" rx=\"16\"/>\n <path\n d=\"M22.5 14L24 15.5L27 12.5M19 11C19 13.2091 17.2091 15 15 15C12.7909 15 11 13.2091 11 11C11 8.79086 12.7909 7 15 7C17.2091 7 19 8.79086 19 11ZM11 18H19C21.2091 18 23 19.7909 23 22C23 22.5523 22.5523 23 22 23H8C7.44772 23 7 22.5523 7 22C7 19.7909 8.79086 18 11 18Z\"\n stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n\n);\n\nexport default LoginIcon;","import {IconProps} from \"../../types/types\";\n\nexport default function CheckRoundIcon({\n size,\n color=\"#2CBF68\",\n ...props\n }:Omit<IconProps, 'width'|'height'>) {\n return <svg width={size} height={size} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_418_7699)\">\n <path\n d=\"M14.6668 8.00016C14.6668 11.6821 11.6821 14.6668 8.00016 14.6668C4.31826 14.6668 1.3335 11.6821 1.3335 8.00016C1.3335 4.31826 4.31826 1.3335 8.00016 1.3335C11.6821 1.3335 14.6668 4.31826 14.6668 8.00016Z\"\n fill={color} stroke={color} strokeLinecap=\"round\"/>\n <path\n d=\"M10.6867 5.97994C10.882 6.1752 10.882 6.49179 10.6867 6.68705L7.35339 10.0204C7.15813 10.2156 6.84155 10.2156 6.64628 10.0204L5.31295 8.68705C5.11769 8.49179 5.11769 8.1752 5.31295 7.97994C5.50821 7.78468 5.8248 7.78468 6.02006 7.97994L6.99984 8.95972L8.48973 7.46983L9.97962 5.97994C10.1749 5.78468 10.4915 5.78468 10.6867 5.97994Z\"\n fill=\"white\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_418_7699\">\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n\n}","export default function PasswordRoundIcon() {\n return <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"7.5\" fill=\"white\"/>\n <rect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M19.7673 16.1137C19.962 13.9479 21.7831 12.25 24 12.25C26.3472 12.25 28.25 14.1528 28.25 16.5C28.25 18.8472 26.3472 20.75 24 20.75C23.488 20.75 22.9987 20.6598 22.5461 20.495C21.9175 20.2662 21.1115 20.3279 20.5486 20.8908L19.2626 22.1768C19.2157 22.2237 19.1521 22.25 19.0858 22.25H18C17.3096 22.25 16.75 22.8096 16.75 23.5V24.25H15.5C14.8096 24.25 14.25 24.8096 14.25 25.5V26.5C14.25 26.6381 14.1381 26.75 14 26.75H12C11.8619 26.75 11.75 26.6381 11.75 26.5V23.9538C11.75 23.8817 11.7811 23.8131 11.8354 23.7656L19.1524 17.3632C19.5404 17.0238 19.7275 16.556 19.7673 16.1137ZM24 10.75C20.9997 10.75 18.5369 13.0473 18.2733 15.9794C18.2614 16.1115 18.2107 16.1941 18.1646 16.2344L10.8476 22.6368C10.4678 22.9691 10.25 23.4491 10.25 23.9538V26.5C10.25 27.4665 11.0335 28.25 12 28.25H14C14.9665 28.25 15.75 27.4665 15.75 26.5V25.75H17C17.6904 25.75 18.25 25.1904 18.25 24.5V23.75H19.0858C19.5499 23.75 19.995 23.5656 20.3232 23.2374L21.6092 21.9514C21.6738 21.8868 21.8277 21.8298 22.033 21.9045C22.6476 22.1283 23.3104 22.25 24 22.25C27.1756 22.25 29.75 19.6756 29.75 16.5C29.75 13.3244 27.1756 10.75 24 10.75ZM25 16.5C25.5523 16.5 26 16.0523 26 15.5C26 14.9477 25.5523 14.5 25 14.5C24.4477 14.5 24 14.9477 24 15.5C24 16.0523 24.4477 16.5 25 16.5Z\"\n fill=\"black\"/>\n </svg>\n\n}","export default function CloseEyeIcon() {\n return <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.15132 12.5568V11.5464C8.21031 11.4949 7.28023 11.3193 6.38524 11.024L6.04233 11.9579C6.00626 12.0669 5.94867 12.1676 5.87299 12.2539C5.79731 12.3403 5.70508 12.4106 5.60174 12.4607C5.4984 12.5108 5.38607 12.5396 5.27139 12.5455C5.15671 12.5514 5.04201 12.5342 4.93409 12.4949C4.82617 12.4557 4.72722 12.3952 4.6431 12.317C4.55898 12.2389 4.49139 12.1446 4.44435 12.0399C4.3973 11.9351 4.37175 11.822 4.36921 11.7072C4.36667 11.5924 4.38719 11.4783 4.42955 11.3715L4.80788 10.3268C4.04603 9.88461 3.32634 9.37345 2.65789 8.79975C2.54358 8.70488 2.42928 8.61687 2.32184 8.52772C2.1442 8.38554 2.03031 8.17862 2.00523 7.95247C1.98015 7.72633 2.04593 7.49948 2.18811 7.32184C2.33028 7.1442 2.5372 7.03031 2.76335 7.00523C2.98949 6.98015 3.21634 7.04593 3.39398 7.18811C3.50828 7.27955 3.62258 7.37099 3.73689 7.47043C5.46065 9.00826 7.68996 9.85815 10 9.85815C12.31 9.85815 14.5393 9.00826 16.2631 7.47043C16.3774 7.37099 16.4917 7.27955 16.606 7.18811C16.694 7.11771 16.7949 7.06533 16.9031 7.03395C17.0114 7.00257 17.1247 6.99281 17.2367 7.00523C17.3486 7.01765 17.4571 7.052 17.5558 7.10632C17.6545 7.16065 17.7415 7.23388 17.8119 7.32184C17.8823 7.4098 17.9347 7.51077 17.9661 7.61897C17.9974 7.72717 18.0072 7.8405 17.9948 7.95247C17.9824 8.06445 17.948 8.17288 17.8937 8.27158C17.8394 8.37028 17.7661 8.45732 17.6782 8.52772L17.3421 8.79975C16.6737 9.37354 15.954 9.88471 15.1921 10.3268L15.5705 11.3715C15.6128 11.4783 15.6333 11.5924 15.6308 11.7072C15.6283 11.822 15.6027 11.9351 15.5557 12.0399C15.5086 12.1446 15.441 12.2389 15.3569 12.317C15.2728 12.3952 15.1738 12.4557 15.0659 12.4949C14.958 12.5342 14.8433 12.5514 14.7286 12.5455C14.6139 12.5396 14.5016 12.5108 14.3983 12.4607C14.2949 12.4106 14.2027 12.3403 14.127 12.2539C14.0513 12.1676 13.9937 12.0669 13.9577 11.9579L13.6148 11.024C12.7198 11.3193 11.7897 11.4949 10.8487 11.5464V12.5568C10.8487 12.7842 10.7584 13.0022 10.5976 13.163C10.4368 13.3238 10.2188 13.4141 9.99143 13.4141C9.76407 13.4141 9.54602 13.3238 9.38526 13.163C9.22449 13.0022 9.13417 12.7842 9.13417 12.5568H9.15132Z\"\n fill=\"#6E6E6E\"/>\n </svg>\n\n}","export default function OpenEyeIcon() {\n return <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10 6.4543C11.3373 6.44986 12.6486 6.82287 13.7834 7.53047C14.9181 8.23806 15.8301 9.25151 16.4145 10.4543C15.2145 12.9052 12.7564 14.4543 10 14.4543C7.24364 14.4543 4.78545 12.9052 3.58545 10.4543C4.1699 9.25151 5.08191 8.23806 6.21664 7.53047C7.35136 6.82287 8.66274 6.44986 10 6.4543ZM10 4.99976C6.36364 4.99976 3.25818 7.26157 2 10.4543C3.25818 13.647 6.36364 15.9088 10 15.9088C13.6364 15.9088 16.7418 13.647 18 10.4543C16.7418 7.26157 13.6364 4.99976 10 4.99976ZM10 8.63612C10.4822 8.63617 10.9446 8.82774 11.2855 9.16871C11.6265 9.50968 11.818 9.97212 11.818 10.4543C11.818 10.9365 11.6265 11.3989 11.2855 11.7399C10.9446 12.0809 10.4822 12.2724 10 12.2725C9.51782 12.2724 9.0554 12.0809 8.71447 11.7399C8.37353 11.3989 8.18199 10.9365 8.18199 10.4543C8.18199 9.97212 8.37353 9.50968 8.71447 9.16871C9.0554 8.82774 9.51782 8.63617 10 8.63612ZM10 7.18157C8.19636 7.18157 6.72727 8.65066 6.72727 10.4543C6.72727 12.2579 8.19636 13.727 10 13.727C11.8036 13.727 13.2727 12.2579 13.2727 10.4543C13.2727 8.65066 11.8036 7.18157 10 7.18157Z\"\n fill=\"#6E6E6E\"/>\n </svg>\n\n}","import {IconProps} from \"../../types/types\";\n\nexport default function DeleteRoundIcon({height = 21,width=20, color = \"var(--matchid-error-color)\",...props}:IconProps) {\n return <svg width={width} height={height} viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect y=\"0.5\" width=\"20\" height=\"20\" rx=\"10\" fill={color}/>\n <path d=\"M7.17139 7.67188L12.8282 13.3287\" stroke=\"white\" strokeLinecap=\"round\"/>\n <path d=\"M12.8286 7.67188L7.17176 13.3287\" stroke=\"white\" strokeLinecap=\"round\"/>\n </svg>\n\n}","import React from \"react\";\nimport {ModalProps, ModalWithHeaderProps} from \"../../types/types\";\nimport ArrowLeftIcon from \"../../assets/icon/ArrowLeftIcon\";\nimport {CloseRoundIcon} from \"../../assets/icon\";\n\nexport default function Modal({\n children,\n isOpen,\n width = 480\n }: ModalProps) {\n return isOpen ? <div\n className=\"matchid-overlay\"\n >\n <div className=\"matchid-modal\" style={{\n width\n }}>\n {children}\n </div>\n </div> : <></>\n}\n\nexport function ModalWithHeader({\n children,\n onBack,\n onClose,\n title,\n showClose = true,\n ...props\n\n }: ModalWithHeaderProps) {\n return <Modal {...props}>\n <div className={`matchid-modal-header`}>\n <div className=\"matchid-modal-header-content\">\n {\n onBack && <ArrowLeftIcon className=\"matchid-modal-header-back\" onClick={onBack}/>\n }\n <span className=\"matchid-modal-header-title\">{title}</span>\n </div>\n {onClose && <CloseRoundIcon className=\"matchid-modal-header-close\" onClick={onClose}/>}\n </div>\n {children}\n </Modal>\n\n}","import {ModalWithHeaderProps} from \"types/types\";\nimport {ModalWithHeader} from \"../Modal\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport {isValidUsername} from \"../../utils\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport Button from \"../Button\";\nimport InfoRoundIcon from \"../../assets/icon/InfoRoundIcon\";\nimport {useUserInfo, useWallet} from \"../../hooks\";\nimport CheckRoundIcon from \"../../assets/icon/CheckRoundIcon\";\nimport {setUserNameApi} from \"../../api\";\nimport {isSuccess} from \"../../api/request\";\nimport {PasswordRoundIcon} from \"../../assets/icon\";\n\n\nexport default function PasswordModal({\n title,\n isOpen,\n onSuccess,\n ...props\n }: ModalWithHeaderProps & {\n onSuccess?: () => void\n}) {\n const {refreshOverview} = useUserInfo()\n const {isLogin,did} = useUserInfo()\n const [password, setPassword] = useState('')\n const [rePassword, setRePassword] = useState('')\n const [error, setError] = useState('')//error from api\n const {generateWallet} = useWallet()\n const passwordError = useMemo(() => {\n if (password.length < 6) return 'Password must be at least 6 characters'\n return ''\n }, [password])\n\n const rePasswordError = useMemo(() => {\n if (rePassword != password){\n return 'The password you entered twice do not match'\n }\n return ''\n }, [rePassword, password])\n\n useEffect(() => {\n if (isOpen) {\n setPassword('')\n setRePassword('')\n }\n }, [isOpen]);\n\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onContinue = async () => {\n if (isSubmitting) return\n try {\n setIsSubmitting(true)\n const address = await generateWallet({\n did: did.split(':')[2],\n userPasscode: password\n })\n await refreshOverview()\n onSuccess && onSuccess()\n\n } catch (error: any) {\n setError(error.message)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n\n return <ModalWithHeader isOpen={isOpen && isLogin} {...props} title={title || 'Set Password'}>\n <div className=\"matchid-password-box\">\n <div className=\"matchid-password-header\">\n <div className=\"matchid-password-header-icon\"><PasswordRoundIcon/></div>\n <div className=\"matchid-password-header-content\">\n Please set the wallet password that will be used to recover the wallet\n </div>\n </div>\n <div className=\"matchid-password-content\">\n <Field label=\"Password\" error={password.length>0 && passwordError}>\n <Input\n placeholder={\"Enter the Password\"}\n maxLength={32}\n type={\"password\"}\n onChange={e => setPassword(e.target.value)}\n value={password}\n >\n </Input>\n </Field>\n <Field label=\"Re Password\" error={rePassword.length> 0 ? rePasswordError || error : error}>\n <Input\n placeholder={\"Re Enter the Password\"}\n maxLength={32}\n onChange={e => setRePassword(e.target.value)}\n value={rePassword}\n type={\"password\"}\n >\n </Input>\n </Field>\n </div>\n\n <Button disabled={password.length == 0 || !!passwordError || !!rePasswordError} highlight block size=\"lg\"\n onClick={onContinue} loading={isSubmitting}>Continue</Button>\n </div>\n </ModalWithHeader>\n}","import {InputProps} from \"types/types\";\nimport {DeleteRoundIcon, CloseEyeIcon, OpenEyeIcon} from \"assets/icon\";\nimport {useState} from \"react\";\n\nexport default function Input({\n onChange,\n type,\n after,\n ...props\n }: InputProps) {\n const [inputType,setInputType] = useState(type)\n\n return <div className={`matchid-input-box ${props.value.length > 0 ? 'matchid-input-has-content' : ''}`}>\n <input type={inputType} onChange={onChange} {...props} className=\"matchid-input-field\"/>\n {\n props.value.length > 0\n && <DeleteRoundIcon onClick={(e) => {\n if (onChange) {\n onChange({target: {value: ''}});\n }\n }} className=\"matchid-input-delete-icon\" color=\"var(--matchid-input-delete-icon-color)\"/>\n }\n {\n type === 'password' && <div className=\"matchid-input-eye-icon\" onClick={() => {\n setInputType(inputType === 'password' ? 'text' : 'password')\n }}>\n {\n inputType === 'password' ? <CloseEyeIcon/> : <OpenEyeIcon/>\n }\n </div>\n }\n {\n after\n }\n </div>\n\n}","import {PropsWithChildren, ReactNode} from \"react\";\n\nexport default function Field({\n label,\n children,\n error\n }:{\n label: ReactNode,\n error?: ReactNode\n}&PropsWithChildren){\n return <div className=\"matchid-field-box\">\n <div className=\"matchid-field-label\">{label}</div>\n {children}\n {error && <div className=\"matchid-field-error\">{error}</div>}\n </div>\n\n}","import {LoadingIcon} from \"assets/icon\";\nimport {ButtonProps} from \"../../types/types\";\n\nexport default function Button({\n size = \"df\",\n disabled = false,\n loading = false,\n children,\n onClick,\n highlight = false,\n block = false,\n type = \"button\",\n rounded = true,\n className='',\n style = {}\n }: ButtonProps) {\n\n const onAction = () => {\n if (!disabled && !loading) {\n onClick && onClick()\n }\n }\n return <button\n type={type}\n className={`${className} matchid-btn ${'matchid-btn-' + size} ${highlight ? \"matchid-btn-highlight\" : ''} ${loading ? \"matchid-btn-loading\" : ''} ${block ? \"matchid-btn-block\" : ''} ${rounded ? \"matchid-btn-rounded\" : ''}`}\n disabled={disabled || loading}\n style={{\n ...style\n }}\n onClick={onAction}\n >\n {\n loading ?\n <LoadingIcon className=\"matchid-btn-loading-icon\" color=\"var(--matchid-btn-loading-color)\"/> :\n children\n }\n </button>\n}","export {default as useUserInfo} from \"./useUserInfo\";\nexport {default as useMatchEvents} from \"./useMatchEvents\";\nexport {default as useWallet} from \"./useWallet\";","import {create} from 'zustand';\nimport { devtools, persist } from 'zustand/middleware';\nimport {OverviewInfo, ThemeType} from \"../types/types\";\n\ninterface StoreState {\n env:string\n appid:string\n token:string\n did:string\n mid:string\n theme:\"dark\"|\"light\"\n\n setAppid: (appid: string) => void;\n setEnv: (env: string) => void;\n setToken: (token: string) => void;\n setDid: (did: string) => void;\n setMid: (mid: string) => void;\n logout: () => void;\n overview:OverviewInfo|null\n setOverview:(overview:OverviewInfo)=>void\n setTheme:(theme:\"dark\"|\"light\")=>void\n\n address:string\n setAddress:(address:string)=>void\n}\n\nconst persistedState = persist<StoreState>(\n set => ({\n appid: '',\n token:'',\n did:'',\n env:'main',\n mid:'',\n overview:null,\n theme:'light',\n setOverview:(overview:OverviewInfo)=>set({\n overview,\n address:overview.address,\n did:overview.did,\n mid:overview.mid\n }),\n setEnv: (env: string) => set({ env: env }),\n setDid: (did: string) => set({ did: did }),\n setToken: (token: string) => set({ token: token }),\n setAppid: (appid: string) => set({ appid: appid }),\n setMid: (mid: string) => set({ mid: mid }),\n logout: () => set({ token: '',did:'',mid:'',address:'',overview:null }),\n setTheme:(theme:\"dark\"|\"light\")=>set({theme}),\n\n address:'',\n setAddress:(address:string)=>set({address})\n }),\n { name: 'match-local' }\n);\n\nconst useLocalStore = create(devtools(persistedState));\n\nexport const localStore = useLocalStore;\n\nexport default useLocalStore;\n","import useLocalStore from \"../store/useLocalStore\";\nimport {useMemo} from \"react\";\nimport {ISocialLoginMethod} from \"../types/types\";\nimport {getEmailCodeApi, getOverviewInfoApi, toLogoutApi, verifyEmailCodeApi} from \"../api\";\nimport {isSuccess} from \"../api/request\";\nimport {getEndpoints} from \"../store\";\nimport {useMatch} from \"../MatchContext\";\nimport eventManager from \"./eventManager\";\nimport {encodeBase64} from \"../utils\";\n\nexport default function useUserInfo() {\n const {\n appid,\n token,\n mid,\n did,\n env,\n logout:logoutStore,\n setOverview,\n overview,\n address,\n } = useLocalStore();\n const {events, login} = useMatch()\n\n\n\n const endpoints = useMemo(() => {\n return getEndpoints()\n }, [env])\n\n\n const isLogin = useMemo(() => !!token, [token])\n\n const logout = async () => {\n try{\n await toLogoutApi()\n }catch(err:any){\n console.error('logout',err)\n }\n\n logoutStore()\n events && events!.onLogout && events!.onLogout()\n eventManager.emit('onLogout');\n }\n\n const loginByMethod = (method: ISocialLoginMethod) => {\n const link = `${endpoints.back}auth/${method}?appid=${appid}&provider=${method}&redirect=${encodeURIComponent(endpoints.login + 'login/' + method)}&authorization=${new Date().getTime()}`;\n console.log('link', link)\n // window.location.href = link\n const authWindow = window.open(\n link, // Replace with the actual authorization URL\n 'authWindow',\n 'width=800,height=600'\n );\n }\n\n const loginByTwitter = () => {\n loginByMethod('twitter')\n }\n const loginByGoogle = () => {\n loginByMethod('google')\n }\n\n const getLoginEmailCode = async (email: string) => {\n const res = await getEmailCodeApi(email);\n if (res && res.data && isSuccess(res)) {\n window.sessionStorage.setItem('loginkey', res.data.key as string)\n return res.data.key as string\n }\n return ''\n }\n\n const loginByEmail = async ({\n email,\n code\n }: { email: string, code: string }) => {\n try {\n const obj = {\n email: email,\n verification_key: window.sessionStorage.getItem('loginkey') as string,\n verification_code: code,\n }\n const res = await verifyEmailCodeApi(obj);\n if (res && res.data && isSuccess(res)) {\n await login({\n mid: res.data.mid,\n token: `${res.data.token_type} ${res.data.access_token}`\n })\n return true;\n\n } else {\n throw new Error(res.message)\n }\n } catch (error) {\n console.error('loginByEmail', error);\n throw error\n }\n return false\n };\n\n const loginByWallet = () => {\n const authWindow = window.open(\n `${endpoints.login}login/wallet?appid=${appid}`, // Replace with the actual authorization URL\n '_blank',\n // 'width=800,height=600'\n );\n\n }\n const loginByTelegram = () => {\n const authWindow = window.open(\n `${endpoints.login}login/telegram?appid=${appid}`, // Replace with the actual authorization URL\n 'authWindow',\n 'width=800,height=600'\n );\n }\n\n\n const refreshOverview = async()=>{\n const res = await getOverviewInfoApi()\n if(res.data){\n setOverview(res.data)\n }\n }\n\n const bindWallet = async () => {\n if(!token){\n throw new Error('You must login first')\n }\n const authWindow = window.open(\n `${endpoints.login}bind/wallet?appid=${appid}&st=`+encodeURIComponent(encodeBase64(token)), // Replace with the actual authorization URL\n '_blank',\n );\n }\n\n const bindTelegram = async () => {\n if(!token){\n throw new Error('You must login first')\n }\n const authWindow = window.open(\n `${endpoints.login}bind/telegram?appid=${appid}&st=`+encodeURIComponent(encodeBase64(token)), // Replace with the actual authorization URL\n 'authWindow',\n 'width=800,height=600'\n );\n }\n\n\n return {\n loginByTelegram,\n loginByTwitter,\n loginByGoogle,\n loginByWallet,\n loginByEmail,\n token,\n mid,\n did,\n address,\n isLogin,\n logout,\n getLoginEmailCode,\n refreshOverview,\n overview,\n bindWallet,\n bindTelegram,\n username:overview?.username||'',\n }\n}","import axios, {AxiosRequestConfig} from 'axios';\nimport {getAppid, getEndpoints, getToken} from '../store';\nimport { localStore } from '../store/useLocalStore';\n\nexport const SUCCESS_CODE = 0;\n\nexport const isSuccess = (res: { code: number; message: string; data?: any }) => {\n return res.code === SUCCESS_CODE;\n};\n\nexport interface MyResponseType<T> {\n code: number;\n data: T;\n message: string;\n success: boolean;\n fail: boolean;\n result: T;\n}\n\nconst instance = axios.create({\n timeout: 60000,\n validateStatus(status) {\n return status >= 200 && status <= 500;\n },\n});\n\nconst request = async <T = any>(config: AxiosRequestConfig): Promise<MyResponseType<T>> => {\n try {\n const endpoints = getEndpoints();\n const token = getToken()\n instance.defaults.baseURL = `${endpoints.back}`;\n\n instance.defaults.headers.common['Appid'] = getAppid()\n if(token){\n instance.defaults.headers.common['Authorization'] = token;\n }\n\n const {data} = await instance.request<MyResponseType<T>>(config);\n console.log('api',data)\n if(data.code == 401001){\n localStore.getState().logout()\n throw new Error(\"Your session has expired, please log in again\")\n }\n // if (data.code !== 0) {\n // throw new Error(data.message);\n // }\n return data;\n } catch (err) {\n console.error('qwe-err', err);\n const message = 'Request Error';\n console.error(message);\n return {\n code: -1,\n data: null as any,\n message,\n success: false,\n fail: true,\n result: null as any,\n };\n }\n};\n\nexport default request;","import {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n endpoints:{\n back: \"https://api.matchid.ai/mid/api/v1/\",\n login:\"https://auth.matchid.ai/\"\n }\n} as IEnvConfigType","import {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n endpoints:{\n back: \"https://mid-test-api.matchain.io/mid/api/v1/\",\n login:\"https://calm-hare-roughly.ngrok-free.app/\"\n }\n}as IEnvConfigType","import {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n endpoints:{\n back: \"https://mid-test-api.matchain.io/mid/api/v1/\",\n login:\"https://mid-sso-test.vercel.app/\"\n }\n}as IEnvConfigType","import mainEnv from \"./main\"\nimport devEnv from \"./dev\"\nimport testEnv from \"./test\"\nimport type {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n main: mainEnv,\n dev: devEnv,\n test: testEnv\n} as {\n [key: string]: IEnvConfigType\n}","import { localStore } from './useLocalStore';\nimport Envs from '../config/env';\nexport const getEnv = ()=>{\n try {\n const store = localStore.getState();\n\n const env = store?.env;\n\n if (env) {\n return env;\n } else {\n return 'main'\n }\n } catch (e) {\n return 'main'\n }\n}\nexport const getEnvConfig = ()=>{\n return Envs[getEnv()]\n}\nexport const getEndpoints = () => {\n return getEnvConfig().endpoints\n};\nexport const getAppid = () => {\n try {\n const store = localStore.getState();\n const appid = store?.appid;\n if (appid) {\n return appid;\n } else {\n return '';\n }\n } catch (e) {\n return '';\n }\n}\nexport const getToken = () => {\n try {\n const store = localStore.getState();\n const token = store?.token;\n if (token) {\n return token;\n } else {\n return '';\n }\n } catch (e) {\n return '';\n }\n}","import request from \"./request\";\nimport {BindWalletParam, OverviewInfo} from \"../types/types\";\n\nexport const getEmailCodeApi = ( email: string) => {\n return request<any>({\n url: `/email/code`,\n method: \"POST\",\n data: { email }\n });\n}\n\nexport const verifyEmailCodeApi = ({ email, verification_key, verification_code } : { email: string, verification_key: string, verification_code: string }) => {\n return request<any>({\n url: `/user/email/login`,\n method: \"POST\",\n data: { email, verification_key, verification_code }\n });\n}\n\nexport const getUserTokenApi = ()=>{\n return request<any>({\n url: `/user/token`,\n method: \"GET\",\n });\n}\n\nexport const getOverviewInfoApi = () => {\n return request<OverviewInfo>({\n url: `/user/overview`,\n method: \"GET\",\n });\n}\nexport const toLogoutApi = () => {\n return request<any>({\n url: `/user/logout`,\n method: \"POST\",\n });\n}\n\nexport const setUserNameApi = (data:any) => {\n return request({\n url: `/user/name`,\n method: \"POSt\",\n data\n });\n}","// src/hooks/eventManager.ts\ntype EventCallback = (...args: any[]) => void;\n\nclass EventManager {\n private listeners: Record<string, Set<EventCallback>> = {};\n\n on(event: string, callback: EventCallback) {\n if (!this.listeners[event]) {\n this.listeners[event] = new Set();\n }\n this.listeners[event].add(callback);\n }\n\n off(event: string, callback: EventCallback) {\n if (this.listeners[event]) {\n this.listeners[event].delete(callback);\n if (this.listeners[event].size === 0) {\n delete this.listeners[event];\n }\n }\n }\n\n emit(event: string, ...args: any[]) {\n if (this.listeners[event]) {\n this.listeners[event].forEach(callback => callback(...args));\n }\n }\n}\n\nconst eventManager = new EventManager();\n\nexport default eventManager;\n","export const getVersion = (): string => {\n return \"0.0.1\";\n};\nexport function encodeBase64(input:string) {\n return btoa(unescape(encodeURIComponent(input)));\n}\n\n// Base64 解码\nexport function decodeBase64(input:string) {\n return decodeURIComponent(escape(atob(input)));\n}\n\nexport const isValidEmail = (email: string) => {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)\n}\nexport const isValidUsername = (username: string) => {\n //8-32 alpha number - _\n return /^[a-zA-Z0-9_-]+$/.test(username)\n}\n\nexport const deepMerge = (target: any, source: any): any => {\n for (const key in source) {\n if (source[key] instanceof Object && key in target) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n return target;\n};\n\nexport function truncateAddress(address: string): string {\n if (address.length <= 6) {\n return address;\n }\n const start = address.slice(0, 4);\n const end = address.slice(-2);\n return `${start}...${end}`;\n}\n\n","// src/hooks/useMatchEvents.ts\nimport { useEffect } from \"react\";\nimport eventManager from \"./eventManager\";\nimport {IMatchEvents} from \"../types/types\";\n\n\nexport default function useMatchEvents(handlers: IMatchEvents) {\n useEffect(() => {\n Object.entries(handlers).forEach(([event, handler]) => {\n if (handler) {\n eventManager.on(event, handler);\n }\n });\n\n return () => {\n Object.entries(handlers).forEach(([event, handler]) => {\n if (handler) {\n eventManager.off(event, handler);\n }\n });\n };\n }, [handlers]);\n}\n","import useLocalStore from \"../store/useLocalStore\";\nimport {getVersion} from \"../utils\";\nimport {useEffect, useMemo, useRef, useState} from \"react\";\nimport {Hex, SignableMessage, TransactionSerializable} from 'viem';\nimport useStore from \"../store/useStore\";\nimport Envs from \"config/env\";\nimport {ChainType, RecoveryType} from \"../types/mpc\";\n\ninterface UseWalletReturnType {\n initWallet: (params: {\n address: string,\n did: string\n }) => Promise<void>;\n generateWallet: (params: {\n did: string\n userPasscode: string\n }) => Promise<string>;\n isRecovered: () => Promise<boolean>;\n recoveryWallet: (chainType: ChainType | undefined, recoveryType: RecoveryType, userPasscode?: string) => Promise<void>;\n signMessage: (message: SignableMessage, type?: ChainType) => Promise<Hex>;\n signTransaction: (transaction: TransactionSerializable, type?: ChainType) => Promise<`0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | import(\"viem\").TransactionSerializedLegacy>;\n}\n\nconst AppClientId = \"react-sdk-\" + getVersion()\n\nexport default function useWallet(): UseWalletReturnType {\n const {appid, token, overview} = useLocalStore();\n const {setRecoveryModal, closeRecoveryModal} = useStore()\n\n const initWallet = ({\n did,\n address\n }: {\n did: string,\n address: string\n }): Promise<void> => {\n return window.waitMatchUntilWalletMessage(\n 'initCore',\n {\n AppId: appid,\n AppClientId,\n UserId: did,\n AccessToken: token,\n Address: address\n })\n }\n const isRecovered = async (): Promise<boolean> => {\n const res = await window.waitMatchUntilWalletMessage('isRecovered')\n return res.isRecovered\n }\n const generateWallet = async ({\n did,\n userPasscode\n }: {\n did: string,\n userPasscode: string\n }): Promise<string> => {\n\n\n return (await window.waitMatchUntilWalletMessage('generateWallet', {\n recoveryType: \"user_passcode_recovery_key\",\n userPasscode\n })) as string\n };\n\n\n const signMessage = async (message: SignableMessage, type?: ChainType): Promise<Hex> => {\n return new Promise(async (resolve, reject) => {\n const res = await isRecovered()\n console.log('isRecovered', res)\n const getSign = async () => {\n try {\n const recoverRes = await window.waitMatchUntilWalletMessage('signMessage', {\n message,\n chainType: type\n })\n closeRecoveryModal()\n resolve(recoverRes)\n } catch (error: any) {\n console.error('qwe-sign-error', error)\n reject(error)\n }\n }\n if (!res) {\n\n setRecoveryModal({\n open: true,\n success: async () => {\n console.log('recover Success')\n await getSign()\n },\n close: async () => {\n closeRecoveryModal()\n reject(new Error('recover modal close'))\n }\n })\n await initWallet({\n address: overview?.address || '',\n did: overview?.did?.split(':')[2] || ''\n })\n } else {\n getSign()\n }\n })\n\n }\n\n const signTransaction = async (transaction: TransactionSerializable, type?: ChainType): Promise<`0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | import(\"viem\").TransactionSerializedLegacy> => {\n return new Promise(async (resolve, reject) => {\n const res = await isRecovered()\n console.log('isRecovered', res)\n const getSign = async () => {\n try {\n const recoverRes = await window.waitMatchUntilWalletMessage('signTransaction', {\n transaction,\n chainType: type\n })\n closeRecoveryModal()\n resolve(recoverRes)\n } catch (error: any) {\n console.error('qwe-sign-error', error)\n reject(error)\n }\n }\n if (!res) {\n setRecoveryModal({\n open: true,\n success: async () => {\n console.log('recover Success')\n await getSign()\n },\n close: async () => {\n closeRecoveryModal()\n reject(new Error('recover modal close'))\n }\n })\n await initWallet({\n address: overview?.address || '',\n did: overview?.did?.split(':')[2] || ''\n })\n } else {\n getSign()\n }\n })\n }\n const recoveryWallet = async (chainType: ChainType | undefined, recoveryType: string, userPasscode?: string) => {\n return await window.waitMatchUntilWalletMessage('recoveryWallet', {\n chainType,\n recoveryType,\n userPasscode\n })\n }\n return {\n recoveryWallet,\n initWallet,\n generateWallet,\n signMessage,\n signTransaction,\n isRecovered\n };\n}\n\nexport const useWalletInit = ({\n refreshOverview\n }: {\n refreshOverview?: () => Promise<any>\n}) => {\n const {env} = useLocalStore()\n const getWalletIframe = () => {\n return document.getElementById('match-wallet') as HTMLIFrameElement\n }\n const [walletInited, setWalletInited] = useState(false)//iframe load status\n const {appid, token, overview} = useLocalStore();\n const {initWallet, generateWallet} = useWallet();\n\n //create an iframe in page body\n useEffect(() => {\n if (env) {\n if (!window.matchWalletMessageIdMap) {\n window.matchWalletMessageIdMap = {}\n }\n const config = Envs[env];\n const endpoints = config.endpoints;\n\n const existingIframe = getWalletIframe();\n if (!existingIframe) {\n const iframe = document.createElement('iframe');\n iframe.id = 'match-wallet';\n iframe.src = endpoints.login + 'wallet';\n iframe.style.display = 'none';\n iframe.style.width = '0';\n iframe.style.height = '0';\n iframe.onload = () => {\n setWalletInited(true)\n };\n document.body.insertBefore(iframe, document.body.firstChild);\n\n window.sendMatchWalletMessage = (method: string, data?: any) => {\n const messageId = Date.now().toString() + Math.random().toString().slice(6)\n const message = {\n method,\n data,\n messageId,\n source: \"matchid\"\n }\n if (document.getElementById('match-wallet')) {\n getWalletIframe()?.contentWindow?.postMessage(message, '*');\n return messageId\n }\n console.error('not found iframe')\n return false\n }\n\n window.waitMatchUntilWalletMessage = async (method: string, data?: any, timeout = 5000) => {\n return new Promise((resolve, reject) => {\n const messageId = window.sendMatchWalletMessage(method, data)\n if (!messageId) {\n console.error('Can\\'t find wallet message')\n reject(new Error('Can\\'t find wallet message'))\n return\n }\n window.matchWalletMessageIdMap[messageId] = {resolve, reject}\n window.matchWalletMessageIdMap[messageId].timeout = setTimeout(() => {\n console.error('Get wallet result timeout', {\n messageId,\n method,\n data\n })\n delete window.matchWalletMessageIdMap[messageId]\n reject(new Error('Get wallet result timeout'))\n }, timeout)\n })\n }\n } else {\n\n if (existingIframe.src !== endpoints.login + 'wallet') {\n existingIframe.src = endpoints.login + 'wallet'\n }\n setWalletInited(true);\n }\n }\n\n }, [env]);\n useEffect(() => {\n const messageHandle = async (e: MessageEvent) => {\n const res = e.data\n if (res.source != 'match-wallet') {\n return\n }\n\n const messageId = res.messageId\n if (messageId && window.matchWalletMessageIdMap[messageId]) {\n const {resolve, reject, timeout} = window.matchWalletMessageIdMap[messageId]\n delete window.matchWalletMessageIdMap[messageId]\n clearTimeout(timeout)\n if (res.status == 'success') {\n resolve(res.data)\n } else {\n console.error('qwe-waller-error', res)\n reject(new Error(res.data.message))\n }\n\n }\n }\n window.addEventListener('message', messageHandle)\n return () => {\n window.removeEventListener('message', messageHandle)\n }\n\n }, []);\n\n useEffect(() => {\n if (token && overview && overview.did && walletInited) {\n const did = overview.did.split(':')[2]\n const newUserInit = async () => {\n await window.waitMatchUntilWalletMessage(\n 'initCore',\n {\n AppId: appid,\n AppClientId,\n UserId: did,\n AccessToken: token,\n Address: ''\n })\n // refreshOverview && await refreshOverview()\n }\n if (!overview.address) {\n newUserInit()\n } else {\n initWallet({\n address: overview.address,\n did\n })\n }\n }\n }, [overview, token, walletInited]);\n\n return {\n walletInited\n }\n\n\n}","import {create} from 'zustand';\n\ninterface StoreState {\n walletIframeInited: boolean\n setWalletIframeInited: (inited: boolean) => void,\n recoveryModal: {\n open: boolean\n success?: () => Promise<void>\n close?: () => Promise<void>\n }\n setRecoveryModal: (params:{\n open: boolean\n success?: () => Promise<void>\n close?: () => Promise<void>\n }) => void,\n closeRecoveryModal: () => void\n\n}\n\nconst useStore = create<StoreState>(set => ({\n walletIframeInited: false,\n setWalletIframeInited: (inited) => set({walletIframeInited: inited}),\n recoveryModal: {\n open: false,\n success: async() => {},\n close: async() => {}\n },\n setRecoveryModal: (params) => set({recoveryModal: params}),\n closeRecoveryModal: () => set({recoveryModal: {open: false}})\n}));\n\nexport default useStore;\n","import {ModalWithHeaderProps} from \"types/types\";\nimport {ModalWithHeader} from \"../Modal\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport Button from \"../Button\";\nimport {useUserInfo, useWallet} from \"../../hooks\";\nimport {PasswordRoundIcon} from \"../../assets/icon\";\nimport {ChainType, RecoveryType} from \"types/mpc\";\n\n\nexport default function RecoveryModal({\n title,\n isOpen,\n onSuccess,\n ...props\n }: ModalWithHeaderProps & {\n onSuccess?: () => void\n}) {\n const {refreshOverview} = useUserInfo()\n const {isLogin} = useUserInfo()\n const [password, setPassword] = useState('')\n const {recoveryWallet} = useWallet()\n const [error, setError] = useState('')//error from api\n const passwordError = useMemo(() => {\n if (password.length < 6) return 'Password must be at least 6 characters'\n return ''\n }, [password])\n\n\n useEffect(() => {\n if (isOpen) {\n setPassword('')\n }\n }, [isOpen]);\n\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onContinue = async () => {\n if (isSubmitting) return\n try {\n setIsSubmitting(true)\n await recoveryWallet(\"ethereum\",\"user_passcode_recovery_key\",password)\n await refreshOverview()\n onSuccess && onSuccess()\n // if (isSuccess(res)) {\n // await refreshOverview()\n // onSuccess && onSuccess()\n // } else {\n // setError(res.message)\n // }\n\n } catch (error: any) {\n console.error('qwe-recover-error',error)\n setError(error.message)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n\n return <ModalWithHeader isOpen={isOpen && isLogin} {...props} title={title || 'Recover Wallet'}>\n <div className=\"matchid-password-box\">\n <div className=\"matchid-password-header\">\n <div className=\"matchid-password-header-icon\"><PasswordRoundIcon/></div>\n <div className=\"matchid-password-header-content\">\n Please enter your password to recover your wallet\n </div>\n </div>\n <div className=\"matchid-password-content\">\n <Field label=\"Password\" error={password.length > 0 ? passwordError || error : error}>\n <Input\n placeholder={\"Enter the Password\"}\n maxLength={32}\n type={\"password\"}\n onChange={e => setPassword(e.target.value)}\n value={password}\n >\n </Input>\n </Field>\n </div>\n\n <Button disabled={password.length == 0 || !!passwordError} highlight block size=\"lg\"\n onClick={onContinue} loading={isSubmitting}>Continue</Button>\n </div>\n </ModalWithHeader>\n}","import React, {PropsWithChildren} from \"react\";\nimport PasswordModal from \"../components/PasswordModal\";\nimport {useUserInfo} from \"../hooks\";\nimport RecoveryModal from \"../components/RecoveryModal\";\nimport useStore from \"../store/useStore\";\n\nexport default function BusinessProvider({children}: PropsWithChildren) {\n const {overview, token} = useUserInfo()\n const {recoveryModal} = useStore()\n return (\n <>\n <PasswordModal isOpen={!!token && !!overview && !overview.address && !!overview.did} showClose={false}/>\n <RecoveryModal isOpen={!!token && !!overview && !!overview.address && recoveryModal.open}\n onClose={recoveryModal.close} onSuccess={recoveryModal.success}/>\n {children}\n </>\n );\n\n}","import React, { PropsWithChildren } from 'react';\nimport BusinessProvider from \"./BusinessProvider\";\n\nconst Providers = ({ children }: PropsWithChildren) => {\n return (\n // <MpcWalletProvider>\n <BusinessProvider>\n\n {children}\n </BusinessProvider>\n // </MpcWalletProvider>\n );\n};\n\nexport default Providers;\n","import {IEnvName, IMatchEvents} from \"../types/types\";\nimport React, {useEffect, useRef} from \"react\";\nimport useLocalStore from \"../store/useLocalStore\";\nimport eventManager from \"./eventManager\";\nimport {getOverviewInfoApi} from \"../api\";\nimport Envs from \"../config/env\";\n\nexport default function useInit({\n theme,\n appid,\n env,\n events,\n }:{\n theme: \"light\" | \"dark\";\n appid: string;\n env:IEnvName\n events?:IMatchEvents\n}){\n\n const {\n setAppid,\n setEnv,\n setToken,\n setMid,\n token,\n setOverview,\n setTheme,\n } = useLocalStore();\n const overviewLoadingRef = useRef(false);\n\n const searchParams = new URLSearchParams(window.location.search);\n const matchToken = searchParams.get('matchToken');\n\n const config = Envs[env];\n const endpoints = config.endpoints;\n\n useEffect(() => {\n setTheme(theme)\n }, [theme])\n\n useEffect(() => {\n setAppid(appid);\n }, [appid]);\n\n useEffect(() => {\n setEnv(env);\n }, [env]);\n\n useEffect(() => {\n if (matchToken) {\n const tokenData = JSON.parse(atob(matchToken));\n if (tokenData && tokenData.mid && tokenData.token) {\n login({\n mid: tokenData.mid,\n token: \"Bearer \" + tokenData.token,\n });\n }\n }\n }, [matchToken]);\n\n useEffect(() => {\n const onLoginMessage = (event: MessageEvent) => {\n const res = event.data;\n if (res.event === 'login' && res.data && (res.data.token || (res.data.token_type && res.data.access_token))) {\n login({\n mid: res.data.mid,\n token: res.data.token || `${res.data.token_type} ${res.data.access_token}`,\n });\n } else if (res.event == 'bind') {\n eventManager.emit('onBind', res.data)\n if (events && events.onBind) {\n events.onBind(res.data)\n }\n }\n }\n window.addEventListener('message', onLoginMessage);\n return () => {\n window.removeEventListener('message', onLoginMessage);\n };\n }, []);\n\n const loadOverview = async () => {\n console.log('loadOverview')\n if (overviewLoadingRef.current) {\n return;\n }\n overviewLoadingRef.current = true;\n try {\n const res = await getOverviewInfoApi();\n\n setOverview(res.data)\n\n return res.data;\n } catch (err) {\n console.error('overview error', err);\n } finally {\n overviewLoadingRef.current = false;\n }\n };\n\n useEffect(() => {\n if (token) {\n loadOverview();\n }\n }, [token]);\n\n const login = async ({mid, token}: { mid: string; token: string }) => {\n setMid(mid);\n setToken(token);\n const overview = await loadOverview();\n\n eventManager.emit('onLogin', {\n mid,\n token,\n did: overview?.did as string,\n });\n if (events && events?.onLogin) {\n events.onLogin({\n mid,\n token,\n did: overview?.did as string,\n });\n }\n };\n return {\n loadOverview,\n login,\n config,\n endpoints\n }\n\n}","export {default as EmailModal} from './EmailModal'\nexport {default as Field} from './Field'\nexport {default as Input} from './Input'\nexport {default as Button} from './Button'\nexport {default as LoginBox} from './LoginBox'\nexport {default as Modal,ModalWithHeader} from './Modal'\nexport {default as LoginButton} from './LoginButton'\nexport {default as LoginPanel} from './LoginPanel'\nexport {default as LoginModal} from './LoginModal'\nexport {default as UsernameModal} from './UsernameModal'\nexport {default as PasswordModal} from './PasswordModal'","import {useEffect, useState} from \"react\";\nimport {ModalWithHeader} from \"../Modal\";\nimport StepEmail from \"./StepEmail\";\nimport StepVerify from \"./StepVerify\";\nimport {EmailModalProps} from \"../../types/types\";\n\nexport default function EmailModal({\n isOpen = false,\n width = 480,\n onClose,\n onBack,\n onLogin\n }: EmailModalProps) {\n const [step, setStep] = useState<\"input\" | \"verify\">(\"input\")\n const [emailVal, setEmailVal] = useState('')\n\n\n useEffect(() => {\n if (!isOpen) {\n setStep('input')\n setEmailVal('')\n }\n }, [isOpen])\n\n return <ModalWithHeader\n isOpen={isOpen}\n width={width}\n onClose={onClose}\n title=\"Email\"\n onBack={step == 'verify' ? () => setStep(\"input\") : onBack}\n >\n {\n step === \"input\" ? <StepEmail email={emailVal} onContinue={(email) => {\n setEmailVal(email)\n setStep(\"verify\")\n }}/> : <StepVerify email={emailVal} onSuccess={onLogin}/>}\n </ModalWithHeader>\n}","import {useEffect, useMemo, useState} from \"react\";\nimport {isValidEmail} from \"utils\";\nimport Button from \"../Button\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\n\nexport default function StepEmail(props: {\n email: string\n onContinue: (email: string) => void\n}) {\n const [emailVal, setEmailVal] = useState('')\n useEffect(() => {\n if (props.email) {\n setEmailVal(props.email)\n }\n }, []);\n\n const canContinue = useMemo(() => {\n return isValidEmail(emailVal)\n }, [emailVal])\n\n const onContinue = async () => {\n props.onContinue(emailVal)\n }\n\n return <div className=\"matchid-email-email-box\">\n <Field label=\"Email Address\">\n <Input\n placeholder={\"Enter Your Email Address\"}\n onChange={e => setEmailVal(e.target.value)}\n value={emailVal}\n />\n </Field>\n\n <Button disabled={!canContinue} style={{\n marginTop:\"64px\"\n }} onClick={onContinue} size={\"lg\"} block highlight>Continue</Button>\n\n </div>\n}\n","import useUserInfo from \"../../hooks/useUserInfo\";\nimport {useEffect, useMemo, useRef, useState} from \"react\";\nimport Button from \"../Button\";\nimport {EmailLineIcon} from \"assets/icon\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport {EMAIL_CODE_LENGTH, EMAIL_INTERVAL} from \"../../config\";\n\nexport default function StepVerify(props: {\n email: string\n onSuccess?: () => void\n}) {\n const {getLoginEmailCode, loginByEmail} = useUserInfo()\n const [error, setError] = useState('')\n const [code, setCode] = useState('')\n const [sending, setSending] = useState(false)\n const [submitting, setSubmitting] = useState(false)\n const sendTimeRef = useRef(0)\n const [sendBtnText, setSendBtnText] = useState(\"Send\")\n const intervalTime = EMAIL_INTERVAL\n const codeLength = EMAIL_CODE_LENGTH\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n\n const onSend = async () => {\n if (sendTimeRef.current > 0) {\n return\n }\n try {\n setError(\"\")\n setSending(true)\n sendTimeRef.current = intervalTime\n await getLoginEmailCode(props.email)\n setSendBtnText(`${sendTimeRef.current}s`)\n intervalRef.current = setInterval(() => {\n sendTimeRef.current--;\n setSendBtnText(`${sendTimeRef.current}s`)\n if (sendTimeRef.current <= 0) {\n setSendBtnText(\"Resend\")\n clearInterval(intervalRef.current!);\n setSending(false);\n }\n }, 1000);\n } catch (err: any) {\n console.error(\"Send email error\", err)\n setError(\"Failed to send code:\" + err.message)\n setSending(false)\n }\n\n }\n useEffect(() => {\n onSend()\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n }\n }\n }, []);\n const canContinue = useMemo(() => {\n return code.length === codeLength\n }, [code])\n\n const onContinue = async () => {\n if (submitting) {\n return\n }\n try {\n setError(\"\")\n setSubmitting(true)\n const res = await loginByEmail({\n email: props.email,\n code\n })\n if (res) {\n props.onSuccess && props.onSuccess()\n }\n setSubmitting(false)\n\n } catch (err: any) {\n console.error(\"Verify email code error\", err)\n setError(err.message)\n setSubmitting(false)\n }\n }\n\n return <div className=\"matchid-email-verify-box\">\n <div className=\"matchid-email-verify-header\">\n <div className=\"matchid-email-verify-header-icon\"><EmailLineIcon/></div>\n <div className=\"matchid-email-verify-header-content\">\n <div className=\"matchid-email-verify-header-value\">{props.email}</div>\n <div className=\"matchid-email-verify-header-tips\">We have sent a verification code to your email</div>\n </div>\n </div>\n <Field label=\"Verification Code\" error={error}>\n <Input\n placeholder={\"Enter the code\"}\n maxLength={codeLength}\n onChange={e => setCode(e.target.value)}\n value={code}\n after={<Button\n highlight\n disabled={sending}\n style={{\n height: '100%',\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 'inherit',\n borderBottomRightRadius: 'inherit',\n width: \"80px\"\n }}\n onClick={onSend}>{sendBtnText}</Button>}\n >\n\n </Input>\n </Field>\n\n <Button disabled={!canContinue} highlight block size=\"lg\" onClick={onContinue}>Continue</Button>\n </div>\n}","export const EMAIL_INTERVAL = 60\nexport const EMAIL_CODE_LENGTH = 6","import useUserInfo from \"hooks/useUserInfo\";\nimport {LoginBoxProps, LoginMethodType} from \"types/types\";\nimport React, {useMemo, useState} from \"react\";\nimport {EmailIcon, GoogleIcon, TelegramIcon, WalletIcon, XIcon, ArrowRightIcon} from \"assets/icon\";\nimport EmailModal from \"../EmailModal\";\n\nexport default function LoginBox({\n methods,\n inModal = false\n }: LoginBoxProps) {\n const [emailOpen, setEmailOpen] = useState(false)\n const {loginByTelegram, loginByTwitter, loginByGoogle, loginByWallet} = useUserInfo()\n const defaultMethods: LoginMethodType[] = [\n 'wallet',\n 'google',\n 'email',\n 'telegram',\n 'X',\n ]\n const methodList: LoginMethodType[] = useMemo(() => {\n return methods || defaultMethods\n }, [methods])\n\n const LoginItem = ({\n icon,\n name,\n onClick\n }: {\n icon: React.ReactNode,\n name: string,\n onClick: () => void\n }) => {\n return <div className=\"matchid-login-method\" onClick={onClick}>\n <div className=\"matchid-login-method-content\">\n <div className=\"matchid-login-method-icon\">\n {icon}\n </div>\n <span className=\"matchid-login-method-name\">{name}</span>\n </div>\n <ArrowRightIcon className=\"matchid-login-method-arrow\" size={20} color={\"var(--matchid-arrow-color)\"}/>\n </div>\n }\n\n const methodMap: {\n [key: string]: {\n icon: React.ReactNode,\n name: string,\n onClick: () => void\n }\n } = {\n wallet: {\n icon: <WalletIcon/>,\n name: \"Wallet\",\n onClick: loginByWallet\n },\n email: {\n icon: <EmailIcon/>,\n name: \"Email\",\n onClick: () => {\n setEmailOpen(true)\n }\n },\n google: {\n icon: <GoogleIcon/>,\n name: \"Google\",\n onClick: loginByGoogle\n },\n X: {\n icon: <XIcon/>,\n name: \"X\",\n onClick: loginByTwitter\n },\n telegram: {\n icon: <TelegramIcon/>,\n name: \"Telegram\",\n onClick: loginByTelegram\n }\n\n }\n\n return <>\n {(!inModal || !emailOpen) && <div className=\"matchid-login-box\">\n {\n methodList.map((m) => {\n return <LoginItem icon={methodMap[m].icon} name={methodMap[m].name} onClick={methodMap[m].onClick}\n key={m}/>\n })\n }\n </div>}\n <EmailModal\n isOpen={emailOpen}\n onClose={() => {\n setEmailOpen(false)\n }}\n onBack={inModal ? () => {\n setEmailOpen(false)\n } : undefined}\n />\n </>\n\n}\n","import useUserInfo from \"../../hooks/useUserInfo\";\nimport {useState} from \"react\";\nimport {ButtonProps, LoginMethodType} from \"../../types/types\";\nimport {truncateAddress} from \"../../utils\";\nimport Button from \"../Button\";\nimport {LoginIcon, UnLoginIcon} from \"../../assets/icon\";\nimport LoginModal from \"../LoginModal\";\n\nexport default function LoginButton({\n loginRender,\n methods,\n onLoginClick,\n ...props\n }: Omit<ButtonProps, 'onClick' | 'highlight'> & {\n loginRender?: () => JSX.Element\n methods?: LoginMethodType[],\n onLoginClick?: () => void\n\n}) {\n\n const {isLogin, username} = useUserInfo()\n const [loginOpen, setLoginOpen] = useState(false)\n if (!isLogin) {\n return <>\n <LoginModal methods={methods} isOpen={loginOpen} onClose={() => setLoginOpen(false)}/>\n <Button className={'matchid-unlogin-btn'} {...props} highlight onClick={() => setLoginOpen(true)}>\n <UnLoginIcon/>\n <span>Login</span>\n </Button>\n </>\n }\n return loginRender ? loginRender() :\n <Button onClick={onLoginClick} className={'matchid-login-btn'} {...props}>\n <LoginIcon/>\n <span>{username ? truncateAddress(username) : 'MatchID User'}</span>\n </Button>\n\n}","import {LoginPanelProps} from \"types/types\";\nimport LoginBox from \"../LoginBox\";\nimport {CloseRoundIcon} from \"assets/icon\";\n\nexport default function LoginPanel({\n\n header,\n onClose,\n ...props\n }: LoginPanelProps) {\n return <div className=\"matchid-login-panel\">\n {header ? header : <div className=\"matchid-login-panel-header\">\n <div className=\"matchid-login-panel-header-content\">\n <div className=\"matchid-login-panel-header-title\">Log in / Sign up</div>\n <div className=\"matchid-login-panel-header-subtilte\">You can use the following methods</div>\n </div>\n {\n onClose && <div className={\"matchid-login-panel-header-close\"} onClick={onClose}><CloseRoundIcon/></div>\n }\n\n </div>}\n <div className=\"matchid-login-panel-divide\"/>\n <LoginBox {...props}/>\n </div>\n\n}\n","import Modal from \"components/Modal\";\nimport LoginPanel from \"../LoginPanel\";\nimport {LoginModalProps} from \"../../types/types\";\nimport {useUserInfo} from \"../../hooks\";\n\nexport default function LoginModal({\n isOpen = false,\n width = 480,\n ...props\n }: LoginModalProps) {\n const {isLogin} = useUserInfo()\n return <Modal\n isOpen={isOpen && !isLogin}\n width={width}\n >\n <LoginPanel {...props} inModal/>\n </Modal>\n}","import {ModalWithHeaderProps} from \"types/types\";\nimport {ModalWithHeader} from \"../Modal\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport {isValidUsername} from \"../../utils\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport Button from \"../Button\";\nimport InfoRoundIcon from \"../../assets/icon/InfoRoundIcon\";\nimport {useUserInfo} from \"../../hooks\";\nimport CheckRoundIcon from \"../../assets/icon/CheckRoundIcon\";\nimport {setUserNameApi} from \"../../api\";\nimport {isSuccess} from \"../../api/request\";\n\nconst ValidItem = ({\n success = false,\n text\n }: {\n success?: boolean,\n text: string\n}) => {\n return <div className={`matchid-valid-status-item matchid-valid-status-${success ? 'success' : 'error'}`}>\n\n {success ? <CheckRoundIcon size={16}/> : <InfoRoundIcon size={16}/>}\n <span>\n {text}\n </span>\n </div>\n}\n\nexport default function UsernameModal({\n title,\n isOpen,\n onSuccess,\n ...props\n }: ModalWithHeaderProps & {\n onSuccess?: () => void\n}) {\n const {username, refreshOverview} = useUserInfo()\n const {isLogin} = useUserInfo()\n const [val, setVal] = useState(username)\n const [error, setError] = useState('')//error from api\n\n useEffect(() => {\n if (isOpen) {\n setVal(username)\n setError('')\n }\n }, [isOpen]);\n\n const isValid = useMemo(() => {\n return isValidUsername(val)\n }, [val])\n\n const isLength = useMemo(() => {\n return val.length >= 2 && val.length <= 32\n }, [val])\n\n const isSafe = isValid && isLength\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onSubmit = async () => {\n if (isSubmitting) return\n try {\n setIsSubmitting(true)\n const res = await setUserNameApi({\n username: val\n })\n\n if (isSuccess(res)) {\n await refreshOverview()\n onSuccess && onSuccess()\n } else {\n setError(res.message)\n }\n\n } catch (error: any) {\n setError(error.message)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n\n return <ModalWithHeader isOpen={isOpen && isLogin} {...props} title={title || 'Set User Name'}>\n <div className=\"matchid-username-box\">\n <Field label=\"User Name\" error={error}>\n <Input\n placeholder={\"Enter Your User Name\"}\n onChange={e => {\n setVal(e.target.value)\n setError('')\n }}\n value={val}\n />\n </Field>\n <div className=\"matchid-valid\">\n <ValidItem success={isValid}\n text={\"Name can be composed of numbers and letters as well as characters\"}/>\n <ValidItem success={isLength} text={\"No less than 2 characters\"}/>\n {/*<ValidItem success={isSafe} text={\"Cannot contain sensitive words\"}/>*/}\n </div>\n\n <Button disabled={!isSafe} loading={isSubmitting} style={{\n marginTop: \"64px\"\n }} onClick={onSubmit} size={\"lg\"} block highlight>Confirm</Button>\n <Button style={{\n marginTop: \"24px\"\n }} onClick={props.onClose} size={\"lg\"} block>Next Time</Button>\n </div>\n </ModalWithHeader>\n}","import {IconProps} from \"../../types/types\";\n\nexport default function InfoRoundIcon({\n size,\n color='#6E6E6E',\n ...props\n }:Omit<IconProps, 'width'|'height'>) {\n return <svg width={size} height={size} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_418_7746)\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M7.99984 0.666504C3.94975 0.666504 0.666504 3.94975 0.666504 7.99984C0.666504 12.0499 3.94975 15.3332 7.99984 15.3332C12.0499 15.3332 15.3332 12.0499 15.3332 7.99984C15.3332 3.94975 12.0499 0.666504 7.99984 0.666504ZM1.99984 7.99984C1.99984 4.68613 4.68613 1.99984 7.99984 1.99984C11.3135 1.99984 13.9998 4.68613 13.9998 7.99984C13.9998 11.3135 11.3135 13.9998 7.99984 13.9998C4.68613 13.9998 1.99984 11.3135 1.99984 7.99984ZM8.6665 7.33317C8.6665 6.96498 8.36803 6.6665 7.99984 6.6665C7.63165 6.6665 7.33317 6.96498 7.33317 7.33317V11.3332C7.33317 11.7014 7.63165 11.9998 7.99984 11.9998C8.36803 11.9998 8.6665 11.7014 8.6665 11.3332V7.33317ZM7.99984 5.33317C8.36803 5.33317 8.6665 5.03469 8.6665 4.6665C8.6665 4.29831 8.36803 3.99984 7.99984 3.99984C7.63165 3.99984 7.33317 4.29831 7.33317 4.6665C7.33317 5.03469 7.63165 5.33317 7.99984 5.33317Z\"\n fill={color}/>\n </g>\n <defs>\n <clipPath id=\"clip0_418_7746\">\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n\n}"],"mappings":"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","names":["import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","axios","import_react","import_react","import_zustand","import_jsx_runtime","error","import_react","import_jsx_runtime","error","import_jsx_runtime","import_jsx_runtime","import_react","token","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","error"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/MatchContext.tsx","../src/assets/icon/ArrowLeftIcon.tsx","../src/assets/icon/BackIcon.tsx","../src/assets/icon/CloseIcon.tsx","../src/assets/icon/XIcon.tsx","../src/assets/icon/GoogleIcon.tsx","../src/assets/icon/WalletIcon.tsx","../src/assets/icon/TelegramIcon.tsx","../src/assets/icon/EmailIcon.tsx","../src/assets/icon/ArrowRightIcon.tsx","../src/assets/icon/CloseRoundIcon.tsx","../src/assets/icon/LoadingIcon.tsx","../src/assets/icon/EmailLineIcon.tsx","../src/assets/icon/UnLoginIcon.tsx","../src/assets/icon/LoginIcon.tsx","../src/assets/icon/CheckRoundIcon.tsx","../src/assets/icon/PasswordRoundIcon.tsx","../src/assets/icon/CloseEyeIcon.tsx","../src/assets/icon/OpenEyeIcon.tsx","../src/assets/icon/DeleteRoundIcon.tsx","../src/components/Modal/index.tsx","../src/components/PasswordModal/index.tsx","../src/components/Input/index.tsx","../src/components/Field/index.tsx","../src/components/Button/index.tsx","../src/hooks/index.tsx","../src/store/useLocalStore.ts","../src/hooks/useUserInfo.tsx","../src/api/request.ts","../src/config/env/main.ts","../src/config/env/dev.ts","../src/config/env/test.ts","../src/config/env/index.ts","../src/store/index.ts","../src/api/index.ts","../src/hooks/eventManager.ts","../src/utils/index.ts","../src/hooks/useMatchEvents.ts","../src/hooks/useWallet.tsx","../src/store/useStore.ts","../src/components/RecoveryModal/index.tsx","../src/context/BusinessProvider.tsx","../src/context/index.tsx","../src/hooks/useInit.tsx","../src/components/index.tsx","../src/components/EmailModal/index.tsx","../src/components/EmailModal/StepEmail.tsx","../src/components/EmailModal/StepVerify.tsx","../src/config/index.tsx","../src/components/LoginBox/index.tsx","../src/components/LoginButton/index.tsx","../src/components/LoginPanel/index.tsx","../src/components/LoginModal/index.tsx","../src/components/UsernameModal/index.tsx","../src/assets/icon/InfoRoundIcon.tsx"],"sourcesContent":["// src/index.tsx\nimport {useMatch, MatchProvider} from \"./MatchContext\"\nimport * as Components from \"./components\"\nimport * as Hooks from \"./hooks\"\n\nexport {\n useMatch,\n MatchProvider,\n Components,\n Hooks\n}\n\n","// src/MatchContext.tsx\nimport React, {createContext, useContext, ReactNode, useEffect, useState, useRef} from 'react';\nimport Providers from './context';\nimport { IEnvName, IMatchEvents} from \"./types/types\";\nimport {useWalletInit} from \"hooks/useWallet\"\nimport useInit from \"./hooks/useInit\";\n\ntype MatchContextType = {\n env: IEnvName;\n appid: string;\n endpoints: {\n login: string;\n back: string;\n };\n events?: IMatchEvents;\n login: (data: { mid: string; token: string }) => Promise<void>;\n theme: \"light\" | \"dark\";\n};\n\nexport const MatchContext = createContext<MatchContextType | undefined>(undefined);\n\nexport const MatchProvider: React.FC<{\n children: ReactNode;\n appid: string;\n env?: IEnvName;\n events?: IMatchEvents;\n theme?: \"light\" | \"dark\",\n}> = ({children, appid, env = 'main', events, theme = \"light\"}) => {\n\n const {loadOverview, login, config, endpoints} = useInit({\n theme,\n appid,\n env,\n events,\n })\n\n useWalletInit({\n refreshOverview: loadOverview\n })\n\n return (\n <MatchContext.Provider\n value={{\n appid,\n env,\n endpoints,\n events,\n login,\n theme,\n }}\n >\n <Providers>{children}</Providers>\n </MatchContext.Provider>\n );\n};\n\nexport const useMatch = () => {\n const context = useContext(MatchContext);\n\n if (context === undefined) {\n throw new Error('useMatch must be used within a MatchProvider');\n }\n return context;\n};","import {IconProps} from \"types/types\";\n\nexport default function ArrowLeftIcon({\n color = \"#000\",\n width = 24,\n height = 25,\n ...props\n }: IconProps) {\n return <svg width={width} height={height} {...props} viewBox=\"0 0 24 25\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M10.2322 5.26777L11.1161 6.15165L5.55207 11.7157H20.2157L20.2157 12.962L5.55207 12.962L11.1161 18.526L10.2322 19.4099L3.16117 12.3388L10.2322 5.26777Z\"\n fill={color}/>\n </svg>\n\n}","import {CSSProperties} from \"react\";\n\nexport default function BackIcon({\n color = \"#000\",\n size = 24,\n className,\n style\n }: {\n color?: string,\n size?: number,\n style?: CSSProperties\n className?: string\n}) {\n return (\n <svg className={className} style={style} width={size} height={size} viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.2917 25.2926C11.1988 25.3855 11.1251 25.4958 11.0748 25.6172C11.0245 25.7386 10.9987 25.8687 10.9987 26.0001C10.9987 26.1315 11.0245 26.2616 11.0748 26.383C11.1251 26.5044 11.1988 26.6147 11.2917 26.7076C11.3846 26.8005 11.4949 26.8742 11.6163 26.9245C11.7377 26.9747 11.8678 27.0006 11.9992 27.0006C12.1306 27.0006 12.2607 26.9747 12.3821 26.9245C12.5035 26.8742 12.6138 26.8005 12.7067 26.7076L22.7067 16.7076C22.7997 16.6147 22.8734 16.5044 22.9238 16.383C22.9741 16.2616 23 16.1315 23 16.0001C23 15.8687 22.9741 15.7385 22.9238 15.6171C22.8734 15.4957 22.7997 15.3854 22.7067 15.2926L12.7067 5.29257C12.5191 5.10493 12.2646 4.99951 11.9992 4.99951C11.7338 4.99951 11.4794 5.10493 11.2917 5.29257C11.1041 5.48021 10.9987 5.7347 10.9987 6.00007C10.9987 6.26543 11.1041 6.51993 11.2917 6.70757L20.5855 16.0001L11.2917 25.2926Z\"\n fill={color}/>\n </svg>\n )\n}","import {CSSProperties} from \"react\";\n\nexport default function CloseIcon({\n color = \"#000\",\n size = 24,\n style\n }: {\n color?: string,\n size?: number,\n style?: CSSProperties\n\n}) {\n return <svg style={style} width={size} height={size} viewBox=\"0 0 29 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L14.5 14.5M28 28L14.5 14.5M14.5 14.5L1 28L28 1\" stroke={color} strokeWidth=\"2\"/>\n </svg>\n}","\nexport default function XIcon({size=40}:{\n size?:number\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"black\"/>\n <path\n d=\"M16 10H9L17.2609 21.0145L9.44995 29.9999H12.1L18.4883 22.651L24 30H31L22.3917 18.5223L29.8001 10H27.1501L21.1643 16.8858L16 10ZM25 28L13 12H15L27 28H25Z\"\n fill=\"white\"/>\n </svg>\n\n}","\nexport default function GoogleIcon({size=40}:{\n size?:number\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"#F8F8F8\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M31.52 20.2729C31.52 19.422 31.4436 18.6038 31.3018 17.8184H20V22.4602H26.4582C26.18 23.9602 25.3345 25.2311 24.0636 26.082V29.0929H27.9418C30.2109 27.0038 31.52 23.9274 31.52 20.2729Z\"\n fill=\"#4285F4\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M20 32.0003C23.24 32.0003 25.9564 30.9257 27.9418 29.093L24.0636 26.0821C22.9891 26.8021 21.6145 27.2275 20 27.2275C16.8745 27.2275 14.2291 25.1166 13.2855 22.2803H9.27637V25.3894C11.2509 29.3112 15.3091 32.0003 20 32.0003Z\"\n fill=\"#34A853\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M13.2855 22.2804C13.0455 21.5604 12.9091 20.7913 12.9091 20.0004C12.9091 19.2095 13.0455 18.4404 13.2855 17.7204V14.6113H9.27636C8.46364 16.2313 8 18.0641 8 20.0004C8 21.9368 8.46364 23.7695 9.27636 25.3895L13.2855 22.2804Z\"\n fill=\"#FBBC05\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M20 12.7727C21.7618 12.7727 23.3436 13.3782 24.5873 14.5673L28.0291 11.1255C25.9509 9.18909 23.2345 8 20 8C15.3091 8 11.2509 10.6891 9.27637 14.6109L13.2855 17.72C14.2291 14.8836 16.8745 12.7727 20 12.7727Z\"\n fill=\"#EA4335\"/>\n </svg>\n\n}","export default function WalletIcon({\n size = 40,\n }: {\n size?: number\n\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"url(#paint0_linear_412_1774)\"/>\n <path\n d=\"M32.3335 19.1112V17.3333C32.3335 15.1242 30.5426 13.3333 28.3335 13.3333H25.6668M32.3335 19.1112H25.1112C23.2089 19.1112 21.6668 20.6533 21.6668 22.5556C21.6668 24.4579 23.2089 26 25.1112 26H32.3335M32.3335 19.1112C33.0699 19.1112 33.6668 19.7081 33.6668 20.4445V24.6667C33.6668 25.403 33.0699 26 32.3335 26M32.3335 26V28C32.3335 30.2091 30.5426 32 28.3335 32H11.0002C8.79102 32 7.00016 30.2091 7.00016 28V17.3333C7.00016 15.5917 8.11324 14.1101 9.66683 13.5609M25.6668 13.3333H11.0002C10.5326 13.3333 10.0839 13.4135 9.66683 13.5609M25.6668 13.3333V11.75C25.6668 9.91548 23.8575 8.62884 22.1247 9.2311L9.66683 13.5609\"\n stroke=\"white\" strokeWidth=\"1.33333\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <circle cx=\"26.1668\" cy=\"22.8335\" r=\"2\" fill=\"white\"/>\n <defs>\n <linearGradient id=\"paint0_linear_412_1774\" x1=\"20\" y1=\"0\" x2=\"20\" y2=\"40\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#FFB950\"/>\n <stop offset=\"0.475\" stopColor=\"#FF7A60\"/>\n <stop offset=\"1\" stopColor=\"#FF3C4A\"/>\n </linearGradient>\n </defs>\n </svg>\n}","export default function TelegramIcon({\n size = 40,\n }: {\n size?: number\n}) {\n return <svg width={size} height={size} viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"#28A7E8\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M9.65904 18.6099C16.1373 15.7874 20.4571 13.9267 22.6186 13.0277C28.7899 10.4608 30.0723 10.0149 30.9081 10.0002C31.0919 9.99692 31.503 10.0425 31.7692 10.2585C31.994 10.4409 32.0559 10.6874 32.0855 10.8603C32.1151 11.0333 32.1519 11.4273 32.1226 11.7351C31.7882 15.249 30.3411 23.7762 29.605 27.7118C29.2935 29.3771 28.6801 29.9354 28.0863 29.9901C26.7958 30.1088 25.8159 29.1372 24.566 28.3179C22.6101 27.0358 21.5052 26.2377 19.6067 24.9867C17.4127 23.5408 18.835 22.7462 20.0853 21.4475C20.4126 21.1076 26.0985 15.9358 26.2085 15.4667C26.2223 15.408 26.2351 15.1893 26.1051 15.0738C25.9752 14.9583 25.7834 14.9978 25.645 15.0292C25.4489 15.0737 22.3244 17.1389 16.2715 21.2247C15.3847 21.8337 14.5814 22.1304 13.8616 22.1149C13.0682 22.0977 11.5419 21.6663 10.4073 21.2974C9.0156 20.8451 7.90953 20.6059 8.00585 19.8376C8.05601 19.4374 8.60708 19.0282 9.65904 18.6099Z\"\n fill=\"white\"/>\n </svg>\n\n}","export default function EmailIcon({\n size = 40,\n }: {\n size?: number\n\n}) {\n return <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\n <rect width=\"40\" height=\"40\" rx=\"8\" fill=\"url(#paint0_linear_124_10994)\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M30.8867 12.5448C30.9585 12.4862 31 12.3997 31 12.3085C31 12.1381 30.8581 12 30.683 12H9.49205C9.2203 12 9 12.2144 9 12.4789C9 12.6212 9.06508 12.7562 9.17759 12.8472L19.5082 21.2008C19.7333 21.3828 20.06 21.3821 20.2842 21.199L30.8867 12.5448ZM9.99246 15.2938C9.59792 14.9748 9 15.2478 9 15.7471V27.9107C9 28.2362 9.27109 28.5 9.6055 28.5H30.3945C30.7289 28.5 31 28.2362 31 27.9107V15.5103C31 15.0098 30.3994 14.7372 30.0054 15.0588L20.353 22.9375C20.0642 23.1732 19.7375 23.1739 19.5124 22.9919L9.99246 15.2938Z\"\n fill=\"white\"/>\n <defs>\n <linearGradient id=\"paint0_linear_124_10994\" x1=\"20\" y1=\"0\" x2=\"20\" y2=\"40\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#FFB950\"/>\n <stop offset=\"0.475\" stopColor=\"#FF7A60\"/>\n <stop offset=\"1\" stopColor=\"#FF3C4A\"/>\n </linearGradient>\n </defs>\n </svg>\n}","import {IconProps} from \"types/types\";\n\nexport default function ArrowRightIcon({\n color = \"#000\",\n size = 20,\n className,\n style\n }: IconProps) {\n return <svg className={className} style={style} width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M11.4733 3.97314L10.7367 4.70971L15.3734 9.34641L3.15374 9.34641L3.15374 10.385L15.3734 10.385L10.7367 15.0217L11.4733 15.7583L17.3658 9.8657L11.4733 3.97314Z\"\n fill={color}/>\n </svg>\n\n}","import {IconProps} from \"types/types\";\n\nexport default function CloseRoundIcon({size=30,...props}:IconProps) {\n return <svg width={size} height={size} {...props} viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"30\" height=\"30\" rx=\"15\" fill=\"#F9F9F9\"/>\n <path d=\"M10.7574 10.7573L19.2426 19.2426\" stroke=\"#6E6E6E\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n <path d=\"M19.2426 10.7573L10.7574 19.2426\" stroke=\"#6E6E6E\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n </svg>\n\n}","import React from 'react';\n\ninterface LoadingIconProps {\n size?: number;\n className?: string;\n color?: string;\n}\n\nconst LoadingIcon: React.FC<LoadingIconProps> = ({ size = 22, className=\"\",color=\"white\" }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M11 1V3.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.3\" d=\"M3.92834 3.92871L5.69977 5.70017\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.4\" d=\"M1 11H3.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.5\" d=\"M3.92834 18.0722L5.69977 16.3008\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.6\" d=\"M11 21V18.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.7\" d=\"M18.0715 18.0722L16.3 16.3008\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.8\" d=\"M21 11H18.5\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path opacity=\"0.9\" d=\"M18.0715 3.92871L16.3 5.70017\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nexport default LoadingIcon;","import {IconProps} from \"../../types/types\";\n\nexport default function EmailLineIcon({\n size=24,\n color=\"black\",\n ...props\n }:IconProps) {\n return <svg width={size} height={size} {...props} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 8.00049L10.8906 13.2609C11.5624 13.7088 12.4376 13.7088 13.1094 13.2609L21 8.00049M5 19.0005H19C20.1046 19.0005 21 18.1051 21 17.0005V7.00049C21 5.89592 20.1046 5.00049 19 5.00049H5C3.89543 5.00049 3 5.89592 3 7.00049V17.0005C3 18.1051 3.89543 19.0005 5 19.0005Z\"\n stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n\n}","import React from 'react';\nimport {IconProps} from \"../../types/types\";\n\nconst UnLoginIcon: React.FC<IconProps> = ({ size=32, color = 'white',...props }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 32 32\" fill=\"none\" {...props}>\n <path\n d=\"M24 14L26 12M24 14L22 12M24 14L22 16M24 14L26 16M18 12C18 14.2091 16.2091 16 14 16C11.7909 16 10 14.2091 10 12C10 9.79086 11.7909 8 14 8C16.2091 8 18 9.79086 18 12ZM10 19H18C20.2091 19 22 20.7909 22 23C22 23.5523 21.5523 24 21 24H7C6.44772 24 6 23.5523 6 23C6 20.7909 7.79086 19 10 19Z\"\n stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n);\n\nexport default UnLoginIcon;","import React from 'react';\nimport {IconProps} from \"../../types/types\";\n\nconst LoginIcon: React.FC<IconProps> = ({size = 32, color = 'white', ...props}) => (\n <svg width={size} height={size} viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect width=\"32\" height=\"32\" rx=\"16\"/>\n <path\n d=\"M22.5 14L24 15.5L27 12.5M19 11C19 13.2091 17.2091 15 15 15C12.7909 15 11 13.2091 11 11C11 8.79086 12.7909 7 15 7C17.2091 7 19 8.79086 19 11ZM11 18H19C21.2091 18 23 19.7909 23 22C23 22.5523 22.5523 23 22 23H8C7.44772 23 7 22.5523 7 22C7 19.7909 8.79086 18 11 18Z\"\n stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n\n);\n\nexport default LoginIcon;","import {IconProps} from \"../../types/types\";\n\nexport default function CheckRoundIcon({\n size,\n color=\"#2CBF68\",\n ...props\n }:Omit<IconProps, 'width'|'height'>) {\n return <svg width={size} height={size} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_418_7699)\">\n <path\n d=\"M14.6668 8.00016C14.6668 11.6821 11.6821 14.6668 8.00016 14.6668C4.31826 14.6668 1.3335 11.6821 1.3335 8.00016C1.3335 4.31826 4.31826 1.3335 8.00016 1.3335C11.6821 1.3335 14.6668 4.31826 14.6668 8.00016Z\"\n fill={color} stroke={color} strokeLinecap=\"round\"/>\n <path\n d=\"M10.6867 5.97994C10.882 6.1752 10.882 6.49179 10.6867 6.68705L7.35339 10.0204C7.15813 10.2156 6.84155 10.2156 6.64628 10.0204L5.31295 8.68705C5.11769 8.49179 5.11769 8.1752 5.31295 7.97994C5.50821 7.78468 5.8248 7.78468 6.02006 7.97994L6.99984 8.95972L8.48973 7.46983L9.97962 5.97994C10.1749 5.78468 10.4915 5.78468 10.6867 5.97994Z\"\n fill=\"white\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_418_7699\">\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n\n}","export default function PasswordRoundIcon() {\n return <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"7.5\" fill=\"white\"/>\n <rect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M19.7673 16.1137C19.962 13.9479 21.7831 12.25 24 12.25C26.3472 12.25 28.25 14.1528 28.25 16.5C28.25 18.8472 26.3472 20.75 24 20.75C23.488 20.75 22.9987 20.6598 22.5461 20.495C21.9175 20.2662 21.1115 20.3279 20.5486 20.8908L19.2626 22.1768C19.2157 22.2237 19.1521 22.25 19.0858 22.25H18C17.3096 22.25 16.75 22.8096 16.75 23.5V24.25H15.5C14.8096 24.25 14.25 24.8096 14.25 25.5V26.5C14.25 26.6381 14.1381 26.75 14 26.75H12C11.8619 26.75 11.75 26.6381 11.75 26.5V23.9538C11.75 23.8817 11.7811 23.8131 11.8354 23.7656L19.1524 17.3632C19.5404 17.0238 19.7275 16.556 19.7673 16.1137ZM24 10.75C20.9997 10.75 18.5369 13.0473 18.2733 15.9794C18.2614 16.1115 18.2107 16.1941 18.1646 16.2344L10.8476 22.6368C10.4678 22.9691 10.25 23.4491 10.25 23.9538V26.5C10.25 27.4665 11.0335 28.25 12 28.25H14C14.9665 28.25 15.75 27.4665 15.75 26.5V25.75H17C17.6904 25.75 18.25 25.1904 18.25 24.5V23.75H19.0858C19.5499 23.75 19.995 23.5656 20.3232 23.2374L21.6092 21.9514C21.6738 21.8868 21.8277 21.8298 22.033 21.9045C22.6476 22.1283 23.3104 22.25 24 22.25C27.1756 22.25 29.75 19.6756 29.75 16.5C29.75 13.3244 27.1756 10.75 24 10.75ZM25 16.5C25.5523 16.5 26 16.0523 26 15.5C26 14.9477 25.5523 14.5 25 14.5C24.4477 14.5 24 14.9477 24 15.5C24 16.0523 24.4477 16.5 25 16.5Z\"\n fill=\"black\"/>\n </svg>\n\n}","export default function CloseEyeIcon() {\n return <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.15132 12.5568V11.5464C8.21031 11.4949 7.28023 11.3193 6.38524 11.024L6.04233 11.9579C6.00626 12.0669 5.94867 12.1676 5.87299 12.2539C5.79731 12.3403 5.70508 12.4106 5.60174 12.4607C5.4984 12.5108 5.38607 12.5396 5.27139 12.5455C5.15671 12.5514 5.04201 12.5342 4.93409 12.4949C4.82617 12.4557 4.72722 12.3952 4.6431 12.317C4.55898 12.2389 4.49139 12.1446 4.44435 12.0399C4.3973 11.9351 4.37175 11.822 4.36921 11.7072C4.36667 11.5924 4.38719 11.4783 4.42955 11.3715L4.80788 10.3268C4.04603 9.88461 3.32634 9.37345 2.65789 8.79975C2.54358 8.70488 2.42928 8.61687 2.32184 8.52772C2.1442 8.38554 2.03031 8.17862 2.00523 7.95247C1.98015 7.72633 2.04593 7.49948 2.18811 7.32184C2.33028 7.1442 2.5372 7.03031 2.76335 7.00523C2.98949 6.98015 3.21634 7.04593 3.39398 7.18811C3.50828 7.27955 3.62258 7.37099 3.73689 7.47043C5.46065 9.00826 7.68996 9.85815 10 9.85815C12.31 9.85815 14.5393 9.00826 16.2631 7.47043C16.3774 7.37099 16.4917 7.27955 16.606 7.18811C16.694 7.11771 16.7949 7.06533 16.9031 7.03395C17.0114 7.00257 17.1247 6.99281 17.2367 7.00523C17.3486 7.01765 17.4571 7.052 17.5558 7.10632C17.6545 7.16065 17.7415 7.23388 17.8119 7.32184C17.8823 7.4098 17.9347 7.51077 17.9661 7.61897C17.9974 7.72717 18.0072 7.8405 17.9948 7.95247C17.9824 8.06445 17.948 8.17288 17.8937 8.27158C17.8394 8.37028 17.7661 8.45732 17.6782 8.52772L17.3421 8.79975C16.6737 9.37354 15.954 9.88471 15.1921 10.3268L15.5705 11.3715C15.6128 11.4783 15.6333 11.5924 15.6308 11.7072C15.6283 11.822 15.6027 11.9351 15.5557 12.0399C15.5086 12.1446 15.441 12.2389 15.3569 12.317C15.2728 12.3952 15.1738 12.4557 15.0659 12.4949C14.958 12.5342 14.8433 12.5514 14.7286 12.5455C14.6139 12.5396 14.5016 12.5108 14.3983 12.4607C14.2949 12.4106 14.2027 12.3403 14.127 12.2539C14.0513 12.1676 13.9937 12.0669 13.9577 11.9579L13.6148 11.024C12.7198 11.3193 11.7897 11.4949 10.8487 11.5464V12.5568C10.8487 12.7842 10.7584 13.0022 10.5976 13.163C10.4368 13.3238 10.2188 13.4141 9.99143 13.4141C9.76407 13.4141 9.54602 13.3238 9.38526 13.163C9.22449 13.0022 9.13417 12.7842 9.13417 12.5568H9.15132Z\"\n fill=\"#6E6E6E\"/>\n </svg>\n\n}","export default function OpenEyeIcon() {\n return <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10 6.4543C11.3373 6.44986 12.6486 6.82287 13.7834 7.53047C14.9181 8.23806 15.8301 9.25151 16.4145 10.4543C15.2145 12.9052 12.7564 14.4543 10 14.4543C7.24364 14.4543 4.78545 12.9052 3.58545 10.4543C4.1699 9.25151 5.08191 8.23806 6.21664 7.53047C7.35136 6.82287 8.66274 6.44986 10 6.4543ZM10 4.99976C6.36364 4.99976 3.25818 7.26157 2 10.4543C3.25818 13.647 6.36364 15.9088 10 15.9088C13.6364 15.9088 16.7418 13.647 18 10.4543C16.7418 7.26157 13.6364 4.99976 10 4.99976ZM10 8.63612C10.4822 8.63617 10.9446 8.82774 11.2855 9.16871C11.6265 9.50968 11.818 9.97212 11.818 10.4543C11.818 10.9365 11.6265 11.3989 11.2855 11.7399C10.9446 12.0809 10.4822 12.2724 10 12.2725C9.51782 12.2724 9.0554 12.0809 8.71447 11.7399C8.37353 11.3989 8.18199 10.9365 8.18199 10.4543C8.18199 9.97212 8.37353 9.50968 8.71447 9.16871C9.0554 8.82774 9.51782 8.63617 10 8.63612ZM10 7.18157C8.19636 7.18157 6.72727 8.65066 6.72727 10.4543C6.72727 12.2579 8.19636 13.727 10 13.727C11.8036 13.727 13.2727 12.2579 13.2727 10.4543C13.2727 8.65066 11.8036 7.18157 10 7.18157Z\"\n fill=\"#6E6E6E\"/>\n </svg>\n\n}","import {IconProps} from \"../../types/types\";\n\nexport default function DeleteRoundIcon({height = 21,width=20, color = \"var(--matchid-error-color)\",...props}:IconProps) {\n return <svg width={width} height={height} viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect y=\"0.5\" width=\"20\" height=\"20\" rx=\"10\" fill={color}/>\n <path d=\"M7.17139 7.67188L12.8282 13.3287\" stroke=\"white\" strokeLinecap=\"round\"/>\n <path d=\"M12.8286 7.67188L7.17176 13.3287\" stroke=\"white\" strokeLinecap=\"round\"/>\n </svg>\n\n}","import React from \"react\";\nimport {ModalProps, ModalWithHeaderProps} from \"../../types/types\";\nimport ArrowLeftIcon from \"../../assets/icon/ArrowLeftIcon\";\nimport {CloseRoundIcon} from \"../../assets/icon\";\n\nexport default function Modal({\n children,\n isOpen,\n width = 480\n }: ModalProps) {\n return isOpen ? <div\n className=\"matchid-overlay\"\n >\n <div className=\"matchid-modal\" style={{\n width\n }}>\n {children}\n </div>\n </div> : <></>\n}\n\nexport function ModalWithHeader({\n children,\n onBack,\n onClose,\n title,\n showClose = true,\n ...props\n\n }: ModalWithHeaderProps) {\n return <Modal {...props}>\n <div className={`matchid-modal-header`}>\n <div className=\"matchid-modal-header-content\">\n {\n onBack && <ArrowLeftIcon className=\"matchid-modal-header-back\" onClick={onBack}/>\n }\n <span className=\"matchid-modal-header-title\">{title}</span>\n </div>\n {onClose && <CloseRoundIcon className=\"matchid-modal-header-close\" onClick={onClose}/>}\n </div>\n {children}\n </Modal>\n\n}","import {ModalWithHeaderProps} from \"types/types\";\nimport {ModalWithHeader} from \"../Modal\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport {isValidUsername} from \"../../utils\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport Button from \"../Button\";\nimport InfoRoundIcon from \"../../assets/icon/InfoRoundIcon\";\nimport {useUserInfo, useWallet} from \"../../hooks\";\nimport CheckRoundIcon from \"../../assets/icon/CheckRoundIcon\";\nimport {setUserNameApi} from \"../../api\";\nimport {isSuccess} from \"../../api/request\";\nimport {PasswordRoundIcon} from \"../../assets/icon\";\n\n\nexport default function PasswordModal({\n title,\n isOpen,\n onSuccess,\n ...props\n }: ModalWithHeaderProps & {\n onSuccess?: () => void\n}) {\n const {refreshOverview} = useUserInfo()\n const {isLogin,did} = useUserInfo()\n const [password, setPassword] = useState('')\n const [rePassword, setRePassword] = useState('')\n const [error, setError] = useState('')//error from api\n const {generateWallet} = useWallet()\n const passwordError = useMemo(() => {\n if (password.length < 6) return 'Password must be at least 6 characters'\n return ''\n }, [password])\n\n const rePasswordError = useMemo(() => {\n if (rePassword != password){\n return 'The password you entered twice do not match'\n }\n return ''\n }, [rePassword, password])\n\n useEffect(() => {\n if (isOpen) {\n setPassword('')\n setRePassword('')\n }\n }, [isOpen]);\n\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onContinue = async () => {\n if (isSubmitting) return\n try {\n setIsSubmitting(true)\n const address = await generateWallet({\n did: did.split(':')[2],\n userPasscode: password\n })\n await refreshOverview()\n onSuccess && onSuccess()\n\n } catch (error: any) {\n setError(error.message)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n\n return <ModalWithHeader isOpen={isOpen && isLogin} {...props} title={title || 'Set Password'}>\n <div className=\"matchid-password-box\">\n <div className=\"matchid-password-header\">\n <div className=\"matchid-password-header-icon\"><PasswordRoundIcon/></div>\n <div className=\"matchid-password-header-content\">\n Please set the wallet password that will be used to recover the wallet\n </div>\n </div>\n <div className=\"matchid-password-content\">\n <Field label=\"Password\" error={password.length>0 && passwordError}>\n <Input\n placeholder={\"Enter the Password\"}\n maxLength={32}\n type={\"password\"}\n onChange={e => setPassword(e.target.value)}\n value={password}\n >\n </Input>\n </Field>\n <Field label=\"Re Password\" error={rePassword.length> 0 ? rePasswordError || error : error}>\n <Input\n placeholder={\"Re Enter the Password\"}\n maxLength={32}\n onChange={e => setRePassword(e.target.value)}\n value={rePassword}\n type={\"password\"}\n >\n </Input>\n </Field>\n </div>\n\n <Button disabled={password.length == 0 || !!passwordError || !!rePasswordError} highlight block size=\"lg\"\n onClick={onContinue} loading={isSubmitting}>Continue</Button>\n </div>\n </ModalWithHeader>\n}","import {InputProps} from \"types/types\";\nimport {DeleteRoundIcon, CloseEyeIcon, OpenEyeIcon} from \"assets/icon\";\nimport {useState} from \"react\";\n\nexport default function Input({\n onChange,\n type,\n after,\n ...props\n }: InputProps) {\n const [inputType,setInputType] = useState(type)\n\n return <div className={`matchid-input-box ${props.value.length > 0 ? 'matchid-input-has-content' : ''}`}>\n <input type={inputType} onChange={onChange} {...props} className=\"matchid-input-field\"/>\n {\n props.value.length > 0\n && <DeleteRoundIcon onClick={(e) => {\n if (onChange) {\n onChange({target: {value: ''}});\n }\n }} className=\"matchid-input-delete-icon\" color=\"var(--matchid-input-delete-icon-color)\"/>\n }\n {\n type === 'password' && <div className=\"matchid-input-eye-icon\" onClick={() => {\n setInputType(inputType === 'password' ? 'text' : 'password')\n }}>\n {\n inputType === 'password' ? <CloseEyeIcon/> : <OpenEyeIcon/>\n }\n </div>\n }\n {\n after\n }\n </div>\n\n}","import {PropsWithChildren, ReactNode} from \"react\";\n\nexport default function Field({\n label,\n children,\n error\n }:{\n label: ReactNode,\n error?: ReactNode\n}&PropsWithChildren){\n return <div className=\"matchid-field-box\">\n <div className=\"matchid-field-label\">{label}</div>\n {children}\n {error && <div className=\"matchid-field-error\">{error}</div>}\n </div>\n\n}","import {LoadingIcon} from \"assets/icon\";\nimport {ButtonProps} from \"../../types/types\";\n\nexport default function Button({\n size = \"df\",\n disabled = false,\n loading = false,\n children,\n onClick,\n highlight = false,\n block = false,\n type = \"button\",\n rounded = true,\n className='',\n style = {}\n }: ButtonProps) {\n\n const onAction = () => {\n if (!disabled && !loading) {\n onClick && onClick()\n }\n }\n return <button\n type={type}\n className={`${className} matchid-btn ${'matchid-btn-' + size} ${highlight ? \"matchid-btn-highlight\" : ''} ${loading ? \"matchid-btn-loading\" : ''} ${block ? \"matchid-btn-block\" : ''} ${rounded ? \"matchid-btn-rounded\" : ''}`}\n disabled={disabled || loading}\n style={{\n ...style\n }}\n onClick={onAction}\n >\n {\n loading ?\n <LoadingIcon className=\"matchid-btn-loading-icon\" color=\"var(--matchid-btn-loading-color)\"/> :\n children\n }\n </button>\n}","export {default as useUserInfo} from \"./useUserInfo\";\nexport {default as useMatchEvents} from \"./useMatchEvents\";\nexport {default as useWallet} from \"./useWallet\";","import {create} from 'zustand';\nimport { devtools, persist } from 'zustand/middleware';\nimport {OverviewInfo, ThemeType} from \"../types/types\";\n\ninterface StoreState {\n env:string\n appid:string\n token:string\n did:string\n mid:string\n theme:\"dark\"|\"light\"\n\n setAppid: (appid: string) => void;\n setEnv: (env: string) => void;\n setToken: (token: string) => void;\n setDid: (did: string) => void;\n setMid: (mid: string) => void;\n logout: () => void;\n overview:OverviewInfo|null\n setOverview:(overview:OverviewInfo)=>void\n setTheme:(theme:\"dark\"|\"light\")=>void\n\n address:string\n setAddress:(address:string)=>void\n}\n\nconst persistedState = persist<StoreState>(\n set => ({\n appid: '',\n token:'',\n did:'',\n env:'main',\n mid:'',\n overview:null,\n theme:'light',\n setOverview:(overview:OverviewInfo)=>set({\n overview,\n address:overview.address,\n did:overview.did,\n mid:overview.mid\n }),\n setEnv: (env: string) => set({ env: env }),\n setDid: (did: string) => set({ did: did }),\n setToken: (token: string) => set({ token: token }),\n setAppid: (appid: string) => set({ appid: appid }),\n setMid: (mid: string) => set({ mid: mid }),\n logout: () => set({ token: '',did:'',mid:'',address:'',overview:null }),\n setTheme:(theme:\"dark\"|\"light\")=>set({theme}),\n\n address:'',\n setAddress:(address:string)=>set({address})\n }),\n { name: 'match-local' }\n);\n\nconst useLocalStore = create(devtools(persistedState));\n\nexport const localStore = useLocalStore;\n\nexport default useLocalStore;\n","import useLocalStore from \"../store/useLocalStore\";\nimport {useMemo} from \"react\";\nimport {ISocialLoginMethod} from \"../types/types\";\nimport {getEmailCodeApi, getOverviewInfoApi, toLogoutApi, verifyEmailCodeApi} from \"../api\";\nimport {isSuccess} from \"../api/request\";\nimport {getEndpoints} from \"../store\";\nimport {useMatch} from \"../MatchContext\";\nimport eventManager from \"./eventManager\";\nimport {encodeBase64} from \"../utils\";\n\nexport default function useUserInfo() {\n const {\n appid,\n token,\n mid,\n did,\n env,\n logout:logoutStore,\n setOverview,\n overview,\n address,\n } = useLocalStore();\n const {events, login} = useMatch()\n\n\n\n const endpoints = useMemo(() => {\n return getEndpoints()\n }, [env])\n\n\n const isLogin = useMemo(() => !!token, [token])\n\n const logout = async () => {\n try{\n await toLogoutApi()\n }catch(err:any){\n console.error('logout',err)\n }\n\n logoutStore()\n events && events!.onLogout && events!.onLogout()\n eventManager.emit('onLogout');\n }\n\n const loginByMethod = (method: ISocialLoginMethod) => {\n const link = `${endpoints.back}auth/${method}?appid=${appid}&provider=${method}&redirect=${encodeURIComponent(endpoints.login + 'login/' + method)}&authorization=${new Date().getTime()}`;\n console.log('link', link)\n // window.location.href = link\n const authWindow = window.open(\n link, // Replace with the actual authorization URL\n 'authWindow',\n 'width=800,height=600'\n );\n }\n\n const loginByTwitter = () => {\n loginByMethod('twitter')\n }\n const loginByGoogle = () => {\n loginByMethod('google')\n }\n\n const getLoginEmailCode = async (email: string) => {\n const res = await getEmailCodeApi(email);\n if (res && res.data && isSuccess(res)) {\n window.sessionStorage.setItem('loginkey', res.data.key as string)\n return res.data.key as string\n }\n return ''\n }\n\n const loginByEmail = async ({\n email,\n code\n }: { email: string, code: string }) => {\n try {\n const obj = {\n email: email,\n verification_key: window.sessionStorage.getItem('loginkey') as string,\n verification_code: code,\n }\n const res = await verifyEmailCodeApi(obj);\n if (res && res.data && isSuccess(res)) {\n await login({\n mid: res.data.mid,\n token: `${res.data.token_type} ${res.data.access_token}`\n })\n return true;\n\n } else {\n throw new Error(res.message)\n }\n } catch (error) {\n console.error('loginByEmail', error);\n throw error\n }\n return false\n };\n\n const loginByWallet = () => {\n const authWindow = window.open(\n `${endpoints.login}login/wallet?appid=${appid}`, // Replace with the actual authorization URL\n '_blank',\n // 'width=800,height=600'\n );\n\n }\n const loginByTelegram = () => {\n const authWindow = window.open(\n `${endpoints.login}login/telegram?appid=${appid}`, // Replace with the actual authorization URL\n 'authWindow',\n 'width=800,height=600'\n );\n }\n\n\n const refreshOverview = async()=>{\n const res = await getOverviewInfoApi()\n if(res.data){\n setOverview(res.data)\n }\n }\n\n const bindWallet = async () => {\n if(!token){\n throw new Error('You must login first')\n }\n const authWindow = window.open(\n `${endpoints.login}bind/wallet?appid=${appid}&st=`+encodeURIComponent(encodeBase64(token)), // Replace with the actual authorization URL\n '_blank',\n );\n }\n\n const bindTelegram = async () => {\n if(!token){\n throw new Error('You must login first')\n }\n const authWindow = window.open(\n `${endpoints.login}bind/telegram?appid=${appid}&st=`+encodeURIComponent(encodeBase64(token)), // Replace with the actual authorization URL\n 'authWindow',\n 'width=800,height=600'\n );\n }\n\n\n return {\n loginByTelegram,\n loginByTwitter,\n loginByGoogle,\n loginByWallet,\n loginByEmail,\n token,\n mid,\n did,\n address,\n isLogin,\n logout,\n getLoginEmailCode,\n refreshOverview,\n overview,\n bindWallet,\n bindTelegram,\n username:overview?.username||'',\n }\n}","import axios, {AxiosRequestConfig} from 'axios';\nimport {getAppid, getEndpoints, getToken} from '../store';\nimport { localStore } from '../store/useLocalStore';\n\nexport const SUCCESS_CODE = 0;\n\nexport const isSuccess = (res: { code: number; message: string; data?: any }) => {\n return res.code === SUCCESS_CODE;\n};\n\nexport interface MyResponseType<T> {\n code: number;\n data: T;\n message: string;\n success: boolean;\n fail: boolean;\n result: T;\n}\n\nconst instance = axios.create({\n timeout: 60000,\n validateStatus(status) {\n return status >= 200 && status <= 500;\n },\n});\n\nconst request = async <T = any>(config: AxiosRequestConfig): Promise<MyResponseType<T>> => {\n try {\n const endpoints = getEndpoints();\n const token = getToken()\n instance.defaults.baseURL = `${endpoints.back}`;\n\n instance.defaults.headers.common['Appid'] = getAppid()\n if(token){\n instance.defaults.headers.common['Authorization'] = token;\n }\n\n const {data} = await instance.request<MyResponseType<T>>(config);\n console.log('api',data)\n if(data.code == 401001){\n localStore.getState().logout()\n throw new Error(\"Your session has expired, please log in again\")\n }\n // if (data.code !== 0) {\n // throw new Error(data.message);\n // }\n return data;\n } catch (err) {\n console.error('qwe-err', err);\n const message = 'Request Error';\n console.error(message);\n return {\n code: -1,\n data: null as any,\n message,\n success: false,\n fail: true,\n result: null as any,\n };\n }\n};\n\nexport default request;","import {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n endpoints:{\n back: \"https://api.matchid.ai/api/v1/\",\n login:\"https://auth.matchid.ai/\"\n }\n} as IEnvConfigType","import {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n endpoints:{\n back: \"https://mid-test-api.matchain.io/mid/api/v1/\",\n login:\"https://calm-hare-roughly.ngrok-free.app/\"\n }\n}as IEnvConfigType","import {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n endpoints:{\n back: \"https://mid-test-api.matchain.io/mid/api/v1/\",\n login:\"https://mid-sso-test.vercel.app/\"\n }\n}as IEnvConfigType","import mainEnv from \"./main\"\nimport devEnv from \"./dev\"\nimport testEnv from \"./test\"\nimport type {IEnvConfigType} from \"../../types/types\";\n\nexport default {\n main: mainEnv,\n dev: devEnv,\n test: testEnv\n} as {\n [key: string]: IEnvConfigType\n}","import { localStore } from './useLocalStore';\nimport Envs from '../config/env';\nexport const getEnv = ()=>{\n try {\n const store = localStore.getState();\n\n const env = store?.env;\n\n if (env) {\n return env;\n } else {\n return 'main'\n }\n } catch (e) {\n return 'main'\n }\n}\nexport const getEnvConfig = ()=>{\n return Envs[getEnv()]\n}\nexport const getEndpoints = () => {\n return getEnvConfig().endpoints\n};\nexport const getAppid = () => {\n try {\n const store = localStore.getState();\n const appid = store?.appid;\n if (appid) {\n return appid;\n } else {\n return '';\n }\n } catch (e) {\n return '';\n }\n}\nexport const getToken = () => {\n try {\n const store = localStore.getState();\n const token = store?.token;\n if (token) {\n return token;\n } else {\n return '';\n }\n } catch (e) {\n return '';\n }\n}","import request from \"./request\";\nimport {BindWalletParam, OverviewInfo} from \"../types/types\";\n\nexport const getEmailCodeApi = ( email: string) => {\n return request<any>({\n url: `/email/code`,\n method: \"POST\",\n data: { email }\n });\n}\n\nexport const verifyEmailCodeApi = ({ email, verification_key, verification_code } : { email: string, verification_key: string, verification_code: string }) => {\n return request<any>({\n url: `/user/email/login`,\n method: \"POST\",\n data: { email, verification_key, verification_code }\n });\n}\n\nexport const getUserTokenApi = ()=>{\n return request<any>({\n url: `/user/token`,\n method: \"GET\",\n });\n}\n\nexport const getOverviewInfoApi = () => {\n return request<OverviewInfo>({\n url: `/user/overview`,\n method: \"GET\",\n });\n}\nexport const toLogoutApi = () => {\n return request<any>({\n url: `/user/logout`,\n method: \"POST\",\n });\n}\n\nexport const setUserNameApi = (data:any) => {\n return request({\n url: `/user/name`,\n method: \"POSt\",\n data\n });\n}","// src/hooks/eventManager.ts\ntype EventCallback = (...args: any[]) => void;\n\nclass EventManager {\n private listeners: Record<string, Set<EventCallback>> = {};\n\n on(event: string, callback: EventCallback) {\n if (!this.listeners[event]) {\n this.listeners[event] = new Set();\n }\n this.listeners[event].add(callback);\n }\n\n off(event: string, callback: EventCallback) {\n if (this.listeners[event]) {\n this.listeners[event].delete(callback);\n if (this.listeners[event].size === 0) {\n delete this.listeners[event];\n }\n }\n }\n\n emit(event: string, ...args: any[]) {\n if (this.listeners[event]) {\n this.listeners[event].forEach(callback => callback(...args));\n }\n }\n}\n\nconst eventManager = new EventManager();\n\nexport default eventManager;\n","export const getVersion = (): string => {\n return \"0.0.1\";\n};\nexport function encodeBase64(input:string) {\n return btoa(unescape(encodeURIComponent(input)));\n}\n\n// Base64 解码\nexport function decodeBase64(input:string) {\n return decodeURIComponent(escape(atob(input)));\n}\n\nexport const isValidEmail = (email: string) => {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)\n}\nexport const isValidUsername = (username: string) => {\n //8-32 alpha number - _\n return /^[a-zA-Z0-9_-]+$/.test(username)\n}\n\nexport const deepMerge = (target: any, source: any): any => {\n for (const key in source) {\n if (source[key] instanceof Object && key in target) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n return target;\n};\n\nexport function truncateAddress(address: string): string {\n if (address.length <= 6) {\n return address;\n }\n const start = address.slice(0, 4);\n const end = address.slice(-2);\n return `${start}...${end}`;\n}\n\n","// src/hooks/useMatchEvents.ts\nimport { useEffect } from \"react\";\nimport eventManager from \"./eventManager\";\nimport {IMatchEvents} from \"../types/types\";\n\n\nexport default function useMatchEvents(handlers: IMatchEvents) {\n useEffect(() => {\n Object.entries(handlers).forEach(([event, handler]) => {\n if (handler) {\n eventManager.on(event, handler);\n }\n });\n\n return () => {\n Object.entries(handlers).forEach(([event, handler]) => {\n if (handler) {\n eventManager.off(event, handler);\n }\n });\n };\n }, [handlers]);\n}\n","import useLocalStore from \"../store/useLocalStore\";\nimport {getVersion} from \"../utils\";\nimport {useEffect, useMemo, useRef, useState} from \"react\";\nimport {Hex, SignableMessage, TransactionSerializable} from 'viem';\nimport useStore from \"../store/useStore\";\nimport Envs from \"config/env\";\nimport {ChainType, RecoveryType} from \"../types/mpc\";\n\ninterface UseWalletReturnType {\n initWallet: (params: {\n address: string,\n did: string\n }) => Promise<void>;\n generateWallet: (params: {\n did: string\n userPasscode: string\n }) => Promise<string>;\n isRecovered: () => Promise<boolean>;\n recoveryWallet: (chainType: ChainType | undefined, recoveryType: RecoveryType, userPasscode?: string) => Promise<void>;\n signMessage: (message: SignableMessage, type?: ChainType) => Promise<Hex>;\n signTransaction: (transaction: TransactionSerializable, type?: ChainType) => Promise<`0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | import(\"viem\").TransactionSerializedLegacy>;\n}\n\nconst AppClientId = \"react-sdk-\" + getVersion()\n\nexport default function useWallet(): UseWalletReturnType {\n const {appid, token, overview} = useLocalStore();\n const {setRecoveryModal, closeRecoveryModal} = useStore()\n\n const initWallet = ({\n did,\n address\n }: {\n did: string,\n address: string\n }): Promise<void> => {\n return window.waitMatchUntilWalletMessage(\n 'initCore',\n {\n AppId: appid,\n AppClientId,\n UserId: did,\n AccessToken: token,\n Address: address\n })\n }\n const isRecovered = async (): Promise<boolean> => {\n const res = await window.waitMatchUntilWalletMessage('isRecovered')\n return res.isRecovered\n }\n const generateWallet = async ({\n did,\n userPasscode\n }: {\n did: string,\n userPasscode: string\n }): Promise<string> => {\n\n\n return (await window.waitMatchUntilWalletMessage('generateWallet', {\n recoveryType: \"user_passcode_recovery_key\",\n userPasscode\n })) as string\n };\n\n\n const signMessage = async (message: SignableMessage, type?: ChainType): Promise<Hex> => {\n return new Promise(async (resolve, reject) => {\n const res = await isRecovered()\n console.log('isRecovered', res)\n const getSign = async () => {\n try {\n const recoverRes = await window.waitMatchUntilWalletMessage('signMessage', {\n message,\n chainType: type\n })\n closeRecoveryModal()\n resolve(recoverRes)\n } catch (error: any) {\n console.error('qwe-sign-error', error)\n reject(error)\n }\n }\n if (!res) {\n\n setRecoveryModal({\n open: true,\n success: async () => {\n console.log('recover Success')\n await getSign()\n },\n close: async () => {\n closeRecoveryModal()\n reject(new Error('recover modal close'))\n }\n })\n await initWallet({\n address: overview?.address || '',\n did: overview?.did?.split(':')[2] || ''\n })\n } else {\n getSign()\n }\n })\n\n }\n\n const signTransaction = async (transaction: TransactionSerializable, type?: ChainType): Promise<`0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | import(\"viem\").TransactionSerializedLegacy> => {\n return new Promise(async (resolve, reject) => {\n const res = await isRecovered()\n console.log('isRecovered', res)\n const getSign = async () => {\n try {\n const recoverRes = await window.waitMatchUntilWalletMessage('signTransaction', {\n transaction,\n chainType: type\n })\n closeRecoveryModal()\n resolve(recoverRes)\n } catch (error: any) {\n console.error('qwe-sign-error', error)\n reject(error)\n }\n }\n if (!res) {\n setRecoveryModal({\n open: true,\n success: async () => {\n console.log('recover Success')\n await getSign()\n },\n close: async () => {\n closeRecoveryModal()\n reject(new Error('recover modal close'))\n }\n })\n await initWallet({\n address: overview?.address || '',\n did: overview?.did?.split(':')[2] || ''\n })\n } else {\n getSign()\n }\n })\n }\n const recoveryWallet = async (chainType: ChainType | undefined, recoveryType: string, userPasscode?: string) => {\n return await window.waitMatchUntilWalletMessage('recoveryWallet', {\n chainType,\n recoveryType,\n userPasscode\n })\n }\n return {\n recoveryWallet,\n initWallet,\n generateWallet,\n signMessage,\n signTransaction,\n isRecovered\n };\n}\n\nexport const useWalletInit = ({\n refreshOverview\n }: {\n refreshOverview?: () => Promise<any>\n}) => {\n const {env} = useLocalStore()\n const getWalletIframe = () => {\n return document.getElementById('match-wallet') as HTMLIFrameElement\n }\n const [walletInited, setWalletInited] = useState(false)//iframe load status\n const {appid, token, overview} = useLocalStore();\n const {initWallet, generateWallet} = useWallet();\n\n //create an iframe in page body\n useEffect(() => {\n if (env) {\n if (!window.matchWalletMessageIdMap) {\n window.matchWalletMessageIdMap = {}\n }\n const config = Envs[env];\n const endpoints = config.endpoints;\n\n const existingIframe = getWalletIframe();\n if (!existingIframe) {\n const iframe = document.createElement('iframe');\n iframe.id = 'match-wallet';\n iframe.src = endpoints.login + 'wallet';\n iframe.style.display = 'none';\n iframe.style.width = '0';\n iframe.style.height = '0';\n iframe.onload = () => {\n setWalletInited(true)\n };\n document.body.insertBefore(iframe, document.body.firstChild);\n\n window.sendMatchWalletMessage = (method: string, data?: any) => {\n const messageId = Date.now().toString() + Math.random().toString().slice(6)\n const message = {\n method,\n data,\n messageId,\n source: \"matchid\"\n }\n if (document.getElementById('match-wallet')) {\n getWalletIframe()?.contentWindow?.postMessage(message, '*');\n return messageId\n }\n console.error('not found iframe')\n return false\n }\n\n window.waitMatchUntilWalletMessage = async (method: string, data?: any, timeout = 5000) => {\n return new Promise((resolve, reject) => {\n const messageId = window.sendMatchWalletMessage(method, data)\n if (!messageId) {\n console.error('Can\\'t find wallet message')\n reject(new Error('Can\\'t find wallet message'))\n return\n }\n window.matchWalletMessageIdMap[messageId] = {resolve, reject}\n window.matchWalletMessageIdMap[messageId].timeout = setTimeout(() => {\n console.error('Get wallet result timeout', {\n messageId,\n method,\n data\n })\n delete window.matchWalletMessageIdMap[messageId]\n reject(new Error('Get wallet result timeout'))\n }, timeout)\n })\n }\n } else {\n\n if (existingIframe.src !== endpoints.login + 'wallet') {\n existingIframe.src = endpoints.login + 'wallet'\n }\n setWalletInited(true);\n }\n }\n\n }, [env]);\n useEffect(() => {\n const messageHandle = async (e: MessageEvent) => {\n const res = e.data\n if (res.source != 'match-wallet') {\n return\n }\n\n const messageId = res.messageId\n if (messageId && window.matchWalletMessageIdMap[messageId]) {\n const {resolve, reject, timeout} = window.matchWalletMessageIdMap[messageId]\n delete window.matchWalletMessageIdMap[messageId]\n clearTimeout(timeout)\n if (res.status == 'success') {\n resolve(res.data)\n } else {\n console.error('qwe-waller-error', res)\n reject(new Error(res.data.message))\n }\n\n }\n }\n window.addEventListener('message', messageHandle)\n return () => {\n window.removeEventListener('message', messageHandle)\n }\n\n }, []);\n\n useEffect(() => {\n if (token && overview && overview.did && walletInited) {\n const did = overview.did.split(':')[2]\n const newUserInit = async () => {\n await window.waitMatchUntilWalletMessage(\n 'initCore',\n {\n AppId: appid,\n AppClientId,\n UserId: did,\n AccessToken: token,\n Address: ''\n })\n // refreshOverview && await refreshOverview()\n }\n if (!overview.address) {\n newUserInit()\n } else {\n initWallet({\n address: overview.address,\n did\n })\n }\n }\n }, [overview, token, walletInited]);\n\n return {\n walletInited\n }\n\n\n}","import {create} from 'zustand';\n\ninterface StoreState {\n walletIframeInited: boolean\n setWalletIframeInited: (inited: boolean) => void,\n recoveryModal: {\n open: boolean\n success?: () => Promise<void>\n close?: () => Promise<void>\n }\n setRecoveryModal: (params:{\n open: boolean\n success?: () => Promise<void>\n close?: () => Promise<void>\n }) => void,\n closeRecoveryModal: () => void\n\n}\n\nconst useStore = create<StoreState>(set => ({\n walletIframeInited: false,\n setWalletIframeInited: (inited) => set({walletIframeInited: inited}),\n recoveryModal: {\n open: false,\n success: async() => {},\n close: async() => {}\n },\n setRecoveryModal: (params) => set({recoveryModal: params}),\n closeRecoveryModal: () => set({recoveryModal: {open: false}})\n}));\n\nexport default useStore;\n","import {ModalWithHeaderProps} from \"types/types\";\nimport {ModalWithHeader} from \"../Modal\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport Button from \"../Button\";\nimport {useUserInfo, useWallet} from \"../../hooks\";\nimport {PasswordRoundIcon} from \"../../assets/icon\";\nimport {ChainType, RecoveryType} from \"types/mpc\";\n\n\nexport default function RecoveryModal({\n title,\n isOpen,\n onSuccess,\n ...props\n }: ModalWithHeaderProps & {\n onSuccess?: () => void\n}) {\n const {refreshOverview} = useUserInfo()\n const {isLogin} = useUserInfo()\n const [password, setPassword] = useState('')\n const {recoveryWallet} = useWallet()\n const [error, setError] = useState('')//error from api\n const passwordError = useMemo(() => {\n if (password.length < 6) return 'Password must be at least 6 characters'\n return ''\n }, [password])\n\n\n useEffect(() => {\n if (isOpen) {\n setPassword('')\n }\n }, [isOpen]);\n\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onContinue = async () => {\n if (isSubmitting) return\n try {\n setIsSubmitting(true)\n await recoveryWallet(\"ethereum\",\"user_passcode_recovery_key\",password)\n await refreshOverview()\n onSuccess && onSuccess()\n // if (isSuccess(res)) {\n // await refreshOverview()\n // onSuccess && onSuccess()\n // } else {\n // setError(res.message)\n // }\n\n } catch (error: any) {\n console.error('qwe-recover-error',error)\n setError(error.message)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n\n return <ModalWithHeader isOpen={isOpen && isLogin} {...props} title={title || 'Recover Wallet'}>\n <div className=\"matchid-password-box\">\n <div className=\"matchid-password-header\">\n <div className=\"matchid-password-header-icon\"><PasswordRoundIcon/></div>\n <div className=\"matchid-password-header-content\">\n Please enter your password to recover your wallet\n </div>\n </div>\n <div className=\"matchid-password-content\">\n <Field label=\"Password\" error={password.length > 0 ? passwordError || error : error}>\n <Input\n placeholder={\"Enter the Password\"}\n maxLength={32}\n type={\"password\"}\n onChange={e => setPassword(e.target.value)}\n value={password}\n >\n </Input>\n </Field>\n </div>\n\n <Button disabled={password.length == 0 || !!passwordError} highlight block size=\"lg\"\n onClick={onContinue} loading={isSubmitting}>Continue</Button>\n </div>\n </ModalWithHeader>\n}","import React, {PropsWithChildren} from \"react\";\nimport PasswordModal from \"../components/PasswordModal\";\nimport {useUserInfo} from \"../hooks\";\nimport RecoveryModal from \"../components/RecoveryModal\";\nimport useStore from \"../store/useStore\";\n\nexport default function BusinessProvider({children}: PropsWithChildren) {\n const {overview, token} = useUserInfo()\n const {recoveryModal} = useStore()\n return (\n <>\n <PasswordModal isOpen={!!token && !!overview && !overview.address && !!overview.did} showClose={false}/>\n <RecoveryModal isOpen={!!token && !!overview && !!overview.address && recoveryModal.open}\n onClose={recoveryModal.close} onSuccess={recoveryModal.success}/>\n {children}\n </>\n );\n\n}","import React, { PropsWithChildren } from 'react';\nimport BusinessProvider from \"./BusinessProvider\";\n\nconst Providers = ({ children }: PropsWithChildren) => {\n return (\n // <MpcWalletProvider>\n <BusinessProvider>\n\n {children}\n </BusinessProvider>\n // </MpcWalletProvider>\n );\n};\n\nexport default Providers;\n","import {IEnvName, IMatchEvents} from \"../types/types\";\nimport React, {useEffect, useRef} from \"react\";\nimport useLocalStore from \"../store/useLocalStore\";\nimport eventManager from \"./eventManager\";\nimport {getOverviewInfoApi} from \"../api\";\nimport Envs from \"../config/env\";\n\nexport default function useInit({\n theme,\n appid,\n env,\n events,\n }:{\n theme: \"light\" | \"dark\";\n appid: string;\n env:IEnvName\n events?:IMatchEvents\n}){\n\n const {\n setAppid,\n setEnv,\n setToken,\n setMid,\n token,\n setOverview,\n setTheme,\n } = useLocalStore();\n const overviewLoadingRef = useRef(false);\n\n const searchParams = new URLSearchParams(window.location.search);\n const matchToken = searchParams.get('matchToken');\n\n const config = Envs[env];\n const endpoints = config.endpoints;\n\n useEffect(() => {\n setTheme(theme)\n }, [theme])\n\n useEffect(() => {\n setAppid(appid);\n }, [appid]);\n\n useEffect(() => {\n setEnv(env);\n }, [env]);\n\n useEffect(() => {\n if (matchToken) {\n const tokenData = JSON.parse(atob(matchToken));\n if (tokenData && tokenData.mid && tokenData.token) {\n login({\n mid: tokenData.mid,\n token: \"Bearer \" + tokenData.token,\n });\n }\n }\n }, [matchToken]);\n\n useEffect(() => {\n const onLoginMessage = (event: MessageEvent) => {\n const res = event.data;\n if (res.event === 'login' && res.data && (res.data.token || (res.data.token_type && res.data.access_token))) {\n login({\n mid: res.data.mid,\n token: res.data.token || `${res.data.token_type} ${res.data.access_token}`,\n });\n } else if (res.event == 'bind') {\n eventManager.emit('onBind', res.data)\n if (events && events.onBind) {\n events.onBind(res.data)\n }\n }\n }\n window.addEventListener('message', onLoginMessage);\n return () => {\n window.removeEventListener('message', onLoginMessage);\n };\n }, []);\n\n const loadOverview = async () => {\n console.log('loadOverview')\n if (overviewLoadingRef.current) {\n return;\n }\n overviewLoadingRef.current = true;\n try {\n const res = await getOverviewInfoApi();\n\n setOverview(res.data)\n\n return res.data;\n } catch (err) {\n console.error('overview error', err);\n } finally {\n overviewLoadingRef.current = false;\n }\n };\n\n useEffect(() => {\n if (token) {\n loadOverview();\n }\n }, [token]);\n\n const login = async ({mid, token}: { mid: string; token: string }) => {\n setMid(mid);\n setToken(token);\n const overview = await loadOverview();\n\n eventManager.emit('onLogin', {\n mid,\n token,\n did: overview?.did as string,\n });\n if (events && events?.onLogin) {\n events.onLogin({\n mid,\n token,\n did: overview?.did as string,\n });\n }\n };\n return {\n loadOverview,\n login,\n config,\n endpoints\n }\n\n}","export {default as EmailModal} from './EmailModal'\nexport {default as Field} from './Field'\nexport {default as Input} from './Input'\nexport {default as Button} from './Button'\nexport {default as LoginBox} from './LoginBox'\nexport {default as Modal,ModalWithHeader} from './Modal'\nexport {default as LoginButton} from './LoginButton'\nexport {default as LoginPanel} from './LoginPanel'\nexport {default as LoginModal} from './LoginModal'\nexport {default as UsernameModal} from './UsernameModal'\nexport {default as PasswordModal} from './PasswordModal'","import {useEffect, useState} from \"react\";\nimport {ModalWithHeader} from \"../Modal\";\nimport StepEmail from \"./StepEmail\";\nimport StepVerify from \"./StepVerify\";\nimport {EmailModalProps} from \"../../types/types\";\n\nexport default function EmailModal({\n isOpen = false,\n width = 480,\n onClose,\n onBack,\n onLogin\n }: EmailModalProps) {\n const [step, setStep] = useState<\"input\" | \"verify\">(\"input\")\n const [emailVal, setEmailVal] = useState('')\n\n\n useEffect(() => {\n if (!isOpen) {\n setStep('input')\n setEmailVal('')\n }\n }, [isOpen])\n\n return <ModalWithHeader\n isOpen={isOpen}\n width={width}\n onClose={onClose}\n title=\"Email\"\n onBack={step == 'verify' ? () => setStep(\"input\") : onBack}\n >\n {\n step === \"input\" ? <StepEmail email={emailVal} onContinue={(email) => {\n setEmailVal(email)\n setStep(\"verify\")\n }}/> : <StepVerify email={emailVal} onSuccess={onLogin}/>}\n </ModalWithHeader>\n}","import {useEffect, useMemo, useState} from \"react\";\nimport {isValidEmail} from \"utils\";\nimport Button from \"../Button\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\n\nexport default function StepEmail(props: {\n email: string\n onContinue: (email: string) => void\n}) {\n const [emailVal, setEmailVal] = useState('')\n useEffect(() => {\n if (props.email) {\n setEmailVal(props.email)\n }\n }, []);\n\n const canContinue = useMemo(() => {\n return isValidEmail(emailVal)\n }, [emailVal])\n\n const onContinue = async () => {\n props.onContinue(emailVal)\n }\n\n return <div className=\"matchid-email-email-box\">\n <Field label=\"Email Address\">\n <Input\n placeholder={\"Enter Your Email Address\"}\n onChange={e => setEmailVal(e.target.value)}\n value={emailVal}\n />\n </Field>\n\n <Button disabled={!canContinue} style={{\n marginTop:\"64px\"\n }} onClick={onContinue} size={\"lg\"} block highlight>Continue</Button>\n\n </div>\n}\n","import useUserInfo from \"../../hooks/useUserInfo\";\nimport {useEffect, useMemo, useRef, useState} from \"react\";\nimport Button from \"../Button\";\nimport {EmailLineIcon} from \"assets/icon\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport {EMAIL_CODE_LENGTH, EMAIL_INTERVAL} from \"../../config\";\n\nexport default function StepVerify(props: {\n email: string\n onSuccess?: () => void\n}) {\n const {getLoginEmailCode, loginByEmail} = useUserInfo()\n const [error, setError] = useState('')\n const [code, setCode] = useState('')\n const [sending, setSending] = useState(false)\n const [submitting, setSubmitting] = useState(false)\n const sendTimeRef = useRef(0)\n const [sendBtnText, setSendBtnText] = useState(\"Send\")\n const intervalTime = EMAIL_INTERVAL\n const codeLength = EMAIL_CODE_LENGTH\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n\n const onSend = async () => {\n if (sendTimeRef.current > 0) {\n return\n }\n try {\n setError(\"\")\n setSending(true)\n sendTimeRef.current = intervalTime\n await getLoginEmailCode(props.email)\n setSendBtnText(`${sendTimeRef.current}s`)\n intervalRef.current = setInterval(() => {\n sendTimeRef.current--;\n setSendBtnText(`${sendTimeRef.current}s`)\n if (sendTimeRef.current <= 0) {\n setSendBtnText(\"Resend\")\n clearInterval(intervalRef.current!);\n setSending(false);\n }\n }, 1000);\n } catch (err: any) {\n console.error(\"Send email error\", err)\n setError(\"Failed to send code:\" + err.message)\n setSending(false)\n }\n\n }\n useEffect(() => {\n onSend()\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n }\n }\n }, []);\n const canContinue = useMemo(() => {\n return code.length === codeLength\n }, [code])\n\n const onContinue = async () => {\n if (submitting) {\n return\n }\n try {\n setError(\"\")\n setSubmitting(true)\n const res = await loginByEmail({\n email: props.email,\n code\n })\n if (res) {\n props.onSuccess && props.onSuccess()\n }\n setSubmitting(false)\n\n } catch (err: any) {\n console.error(\"Verify email code error\", err)\n setError(err.message)\n setSubmitting(false)\n }\n }\n\n return <div className=\"matchid-email-verify-box\">\n <div className=\"matchid-email-verify-header\">\n <div className=\"matchid-email-verify-header-icon\"><EmailLineIcon/></div>\n <div className=\"matchid-email-verify-header-content\">\n <div className=\"matchid-email-verify-header-value\">{props.email}</div>\n <div className=\"matchid-email-verify-header-tips\">We have sent a verification code to your email</div>\n </div>\n </div>\n <Field label=\"Verification Code\" error={error}>\n <Input\n placeholder={\"Enter the code\"}\n maxLength={codeLength}\n onChange={e => setCode(e.target.value)}\n value={code}\n after={<Button\n highlight\n disabled={sending}\n style={{\n height: '100%',\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 'inherit',\n borderBottomRightRadius: 'inherit',\n width: \"80px\"\n }}\n onClick={onSend}>{sendBtnText}</Button>}\n >\n\n </Input>\n </Field>\n\n <Button disabled={!canContinue} highlight block size=\"lg\" onClick={onContinue}>Continue</Button>\n </div>\n}","export const EMAIL_INTERVAL = 60\nexport const EMAIL_CODE_LENGTH = 6","import useUserInfo from \"hooks/useUserInfo\";\nimport {LoginBoxProps, LoginMethodType} from \"types/types\";\nimport React, {useMemo, useState} from \"react\";\nimport {EmailIcon, GoogleIcon, TelegramIcon, WalletIcon, XIcon, ArrowRightIcon} from \"assets/icon\";\nimport EmailModal from \"../EmailModal\";\n\nexport default function LoginBox({\n methods,\n inModal = false\n }: LoginBoxProps) {\n const [emailOpen, setEmailOpen] = useState(false)\n const {loginByTelegram, loginByTwitter, loginByGoogle, loginByWallet} = useUserInfo()\n const defaultMethods: LoginMethodType[] = [\n 'wallet',\n 'google',\n 'email',\n 'telegram',\n 'X',\n ]\n const methodList: LoginMethodType[] = useMemo(() => {\n return methods || defaultMethods\n }, [methods])\n\n const LoginItem = ({\n icon,\n name,\n onClick\n }: {\n icon: React.ReactNode,\n name: string,\n onClick: () => void\n }) => {\n return <div className=\"matchid-login-method\" onClick={onClick}>\n <div className=\"matchid-login-method-content\">\n <div className=\"matchid-login-method-icon\">\n {icon}\n </div>\n <span className=\"matchid-login-method-name\">{name}</span>\n </div>\n <ArrowRightIcon className=\"matchid-login-method-arrow\" size={20} color={\"var(--matchid-arrow-color)\"}/>\n </div>\n }\n\n const methodMap: {\n [key: string]: {\n icon: React.ReactNode,\n name: string,\n onClick: () => void\n }\n } = {\n wallet: {\n icon: <WalletIcon/>,\n name: \"Wallet\",\n onClick: loginByWallet\n },\n email: {\n icon: <EmailIcon/>,\n name: \"Email\",\n onClick: () => {\n setEmailOpen(true)\n }\n },\n google: {\n icon: <GoogleIcon/>,\n name: \"Google\",\n onClick: loginByGoogle\n },\n X: {\n icon: <XIcon/>,\n name: \"X\",\n onClick: loginByTwitter\n },\n telegram: {\n icon: <TelegramIcon/>,\n name: \"Telegram\",\n onClick: loginByTelegram\n }\n\n }\n\n return <>\n {(!inModal || !emailOpen) && <div className=\"matchid-login-box\">\n {\n methodList.map((m) => {\n return <LoginItem icon={methodMap[m].icon} name={methodMap[m].name} onClick={methodMap[m].onClick}\n key={m}/>\n })\n }\n </div>}\n <EmailModal\n isOpen={emailOpen}\n onClose={() => {\n setEmailOpen(false)\n }}\n onBack={inModal ? () => {\n setEmailOpen(false)\n } : undefined}\n />\n </>\n\n}\n","import useUserInfo from \"../../hooks/useUserInfo\";\nimport {useState} from \"react\";\nimport {ButtonProps, LoginMethodType} from \"../../types/types\";\nimport {truncateAddress} from \"../../utils\";\nimport Button from \"../Button\";\nimport {LoginIcon, UnLoginIcon} from \"../../assets/icon\";\nimport LoginModal from \"../LoginModal\";\n\nexport default function LoginButton({\n loginRender,\n methods,\n onLoginClick,\n ...props\n }: Omit<ButtonProps, 'onClick' | 'highlight'> & {\n loginRender?: () => JSX.Element\n methods?: LoginMethodType[],\n onLoginClick?: () => void\n\n}) {\n\n const {isLogin, username} = useUserInfo()\n const [loginOpen, setLoginOpen] = useState(false)\n if (!isLogin) {\n return <>\n <LoginModal methods={methods} isOpen={loginOpen} onClose={() => setLoginOpen(false)}/>\n <Button className={'matchid-unlogin-btn'} {...props} highlight onClick={() => setLoginOpen(true)}>\n <UnLoginIcon/>\n <span>Login</span>\n </Button>\n </>\n }\n return loginRender ? loginRender() :\n <Button onClick={onLoginClick} className={'matchid-login-btn'} {...props}>\n <LoginIcon/>\n <span>{username ? truncateAddress(username) : 'MatchID User'}</span>\n </Button>\n\n}","import {LoginPanelProps} from \"types/types\";\nimport LoginBox from \"../LoginBox\";\nimport {CloseRoundIcon} from \"assets/icon\";\n\nexport default function LoginPanel({\n\n header,\n onClose,\n ...props\n }: LoginPanelProps) {\n return <div className=\"matchid-login-panel\">\n {header ? header : <div className=\"matchid-login-panel-header\">\n <div className=\"matchid-login-panel-header-content\">\n <div className=\"matchid-login-panel-header-title\">Log in / Sign up</div>\n <div className=\"matchid-login-panel-header-subtilte\">You can use the following methods</div>\n </div>\n {\n onClose && <div className={\"matchid-login-panel-header-close\"} onClick={onClose}><CloseRoundIcon/></div>\n }\n\n </div>}\n <div className=\"matchid-login-panel-divide\"/>\n <LoginBox {...props}/>\n </div>\n\n}\n","import Modal from \"components/Modal\";\nimport LoginPanel from \"../LoginPanel\";\nimport {LoginModalProps} from \"../../types/types\";\nimport {useUserInfo} from \"../../hooks\";\n\nexport default function LoginModal({\n isOpen = false,\n width = 480,\n ...props\n }: LoginModalProps) {\n const {isLogin} = useUserInfo()\n return <Modal\n isOpen={isOpen && !isLogin}\n width={width}\n >\n <LoginPanel {...props} inModal/>\n </Modal>\n}","import {ModalWithHeaderProps} from \"types/types\";\nimport {ModalWithHeader} from \"../Modal\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport {isValidUsername} from \"../../utils\";\nimport Input from \"../Input\";\nimport Field from \"../Field\";\nimport Button from \"../Button\";\nimport InfoRoundIcon from \"../../assets/icon/InfoRoundIcon\";\nimport {useUserInfo} from \"../../hooks\";\nimport CheckRoundIcon from \"../../assets/icon/CheckRoundIcon\";\nimport {setUserNameApi} from \"../../api\";\nimport {isSuccess} from \"../../api/request\";\n\nconst ValidItem = ({\n success = false,\n text\n }: {\n success?: boolean,\n text: string\n}) => {\n return <div className={`matchid-valid-status-item matchid-valid-status-${success ? 'success' : 'error'}`}>\n\n {success ? <CheckRoundIcon size={16}/> : <InfoRoundIcon size={16}/>}\n <span>\n {text}\n </span>\n </div>\n}\n\nexport default function UsernameModal({\n title,\n isOpen,\n onSuccess,\n ...props\n }: ModalWithHeaderProps & {\n onSuccess?: () => void\n}) {\n const {username, refreshOverview} = useUserInfo()\n const {isLogin} = useUserInfo()\n const [val, setVal] = useState(username)\n const [error, setError] = useState('')//error from api\n\n useEffect(() => {\n if (isOpen) {\n setVal(username)\n setError('')\n }\n }, [isOpen]);\n\n const isValid = useMemo(() => {\n return isValidUsername(val)\n }, [val])\n\n const isLength = useMemo(() => {\n return val.length >= 2 && val.length <= 32\n }, [val])\n\n const isSafe = isValid && isLength\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onSubmit = async () => {\n if (isSubmitting) return\n try {\n setIsSubmitting(true)\n const res = await setUserNameApi({\n username: val\n })\n\n if (isSuccess(res)) {\n await refreshOverview()\n onSuccess && onSuccess()\n } else {\n setError(res.message)\n }\n\n } catch (error: any) {\n setError(error.message)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n\n return <ModalWithHeader isOpen={isOpen && isLogin} {...props} title={title || 'Set User Name'}>\n <div className=\"matchid-username-box\">\n <Field label=\"User Name\" error={error}>\n <Input\n placeholder={\"Enter Your User Name\"}\n onChange={e => {\n setVal(e.target.value)\n setError('')\n }}\n value={val}\n />\n </Field>\n <div className=\"matchid-valid\">\n <ValidItem success={isValid}\n text={\"Name can be composed of numbers and letters as well as characters\"}/>\n <ValidItem success={isLength} text={\"No less than 2 characters\"}/>\n {/*<ValidItem success={isSafe} text={\"Cannot contain sensitive words\"}/>*/}\n </div>\n\n <Button disabled={!isSafe} loading={isSubmitting} style={{\n marginTop: \"64px\"\n }} onClick={onSubmit} size={\"lg\"} block highlight>Confirm</Button>\n <Button style={{\n marginTop: \"24px\"\n }} onClick={props.onClose} size={\"lg\"} block>Next Time</Button>\n </div>\n </ModalWithHeader>\n}","import {IconProps} from \"../../types/types\";\n\nexport default function InfoRoundIcon({\n size,\n color='#6E6E6E',\n ...props\n }:Omit<IconProps, 'width'|'height'>) {\n return <svg width={size} height={size} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_418_7746)\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M7.99984 0.666504C3.94975 0.666504 0.666504 3.94975 0.666504 7.99984C0.666504 12.0499 3.94975 15.3332 7.99984 15.3332C12.0499 15.3332 15.3332 12.0499 15.3332 7.99984C15.3332 3.94975 12.0499 0.666504 7.99984 0.666504ZM1.99984 7.99984C1.99984 4.68613 4.68613 1.99984 7.99984 1.99984C11.3135 1.99984 13.9998 4.68613 13.9998 7.99984C13.9998 11.3135 11.3135 13.9998 7.99984 13.9998C4.68613 13.9998 1.99984 11.3135 1.99984 7.99984ZM8.6665 7.33317C8.6665 6.96498 8.36803 6.6665 7.99984 6.6665C7.63165 6.6665 7.33317 6.96498 7.33317 7.33317V11.3332C7.33317 11.7014 7.63165 11.9998 7.99984 11.9998C8.36803 11.9998 8.6665 11.7014 8.6665 11.3332V7.33317ZM7.99984 5.33317C8.36803 5.33317 8.6665 5.03469 8.6665 4.6665C8.6665 4.29831 8.36803 3.99984 7.99984 3.99984C7.63165 3.99984 7.33317 4.29831 7.33317 4.6665C7.33317 5.03469 7.63165 5.33317 7.99984 5.33317Z\"\n fill={color}/>\n </g>\n <defs>\n <clipPath id=\"clip0_418_7746\">\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n\n}"],"mappings":"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","names":["import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","axios","import_react","import_react","import_zustand","import_jsx_runtime","error","import_react","import_jsx_runtime","error","import_jsx_runtime","import_jsx_runtime","import_react","token","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","error"]}