@orderly.network/ui-connector 2.1.3 → 2.2.0
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 +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -8
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","useAccount","useEventEmitter","useLocalStorage","i18n","useTranslation","AccountStatusEnum","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","WalletConnectContent","initAccountState","remember","setRemember","ee","t","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","value","char","showRememberHint","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.signIn\"),\n description: t(\"connector.signIn.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box className=\"oui-min-w-[144px]\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n const { t } = useTranslation();\n\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.signIn\")}\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n }\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.signIn.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.signIn.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.signIn.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","useAccount","useEventEmitter","useLocalStorage","i18n","useTranslation","AccountStatusEnum","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","WalletConnectContent","initAccountState","remember","setRemember","ee","t","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","value","char","showRememberHint","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","useAppContext","MEDIA_TABLET","Either","useScreen","ChainSelectorDialogId","ChainSelectorSheetId","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.signIn\"),\n description: t(\"connector.signIn.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box className=\"oui-min-w-[144px]\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n const { t } = useTranslation();\n\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.signIn\")}\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error),\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error),\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n },\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.signIn.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.signIn.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.signIn.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","useAccount","useEventEmitter","useLocalStorage","i18n","useTranslation","AccountStatusEnum","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","WalletConnectContent","initAccountState","remember","setRemember","ee","t","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","value","char","showRememberHint","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.signIn\"),\n description: t(\"connector.signIn.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box className=\"oui-min-w-[144px]\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n const { t } = useTranslation();\n\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.signIn\")}\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n }\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.signIn.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.signIn.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.signIn.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","useAccount","useEventEmitter","useLocalStorage","i18n","useTranslation","AccountStatusEnum","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","WalletConnectContent","initAccountState","remember","setRemember","ee","t","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","value","char","showRememberHint","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","useAppContext","MEDIA_TABLET","Either","useScreen","ChainSelectorDialogId","ChainSelectorSheetId","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"AAAA,OAAa,aAAAA,EAAW,WAAAC,GAAS,YAAAC,MAAgB,QACjD,OACE,cAAAC,GACA,mBAAAC,GACA,mBAAAC,OACK,yBACP,OAAS,QAAAC,EAAM,kBAAAC,MAAsB,wBACrC,OAAS,qBAAAC,MAAyB,yBAClC,OACE,OAAAC,EACA,UAAAC,EACA,yBAAAC,GACA,WAAAC,GACA,QAAAC,EACA,kBAAAC,EACA,SAAAC,GACA,SAAAC,GACA,UAAAC,GACA,QAAAC,EACA,aAAAC,GACA,SAAAC,EACA,WAAAC,OACK,sBCrBP,OACE,OAAAZ,EACA,yBAAAa,GACA,MAAAC,GACA,SAAAR,GACA,WAAAS,GACA,QAAAN,MACK,sBAiBD,OACE,OAAAO,EADF,QAAAC,MAAA,oBAPC,IAAMC,EAAYC,GAAyB,CAChD,GAAM,CAAE,MAAAC,EAAO,YAAAC,CAAY,EAAIF,EAI/B,OACEF,EAACjB,EAAA,CAAI,SAAS,WAAW,UAAU,WACjC,UAAAiB,EAACjB,EAAA,CACC,UAAAgB,EAACP,EAAA,CAAK,GAAG,MAAM,UAAW,GAAI,KAAM,KACjC,SAAAW,EACH,EACAJ,EAACP,EAAA,CAAK,GAAG,MAAM,UAAW,GAAI,KAAM,MACjC,SAAAY,EACH,GACF,EACAL,EAACM,GAAA,CAAY,GAAGH,EAAO,GACzB,CAEJ,EAEMG,GAAcH,GAId,CACJ,GAAM,CAAE,OAAAI,EAAQ,UAAAC,EAAW,YAAAC,CAAY,EAAIN,EAE3C,OACEH,EAACV,GAAA,CACC,UAAW,6CACX,MAAO,IACDmB,EACK,YAELD,EACK,UAGLD,EACK,SAGF,SAET,KAAM,CACJ,QACEP,EAAC,OACC,SAAAA,EAACD,GAAA,CAAQ,KAAM,KAAM,UAAW,WAAY,EAC9C,EAEF,UACEC,EAAC,OACC,SAAAA,EAACH,GAAA,CAAsB,QAAS,EAAG,UAAU,mBAAmB,EAClE,CAEJ,EACA,QAASG,EAACU,GAAA,CAAI,OAAQ,CAAC,CAACH,EAAQ,EAClC,CAEJ,EAEMG,GAAmD,CAAC,CACxD,OAAAH,EACA,UAAAI,CACF,IAEIX,EAAC,OACC,UAAWF,GACT,iEACAa,EACAJ,EAAS,uBAAyB,eACpC,EACF,EDuEE,cAAAP,EAGA,QAAAC,MAHA,oBA3HC,IAAMW,EAAwBT,GAAqC,CACxE,GAAM,CAAE,iBAAAU,EAAmB9B,EAAkB,YAAa,EAAIoB,EACxD,CAACW,EAAUC,CAAW,EAAItC,EAAS,EAAI,EACvCuC,EAAKrC,GAAgB,EACrB,CAAE,EAAAsC,CAAE,EAAInC,EAAe,EAEvB,CAAE,MAAOoC,EAAc,QAAAC,CAAQ,EAAIzC,GAAW,EAC9C,CAAC0C,EAAOC,CAAQ,EAAI5C,EAASoC,CAAgB,EAC7C,CAACS,EAAYC,CAAa,EAAI9C,EAAS,CAAC,EACxC,CAAC+C,EAASC,CAAU,EAAIhD,EAAS,EAAK,EACtC,CAACiD,CAAe,EAAI9C,GACxB,6CACA,MACF,EACAL,EAAU,IACD,IAAM,CACX,aAAa,QAAQ,6CAA8C,GAAG,CACxE,EACC,CAAC,CAAC,EAELA,EAAU,IAAM,CACd8C,EAASH,EAAa,MAAM,CAC9B,EAAG,CAACA,CAAY,CAAC,EAEjB,IAAMS,EAAQnD,GAAQ,IAAM,CAC1B,IAAMmD,EAAQ,CAAC,EACf,OAAId,EAAmB9B,EAAkB,UACvC4C,EAAM,KAAK,CACT,IAAK,SACL,MAAOV,EAAE,kBAAkB,EAC3B,YAAaA,EAAE,8BAA8B,CAC/C,CAAC,EAGCJ,EAAmB9B,EAAkB,eACvC4C,EAAM,KAAK,CACT,IAAK,gBACL,MAAOV,EAAE,yBAAyB,EAClC,YAAaA,EAAE,qCAAqC,CACtD,CAAC,EAGIU,CACT,EAAG,CAACd,EAAkBI,CAAC,CAAC,EAElBW,EAAkB,KACtBH,EAAW,EAAI,EACRtB,EACJ,cAAcW,CAAQ,EACtB,KACC,MAAOe,GAAQ,CAEbJ,EAAW,EAAK,EAChBF,EAAeO,GAASA,EAAO,CAAC,EAChC,GAAI,CACF,MAAM3B,EAAM,wBAAwB,CACtC,MAAY,CAAC,CACT,OAAOA,EAAM,aAAgB,WAC/BA,EAAM,YAAY,EACT,OAAOA,EAAM,OAAU,YAChCA,EAAM,MAAM,CAGhB,EACC4B,GAAW,CAEV,GADAN,EAAW,EAAK,EACZM,IAAW,GAEf,IACEA,EAAO,QAAQ,QACb,6DACF,IAAM,GACN,CACAf,EAAG,KAAK,wCAAyC,CAC/C,QAASe,EAAO,QAChB,YAAaZ,EAAQ,OACvB,CAAC,EACD,MACF,CACAxB,EAAM,MAAMqC,EAAaD,CAAM,CAAC,EAClC,CACF,EACC,MAAOE,GAAM,CAEZR,EAAW,EAAK,CAClB,CAAC,GAGCS,EAAW,KACfT,EAAW,EAAI,EACRtB,EACJ,OAAO,EACP,KACE0B,GAAQ,CACPN,EAAeO,GAASA,EAAO,CAAC,EAChCF,EAAgB,CAClB,EACCG,GAAW,CAGV,GAFAN,EAAW,EAAK,EAEZM,IAAW,GACf,IACEA,EAAO,QAAQ,QACb,6DACF,IAAM,GACN,CACAf,EAAG,KAAK,wCAAyC,CAC/C,QAASe,EAAO,QAChB,YAAaZ,EAAQ,OACvB,CAAC,EACD,MACF,CAEAxB,EAAM,MAAMqC,EAAaD,CAAM,CAAC,EAClC,CACF,EACC,MAAOE,GAAM,CACZR,EAAW,EAAK,CAClB,CAAC,GAGL,OACExB,EAACjB,EAAA,CAAI,GAAG,oCAAoC,UAAU,oBACpD,UAAAgB,EAACP,EAAA,CAAK,UAAW,GAAI,KAAK,KACvB,SAAAwB,EAAE,mBAAmB,EACxB,EACAhB,EAACjB,EAAA,CACC,EAAG,EACH,GAAI,EACJ,UAAW,IACX,EAAE,KACF,UAAU,gBACV,SAAU,WAET,UAAA2C,EAAM,IAAI,CAACG,EAAMK,IAEdnC,EAACE,EAAA,CACC,MAAO4B,EAAK,MACZ,YAAaA,EAAK,YAClB,YAAaR,EAAaa,EAE1B,OAAQb,IAAea,EACvB,UAAWX,GAAWF,IAAea,GAFhCL,EAAK,GAGZ,CAEH,EACAH,EAAM,OAAS,GACd3B,EAAChB,EAAA,CACC,SAAU,WACV,OAAQ,OACR,KAAM,GACN,IAAK,GACL,OAAQ,EAER,SAAAgB,EAACb,GAAA,CACC,UAAW,SACX,UAAW,WACX,UAAW,GACX,UAAU,aACZ,EACF,GAEJ,EACCgB,EAAM,kBAAoBwB,EAAM,QAAU,GACzC3B,EAACoC,GAAA,CAAc,GAAGjC,EAAO,EAE1BuB,GACCzB,EAACb,EAAA,CAAK,QAAS,UAAW,UAAW,SACnC,UAAAY,EAACqC,GAAA,EAAW,EACZrC,EAACR,GAAA,CACC,MAAO,UACP,QAASsB,EACT,gBAAiBC,EACjB,SAAUS,EACV,UAAU,6CACZ,GACF,EAEFxB,EAACZ,EAAA,CAAK,QAAS,SAAU,GAAI,EAC3B,SAAAY,EAAChB,EAAA,CAAI,UAAU,oBACb,SAAAgB,EAACsC,GAAA,CACC,MAAOlB,EACP,OAAQc,EACR,cAAeN,EACf,QAASJ,EACT,SAAUJ,GAASrC,EAAkB,cACvC,EACF,EACF,GACF,CAEJ,EAEMuD,GAMD,CAAC,CAAE,MAAAlB,EAAO,OAAAmB,EAAQ,cAAAC,EAAe,QAAAhB,EAAS,SAAAiB,CAAS,IAAM,CAC5D,GAAM,CAAE,EAAAxB,CAAE,EAAInC,EAAe,EAE7B,OACEkB,EAACV,GAAA,CACC,MAAO,IACD8B,GAASrC,EAAkB,YACtB,SAEF,gBAET,KAAM,CACJ,OACEiB,EAACf,EAAA,CACC,UAAS,GACT,QAAS,IAAMsD,EAAO,EACtB,QAASf,EACT,SAAUiB,EAET,SAAAxB,EAAE,kBAAkB,EACvB,EAEF,cACEjB,EAACf,EAAA,CACC,UAAS,GACT,QAAS,IAAMuD,EAAc,EAC7B,QAAShB,EACT,SAAUiB,EAET,SAAAxB,EAAE,yBAAyB,EAC9B,CAEJ,EACF,CAEJ,EAEMmB,GAA+CjC,GAAU,CAC7D,GAAM,CAAE,CAAE,EAAIrB,EAAe,EAE7B,OACEkB,EAACN,GAAA,CACC,YAAa,EAAE,oCAAoC,EACnD,UAAS,GACT,MAAM,GACN,MAAOS,EAAM,QACb,SAAW8B,GAAM,CACf9B,EAAM,WAAW8B,EAAE,OAAO,KAAK,CACjC,EACA,WAAY,CACV,MAAO,wCACP,MAAO,+DACT,EACA,WAAY,CACV5C,EAAe,0BAA2BqD,GACjC,OAAOA,CAAK,EAAE,QAAQ,SAAWC,GACtCA,EAAK,YAAY,CACnB,CACD,EACDtD,EAAe,0BAA0B,YAAY,CACvD,EACA,QAAS,IAAM,CACbc,EAAM,WAAW,EAAE,CACrB,EACA,aAAa,MACb,SAAUA,EAAM,SAChB,UAAU,WACV,MAAOA,EAAM,SAAW,SAAW,OACrC,CAEJ,EAEMkC,GAAa,IAAM,CACvB,GAAM,CAAE,EAAApB,CAAE,EAAInC,EAAe,EAEvB8D,EAAmB,IAAM,CACzB,OAAO,WAAa,KACxBrD,GAAM,MAAM,CACV,MAAO0B,EAAE,sBAAsB,EAC/B,QACEjB,EAAC,QAAK,UAAU,yCACb,SAAAiB,EAAE,kCAAkC,EACvC,CAEJ,CAAC,CACH,EACA,OACEjB,EAACJ,GAAA,CACC,QAASqB,EAAE,kCAAkC,EAC7C,UAAU,oBAEV,SAAAjB,EAAC,UAAO,QAAS4C,EACf,SAAA5C,EAACP,EAAA,CACC,UAAW,GACX,KAAM,KACN,UACE,6FAGD,SAAAwB,EAAE,sBAAsB,EAC3B,EACF,EACF,CAEJ,EAEA,SAASe,EAAaD,EAAqB,CAGzC,OAAO,KAAKA,CAAM,EAAE,QAASc,GAAQ,CAErC,CAAC,EACD,IAAIC,EAAMjE,EAAK,EAAE,8BAA8B,EAU/C,OAAIkD,EAAO,SAAS,EAAE,SAAS,UAAU,IACvCe,EAAMjE,EAAK,EAAE,wBAAwB,GAGhCK,GAAsB4D,CAAG,GAAKA,CACvC,CE5WA,OAAS,wBAAAC,GAAsB,uBAAAC,OAA2B,sBCA1D,OAAS,aAAAzE,GAAW,YAAAE,OAAgB,QACpC,OACE,cAAAC,GACA,sBAAAuE,GACA,gBAAAC,GACA,eAAAC,OACK,yBACP,OAAS,SAAAxD,OAAa,sBACtB,OAAS,kBAAAb,OAAsB,wBAExB,IAAMsE,EAA4B,IAAM,CAC7C,GAAM,CAAE,QAAAjC,EAAS,MAAAC,EAAO,iBAAAiC,EAAkB,cAAAC,CAAc,EAAI5E,GAAW,EACjE,CAAC6E,EAASC,CAAU,EAAI/E,GAAS,EAAE,EACnC,CAACgF,EAAUC,CAAW,EAAIjF,GAAS,EAAE,EACrC,CAAE,EAAAwC,CAAE,EAAInC,GAAe,EAEvB,CAAE,QAAS6E,CAAc,EAAIT,GACjC,qDAAqDK,CAAO,EAC9D,EAEAhF,GAAU,IAAM,CACd,IAAMgF,EAAU,aAAa,QAAQ,eAAe,EAChDA,GAAW,MACbC,EAAWD,CAAO,CAEtB,EAAG,CAAC,CAAC,EAEL,GAAM,CAAE,cAAAK,EAAe,UAAApD,CAAU,EAAIyC,GAAmB9B,EAAQ,SAAS,EAEnE,CAAC0C,EAAa,CAAE,MAAOC,EAAkB,WAAYC,CAAe,CAAC,EACzEZ,GAAY,oBAAqB,MAAM,EAEzC5E,GAAU,IAAM,CACVgF,EAAQ,SAAW,GACrBG,EAAY,EAAE,CAElB,EAAG,CAACH,CAAO,CAAC,EAEZ,IAAMS,EAAwB,IAAM,CAClCrE,GAAM,QAAQsB,EAAE,2BAA2B,CAAC,EAExCsC,EAAQ,QAAU,GAAKA,EAAQ,QAAU,IAC3CM,EAAY,CAAE,cAAeN,CAAQ,CAAC,EAAE,QAAQ,IAAM,CACpD,aAAa,WAAW,eAAe,CACzC,CAAC,CACL,EAEMU,EAAe,SAAyC,CAC5D,GAAIV,EAAQ,SAAW,EAAG,OAAO,QAAQ,QAAQ,MAAS,EAE1D,GAAIA,EAAQ,OAAS,IAAMA,EAAQ,OAAS,GAAKA,EAAQ,OAAS,IAChE,OAAO,QAAQ,QAAQtC,EAAE,gCAAgC,CAAC,EAG5D,GAAM,CAAE,MAAAiD,CAAM,EAAI,MAAMP,EAAc,EAEtC,OAAIO,IAAU,GACL,QAAQ,QAAQjD,EAAE,iCAAiC,CAAC,EAGtD,QAAQ,QAAQ,MAAS,CAClC,EAEMkD,GAAoBP,GAAe,QAAU,KAAO,GAAK,CAACpD,EAE1D+B,EAAS,SAAY,CACzB,GAAI4B,EAAkB,CACpB,IAAMC,EAAO,MAAMH,EAAa,EAChC,GAAI,OAAOG,EAAS,IAClB,OAAAV,EAAYU,CAAI,EACT,QAAQ,OAAO,EAAE,CAE5B,CACA,OAAAV,EAAY,EAAE,EACPJ,EAAc,CACvB,EAcA,MAAO,CACL,cAboB,MAAOxC,GAAsB,CACjD,GAAIqD,EAAkB,CACpB,IAAMC,EAAO,MAAMH,EAAa,EAChC,GAAI,OAAOG,EAAS,IAClB,OAAAV,EAAYU,CAAI,EACT,QAAQ,OAAO,EAAE,CAE5B,CACA,OAAAV,EAAY,EAAE,EACPL,EAAiBvC,CAAQ,CAClC,EAIE,iBAAkBM,EAAM,OACxB,OAAAmB,EACA,sBAAAyB,EACA,QAAAT,EACA,WAAAC,EACA,SAAAC,EACA,iBAAAU,CACF,CACF,EDhGA,OAAS,QAAAtF,OAAY,wBAOZ,cAAAmB,OAAA,oBALF,IAAMqE,EAAyB,kBACzBC,EAAyB,uBAEzBC,EAAyBpE,GAAe,CACnD,IAAMiB,EAAQgC,EAA0B,EACxC,OAAOpD,GAACY,EAAA,CAAsB,GAAGQ,EAAQ,GAAGjB,EAAO,CACrD,EAEA4C,GAAqBsB,EAAwBE,EAAuB,CAClE,KAAM,KACN,MAAO,IAAM1F,GAAK,EAAE,yBAAyB,CAC/C,CAAC,EAEDmE,GAAoBsB,EAAwBC,EAAuB,CACjE,MAAO,IAAM1F,GAAK,EAAE,yBAAyB,CAC/C,CAAC,EEpBD,OAA0C,WAAAL,OAAe,QACzD,OAAS,cAAAE,GAAY,iBAAA8F,OAAqB,yBAC1C,OAAS,kBAAA1F,OAAsB,wBAC/B,OAAS,iBAAA2F,OAAqB,6BAC9B,OACE,qBAAA1F,EACA,gBAAA2F,OAEK,yBACP,OACE,UAAAzF,GACA,UAAA0F,GACA,SAAArF,GACA,SAAAC,GACA,QAAAE,GACA,SAAAE,GACA,aAAAiF,OAEK,sBACP,OAAS,QAAAxF,OAAY,sBACrB,OAAS,OAAAJ,OAAW,sBACpB,OACE,yBAAA6F,GACA,wBAAAC,OACK,qCAqGC,cAAA9E,EAqMJ,QAAAC,OArMI,oBAnDR,IAAM8E,EAAa5E,GAA6C,CAC9D,GAAM,CACJ,OAAA6E,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EACA,WAAAC,EACA,UAAAC,EACA,GAAAC,EACA,eAAAC,CAEF,EAAIpF,EACE,CAAE,EAAAc,CAAE,EAAInC,GAAe,EACvB,CAAE,MAAAsC,CAAM,EAAI1C,GAAW,EACvB,CAAE,aAAA8G,EAAc,gBAAAC,CAAgB,EAAIhB,GAAc,EAElDiB,EAAUlH,GAAQ,IAClBwG,IAAW,OACN5D,EAAM,SAAWrC,EAAkB,8BACtCA,EAAkB,8BAClBA,EAAkB,cAEjBiG,EACN,CAACA,EAAQ5D,EAAM,MAAM,CAAC,EAEnBuE,EAAS,CACb,cAAe1E,EAAE,yBAAyB,EAC1C,YAAaA,EAAE,wBAAwB,EACvC,cAAeA,EAAE,yBAAyB,EAC1C,OAAQA,EAAE,kBAAkB,EAC5B,GAAGd,EAAM,MACX,EASMyF,EAAOpH,GAAsB,IAC7B,OAAO0G,EAAa,IACfA,EAAS,CACd,WAAY9D,EAAM,WAClB,OAAQA,EAAM,OACd,aAAAoE,CACF,CAAC,EAGCpE,EAAM,YAAc,CAACqE,EAErBzF,EAAC6F,EAAA,CAEC,MAAO,GAEP,SAAQ,GACR,QAAO,GACP,YAAaV,GAAc,cAC3B,GAAIG,EACJ,KAAK,SACJ,GAAGL,EAEH,SAAAU,EAAO,cACV,EAKF3F,EAAC8F,GAAA,CACC,eAAgBP,EAChB,OAAQnE,EAAM,OACd,YAAa,CAAE,GAAG6D,EAAa,GAAAK,EAAI,KAAM,QAAS,EAClD,aAAcE,EACd,UAAWrF,EAAM,UACjB,OAAQwF,EACR,aAAcR,EACd,gBAAiBM,EACnB,EAED,CAACrE,EAAM,OAAQA,EAAM,WAAY6D,EAAaO,CAAY,CAAC,EAM9D,OACExF,EAAC2E,GAAA,CACC,MAAOvD,EAAM,QAAUsE,GAAW,CAACF,GAAgB,CAACC,EACpD,KAAMG,EAEL,SAAAzF,EAAM,SACT,CAEJ,EAEM2F,GAAmB3F,GASnB,CACJ,GAAM,CAAE,YAAA8E,EAAa,OAAAU,EAAQ,aAAAR,CAAa,EAAIhF,EACxC,CAAE,EAAAc,CAAE,EAAInC,GAAe,EACvB,CAAE,cAAAiH,CAAc,EAAItB,GAAc,EAClC,CAAE,QAAAtD,CAAQ,EAAIzC,GAAW,EACzB,CAAE,SAAAsH,CAAS,EAAIpB,GAAU,EACzBqB,EAAUzB,GAAcE,EAAY,EAEpCwB,EAAmB,IAAM,CAC7B3G,GAAM,KAAK0G,EAAU3B,EAAyBD,CAAsB,EAAE,KACnE8B,GAAG,GACHC,GAAO,EACV,CACF,EAEMC,EAAkB,SAAY,CAClC,IAAMxE,EAAM,MAAMkE,EAAc,EAE3BlE,IAEDA,EAAI,aACNyE,EAAY,GAGTzE,GAAK,QAAU9C,EAAkB,cAClCA,EAAkB,eAElBmH,EAAiB,EAGvB,EAEMI,EAAc,IAAM,CACxBnF,EAAQ,KAAK,eAAiB6D,GAAW,CACnCA,EAASjG,EAAkB,cAC7BmH,EAAiB,EAEjBvG,GAAM,QAAQsB,EAAE,2BAA2B,CAAC,CAEhD,CAAC,EAED1B,GACG,KAEEyG,EAAWlB,GAAuBD,GAAuB,CAC1D,UAAW1E,EAAM,UACjB,eAAgBA,EAAM,cACxB,CAAC,EACA,KACEgG,GAAM,CACAA,EAAE,cACDhG,EAAM,QAAUpB,EAAkB,YAChCoB,EAAM,OAASpB,EAAkB,cACnCmH,EAAiB,EAEjBvG,GAAM,QAAQsB,EAAE,2BAA2B,CAAC,EAIpD,EACCmF,GAAO,EACV,CACJ,EAEA,OAAIjG,EAAM,cAAgB,CAACA,EAAM,gBAE7BH,EAAC6F,EAAA,CACC,MAAM,UAGN,QAAS,IAAM,CACbS,EAAY,CACd,EACA,YAAanB,GAAc,YAC1B,GAAGF,EAEH,SAAAU,EAAO,YACV,EAKF3F,EAACV,GAAA,CACC,MAAOa,EAAM,OACb,KAAOuC,GAA6B,CAClC,GAAIA,GAAS3D,EAAkB,cAAgBoB,EAAM,gBACnD,OACEH,EAAC6F,EAAA,CACC,KAAK,KACL,QAAS,IAAM,CACbQ,EAAgB,CAClB,EAEA,QAASlG,EAAM,gBAAkB,OAAY,WAC7C,MAAO,GACP,YAAagF,GAAc,cAC3B,SAAUhF,EAAM,gBACf,GAAG8E,EAEH,SAAAU,EAAO,cACV,EAGJ,GAAIjD,GAAS3D,EAAkB,YAC7B,OACEiB,EAAC6F,EAAA,CACC,KAAK,KACL,QAAS,IAAM,CACbK,EAAiB,CACnB,EAEA,MAAO,GACP,YAAaf,GAAc,OAC1B,GAAGF,EAEH,SAAAU,EAAO,OACV,CAGN,EACA,QACE3F,EAAC6F,EAAA,CACC,KAAK,KAEL,YAAaV,GAAc,cAC1B,GAAGF,EACJ,QAAS,IAAMiB,EAAiB,EAE/B,SAAAP,EAAO,cACV,EAEJ,CAEJ,EAEAZ,EAAU,YAAc,YAExB,IAAMc,EACJ1F,GAGG,CACH,GAAM,CAAE,YAAAE,EAAa,GAAG4E,CAAY,EAAI9E,EACxC,OACEF,GAACb,GAAA,CAAK,UAAW,SACf,UAAAY,EAACf,GAAA,CAAQ,GAAGgG,EAAa,EACxB,CAAC,CAAC5E,GACDL,EAAChB,GAAA,CAAI,GAAI,EAAG,UAAU,mBAAmB,MAAO,CAAE,WAAY,CAAE,EAC9D,SAAAgB,EAACP,GAAA,CAAK,KAAK,MAAM,UAAW,GACzB,SAAAY,EACH,EACF,GAEJ,CAEJ,EC7UA,OAA4B,WAAA7B,OAAe,QAC3C,OACE,yBAAA+H,GACA,iBAAAC,GACA,aAAAC,OAEK,sBACP,OAAS,qBAAA1H,MAAyB,yBAClC,OAAS,iBAAA0F,GAAe,cAAAiC,OAAkB,6BAC1C,OAAS,QAAAtH,OAAY,sBAErB,OAAS,cAAAV,OAAkB,yBAC3B,OAAS,kBAAAI,OAAsB,wBAgDvB,cAAAkB,MAAA,oBA9CD,IAAM2G,GACXxG,GASG,CACH,GAAM,CACJ,OAAA6E,EAEA,OAAAW,EACA,YAAAtF,EACA,WAAAuG,EACA,GAAGC,CACL,EAAI1G,EACE,CAAE,MAAAiB,CAAM,EAAI1C,GAAW,EACvB,CAAE,aAAA8G,EAAc,gBAAAC,CAAgB,EAAIhB,GAAc,EAElDiB,EAAUlH,GAAQ,IAClBwG,IAAW,OACN5D,EAAM,SAAWrC,EAAkB,8BACtCA,EAAkB,8BAClBA,EAAkB,cAEjBiG,EACN,CAACA,EAAQ5D,EAAM,MAAM,CAAC,EAEnB0F,EAAOJ,GAAWE,EAAY,CAClC,cAAelB,CACjB,CAAC,EAEKqB,EACJvB,GACAC,GACArE,EAAM,OAASsE,GACfvF,EAAM,mBAER,OACEH,EAACyG,GAAA,CACC,WAAYK,EACZ,mBAAoBC,EACpB,UACE/G,EAACgH,GAAA,CACC,OAAQtB,EACR,YAAarF,EACb,OAAQsF,EACR,UAAWxF,EAAM,YAAY,qBAC7B,QAAS,CAACiB,EAAM,WAClB,EAEF,iBAAgB,GACf,GAAGyF,EACN,CAEJ,EAUMG,GAAa7G,GAA0B,CAC3C,GAAM,CAAE,CAAE,EAAIrB,GAAe,EASvBqG,EAAe,CAAE,GAPa,CAClC,cAAe,EAAE,uCAAuC,EACxD,YAAa,EAAE,gCAAgC,EAC/C,cAAe,EAAE,uCAAuC,EACxD,OAAQ,EAAE,gCAAgC,CAC5C,EAEwC,GAAGhF,EAAM,WAAY,EAC7D,OAAKA,EAAM,QAETH,EAACZ,GAAA,CAAK,GAAI,EACR,SAAAY,EAAC+E,EAAA,CACC,OAAQ5E,EAAM,OACd,OAAQA,EAAM,OACd,aAAcgF,EACd,YAAa,CACX,KAAM,IACR,EAEA,SAAAnF,EAACwG,GAAA,CAAc,SAAUD,GAAsB,oBAAqB,EACtE,EACF,EAbyB,IAe7B,EC1GA,OAAS,OAAAvH,GAAK,kBAAAiI,OAAsB,sBAEpC,OAAS,kBAAAnI,OAAsB,wBA8BJ,cAAAkB,MAAA,oBAlB3B,IAAMkH,GAAkB/G,GAA6C,CACnE,GAAM,CAAE,CAAE,EAAIrB,GAAe,EACvB,CACJ,KAAAqI,EAAO,CACL,cAAe,EAAE,uCAAuC,EACxD,OAAQ,EAAE,gCAAgC,EAC1C,cAAe,EAAE,uCAAuC,EACxD,aAAc,EAAE,gCAAgC,CAClD,EACA,OAAAnC,CACF,EAAI7E,EAEJ,OACEH,EAAChB,GAAA,CAAI,GAAI,EACP,SAAAgB,EAAC+E,EAAA,CACC,OAAQC,EACR,aAAc,CAAE,GAAGmC,EAAM,YAAaA,EAAK,YAAa,EAEvD,SAAAhH,EAAM,UAAYH,EAACiH,GAAA,EAAe,EACrC,EACF,CAEJ,EAEAC,GAAe,YAAc,iBCxC7B,OAA4B,WAAA1I,GAAS,YAAAC,OAAgB,QACrD,OAAS,cAAAC,OAAkB,yBAC3B,OAAS,iBAAA+F,OAAqB,6BAC9B,OAAS,qBAAA1F,MAAyB,yBAClC,OAAS,WAAAa,OAAe,sBACxB,OAAS,kBAAAd,OAAsB,wBA8EzB,cAAAkB,OAAA,oBA7DN,IAAMoH,GAAoBjH,GAA6C,CACrE,GAAM,CAAE,CAAE,EAAIrB,GAAe,EAEvB,CACJ,QAAAuI,EAAU,GACV,QAAAC,EAAU,CACR,cAAe,EAAE,uCAAuC,EACxD,OAAQ,EAAE,gCAAgC,EAC1C,cAAe,EAAE,uCAAuC,EACxD,aAAc,EAAE,gCAAgC,CAClD,CACF,EAAInH,EAEE,CAACoH,EAAMC,CAAO,EAAI/I,GAAS,EAAK,EAChC,CAAE,MAAA2C,CAAM,EAAI1C,GAAW,EACvB+I,EAAY,GACZ,CAAE,aAAAjC,CAAa,EAAIf,GAAc,EAEjC0C,EAAO3I,GAAQ,IAAM,CACzB,GAAIgH,EACF,OAAO8B,GAAS,aAElB,OAAQlG,EAAM,OAAQ,CACpB,KAAKrC,EAAkB,aACrB,OAAOuI,GAAS,cAClB,KAAKvI,EAAkB,YACrB,OAAOuI,GAAS,OAClB,KAAKvI,EAAkB,gBACrB,OAAOuI,GAAS,cAClB,KAAKvI,EAAkB,cACrB,MAAO,GAET,QACE,OAAOoB,EAAM,OACjB,CACF,EAAG,CAACA,EAAM,QAASiB,EAAOqG,EAAWH,CAAO,CAAC,EAEvCI,EAAalJ,GAAQ,IAAM,CAC/B,OAAQ4C,EAAM,OAAQ,CACpB,KAAKrC,EAAkB,aACvB,KAAKA,EAAkB,YACrB,OAAOsI,EACT,KAAKtI,EAAkB,cACrB,OAEF,QACE,MACJ,CACF,EAAG,CAACoB,EAAM,QAASiB,EAAOqG,CAAS,CAAC,EAEpC,OACEzH,GAACJ,GAAA,CACC,KAAMuH,EAAOI,EAAO,GACpB,aAAcC,EACd,QAASL,EACT,UAAU,eACV,MAAOhH,EAAM,MACb,YAAaA,EAAM,YACnB,KAAMA,EAAM,KACZ,WAAYA,EAAM,WAElB,SAAAH,GAAC,OACC,MAAO,CACL,QAAS0H,CACX,EAEC,SAAAvH,EAAM,SACT,EACF,CAEJ,EAEAiH,GAAiB,YAAc","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.signIn\"),\n description: t(\"connector.signIn.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box className=\"oui-min-w-[144px]\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n const { t } = useTranslation();\n\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.signIn\")}\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error),\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error),\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n },\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.signIn.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.signIn.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.signIn.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.oui-absolute{position:absolute}.oui-left-0{left:0}.oui-top-1{top:.25rem}.oui-z-10{z-index:10}.oui-mb-4{margin-bottom:1rem}.oui-ml-1{margin-left:.25rem}.oui-ml-2{margin-left:.5rem}.oui-mt-1{margin-top:.25rem}.oui-h-\[8\.3px\]{height:8.3px}.oui-h-full{height:100%}.oui-w-\[8\.3px\]{width:8.3px}.oui-min-w-\[144px\]{min-width:144px}.oui-max-w-\[300px\]{max-width:300px}.oui-space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.oui-rounded-full{border-radius:var(--oui-rounded-full,9999px)}.oui-bg-base-2{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-2)/var(--tw-bg-opacity))}.oui-bg-primary-light{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-primary-light)/var(--tw-bg-opacity))}.oui-pl-8{padding-left:2rem}.oui-text-2xs{font-size:var(--oui-font-size-2xs,.75rem);line-height:1.125rem}.oui-text-xs{font-size:var(--oui-font-size-xs,calc(.875rem - 1px));line-height:1.25rem}.oui-font-semibold{font-weight:600}.oui-leading-none{line-height:1}.oui-text-base-contrast-54{color:rgb(var(--oui-color-base-foreground)/.54)}.oui-text-base-contrast\/60{color:rgb(var(--oui-color-base-foreground)/.6)}.oui-text-primary{--tw-text-opacity:1;color:rgb(var(--oui-color-primary)/var(--tw-text-opacity))}.oui-underline{text-decoration-line:underline}.oui-decoration-base-contrast-36{text-decoration-color:rgb(var(--oui-color-base-foreground)/.36)}.oui-decoration-dashed{text-decoration-style:dashed}.oui-underline-offset-4{text-underline-offset:4px}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.placeholder\:oui-text-sm::-moz-placeholder{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.placeholder\:oui-text-sm::placeholder{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.placeholder\:oui-text-base-contrast-20::-moz-placeholder{color:rgb(var(--oui-color-base-foreground)/.2)}.placeholder\:oui-text-base-contrast-20::placeholder{color:rgb(var(--oui-color-base-foreground)/.2)}.data-\[state\=checked\]\:oui-bg-primary-darken[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-primary-darken)/var(--tw-bg-opacity))}
|
|
1
|
+
.oui-absolute{position:absolute}.oui-left-0{left:0}.oui-top-1{top:.25rem}.oui-z-10{z-index:10}.oui-mb-4{margin-bottom:1rem}.oui-ml-1{margin-left:.25rem}.oui-ml-2{margin-left:.5rem}.oui-mt-1{margin-top:.25rem}.oui-h-\[8\.3px\]{height:8.3px}.oui-h-full{height:100%}.oui-w-\[8\.3px\]{width:8.3px}.oui-min-w-\[144px\]{min-width:144px}.oui-max-w-\[300px\]{max-width:300px}.oui-space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.oui-rounded-full{border-radius:var(--oui-rounded-full,9999px)}.oui-bg-base-2{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-2)/var(--tw-bg-opacity,1))}.oui-bg-primary-light{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-primary-light)/var(--tw-bg-opacity,1))}.oui-pl-8{padding-left:2rem}.oui-text-2xs{font-size:var(--oui-font-size-2xs,.75rem);line-height:1.125rem}.oui-text-xs{font-size:var(--oui-font-size-xs,calc(.875rem - 1px));line-height:1.25rem}.oui-font-semibold{font-weight:600}.oui-leading-none{line-height:1}.oui-text-base-contrast-54{color:rgb(var(--oui-color-base-foreground)/.54)}.oui-text-base-contrast\/60{color:rgb(var(--oui-color-base-foreground)/.6)}.oui-text-primary{--tw-text-opacity:1;color:rgb(var(--oui-color-primary)/var(--tw-text-opacity,1))}.oui-underline{text-decoration-line:underline}.oui-decoration-base-contrast-36{text-decoration-color:rgb(var(--oui-color-base-foreground)/.36)}.oui-decoration-dashed{text-decoration-style:dashed}.oui-underline-offset-4{text-underline-offset:4px}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.placeholder\:oui-text-sm::-moz-placeholder{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.placeholder\:oui-text-sm::placeholder{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.placeholder\:oui-text-base-contrast-20::-moz-placeholder{color:rgb(var(--oui-color-base-foreground)/.2)}.placeholder\:oui-text-base-contrast-20::placeholder{color:rgb(var(--oui-color-base-foreground)/.2)}.data-\[state\=checked\]\:oui-bg-primary-darken[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-primary-darken)/var(--tw-bg-opacity,1))}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orderly.network/ui-connector",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@orderly.network/i18n": "2.
|
|
21
|
-
"@orderly.network/
|
|
22
|
-
"@orderly.network/
|
|
23
|
-
"@orderly.network/types": "2.
|
|
24
|
-
"@orderly.network/react-app": "2.
|
|
25
|
-
"@orderly.network/ui-chain-selector": "2.
|
|
20
|
+
"@orderly.network/i18n": "2.2.0",
|
|
21
|
+
"@orderly.network/hooks": "2.2.0",
|
|
22
|
+
"@orderly.network/ui": "2.2.0",
|
|
23
|
+
"@orderly.network/types": "2.2.0",
|
|
24
|
+
"@orderly.network/react-app": "2.2.0",
|
|
25
|
+
"@orderly.network/ui-chain-selector": "2.2.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/react": "^18.3.2",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"react-dom": "^18.2.0",
|
|
32
32
|
"tailwindcss": "^3.4.4",
|
|
33
33
|
"tsup": "^7.3.0",
|
|
34
|
-
"tsconfig": "0.
|
|
34
|
+
"tsconfig": "0.5.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"react": ">=18",
|