@orderly.network/ui-connector 2.0.1-preview.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","accountState","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","account","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","ChainSelectorId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n cn,\n Divider,\n Flex,\n Input,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\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\n const { state: accountState } = 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: \"Sign In\",\n description: \"Confirm you are the owner of this wallet\",\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: \"Enable Trading\",\n description:\n \"Enable secure access to our API for lightning fast trading\",\n });\n }\n\n return steps;\n }, []);\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 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 toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n console.log(\"state\", state);\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n Your previous access has expired, you will receive a signature request\n to enable trading. Signing is free and will not send a transaction.\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 width={\"45%\"}>\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 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 Sign In\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n Enable Trading\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n return (\n <TextField\n placeholder=\"Referral code (Optional)\"\n fullWidth\n // label={\"Referral code (optional)\"}\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={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\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 showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: \"Remember me\",\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n Toggle this option to skip these steps next time you want to trade.\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={\n \"Toggle this option to skip these steps next time you want to trade.\"\n }\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 Remember me\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 = \"Something went wrong\";\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 = \"User rejected the request.\";\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\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\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: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: \"Connect wallet\",\n});\n","import {\n useAccount,\n useCheckReferralCode,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\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(\"Wallet connected\");\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(\n \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n );\n }\n\n const { exist } = await verifyRefCode();\n \n\n if (exist === false) {\n return Promise.resolve(\"This referral code does not exist.\");\n }\n\n return Promise.resolve(undefined);\n };\n\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\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 { ChainSelectorId, ChainSelectorSheetId } from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\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 = AccountStatusEnum.EnableTrading,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n const labels = { ...LABELS, ...props.labels };\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) {\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 />\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 value={state.status >= status && !wrongNetwork} left={Left}>\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\n descriptions?: alertMessages;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n // const { connect } = useWalletConnector();\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(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorId, {\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(\"Wallet connected\");\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork) {\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) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={\"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\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","export type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport const LABELS = {\n connectWallet: \"Connect wallet\",\n switchChain: \"Wrong network\",\n enableTrading: \"Enable trading\",\n signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n connectWallet: \"Please Connect wallet before starting to trade\",\n switchChain: \"Please switch to a supported network to continue\",\n enableTrading: \"Please Enable trading before starting to trade\",\n signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\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 = AccountStatusEnum.EnableTrading,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const data = useDataTap(dataSource, {\n accountStatus: status,\n });\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={\n wrongNetwork || state.status < status || props.ignoreLoadingCheck\n }\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 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 { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n /** default value is\n * ```ts\n * {\n * connectWallet: \"Please connect wallet before starting to trade\",\n * signIn: \"Please sign in before starting to trade\",\n * enableTrading: \"Please sign in before starting to trade\",\n * wrongNetwork: \"Please switch to a supported network to continue.\",\n * }\n * ```\n */\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 {\n hint = {\n connectWallet: \"Please connect wallet before starting to trade\",\n signIn: \"Please sign in before starting to trade\",\n enableTrading: \"Please sign in before starting to trade\",\n wrongNetwork: \"Please switch to a supported network to continue.\",\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { 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 { PropsWithChildren, useMemo } from \"react\";\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 {\n opactiy = 90,\n tooltip = {\n connectWallet: \"Please connect wallet before set up\",\n signIn: \"Please sign in before set up\",\n enableTrading: \"Please enable trading before set up\",\n wrongNetwork: \"Please switch to a supported network to set up\",\n },\n } = props;\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 if (!isSupport) return tooltip?.wrongNetwork;\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 if (!isSupport) return opactiy;\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\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/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","accountState","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","account","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","ChainSelectorId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n cn,\n Divider,\n Flex,\n Input,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\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\n const { state: accountState } = 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: \"Sign In\",\n description: \"Confirm you are the owner of this wallet\",\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: \"Enable Trading\",\n description:\n \"Enable secure access to our API for lightning fast trading\",\n });\n }\n\n return steps;\n }, []);\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 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 toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n console.log(\"state\", state);\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n Your previous access has expired, you will receive a signature request\n to enable trading. Signing is free and will not send a transaction.\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 width={\"45%\"}>\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 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 Sign In\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n Enable Trading\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n return (\n <TextField\n placeholder=\"Referral code (Optional)\"\n fullWidth\n // label={\"Referral code (optional)\"}\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={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\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 showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: \"Remember me\",\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n Toggle this option to skip these steps next time you want to trade.\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={\n \"Toggle this option to skip these steps next time you want to trade.\"\n }\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 Remember me\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 = \"Something went wrong\";\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 = \"User rejected the request.\";\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\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\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: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: \"Connect wallet\",\n});\n","import {\n useAccount,\n useCheckReferralCode,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\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(\"Wallet connected\");\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(\n \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n );\n }\n\n const { exist } = await verifyRefCode();\n \n\n if (exist === false) {\n return Promise.resolve(\"This referral code does not exist.\");\n }\n\n return Promise.resolve(undefined);\n };\n\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\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 ChainSelectorId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\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 = AccountStatusEnum.EnableTrading,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n const labels = { ...LABELS, ...props.labels };\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) {\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 />\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 value={state.status >= status && !wrongNetwork} left={Left}>\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}) => {\n const { buttonProps, labels, descriptions } = props;\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\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(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorId, {\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(\"Wallet connected\");\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork) {\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) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={\"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\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","export type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport const LABELS = {\n connectWallet: \"Connect wallet\",\n switchChain: \"Wrong network\",\n enableTrading: \"Enable trading\",\n signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n connectWallet: \"Please Connect wallet before starting to trade\",\n switchChain: \"Please switch to a supported network to continue\",\n enableTrading: \"Please Enable trading before starting to trade\",\n signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\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 = AccountStatusEnum.EnableTrading,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const data = useDataTap(dataSource, {\n accountStatus: status,\n });\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={\n wrongNetwork || state.status < status || props.ignoreLoadingCheck\n }\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 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 { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n /** default value is\n * ```ts\n * {\n * connectWallet: \"Please connect wallet before starting to trade\",\n * signIn: \"Please sign in before starting to trade\",\n * enableTrading: \"Please sign in before starting to trade\",\n * wrongNetwork: \"Please switch to a supported network to continue.\",\n * }\n * ```\n */\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 {\n hint = {\n connectWallet: \"Please connect wallet before starting to trade\",\n signIn: \"Please sign in before starting to trade\",\n enableTrading: \"Please sign in before starting to trade\",\n wrongNetwork: \"Please switch to a supported network to continue.\",\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { 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 { PropsWithChildren, useMemo } from \"react\";\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 {\n opactiy = 90,\n tooltip = {\n connectWallet: \"Please connect wallet before set up\",\n signIn: \"Please sign in before set up\",\n enableTrading: \"Please enable trading before set up\",\n wrongNetwork: \"Please switch to a supported network to set up\",\n },\n } = props;\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 if (!isSupport) return tooltip?.wrongNetwork;\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 if (!isSupport) return opactiy;\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\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 +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/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","accountState","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","account","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","ChainSelectorId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n cn,\n Divider,\n Flex,\n Input,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\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\n const { state: accountState } = 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: \"Sign In\",\n description: \"Confirm you are the owner of this wallet\",\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: \"Enable Trading\",\n description:\n \"Enable secure access to our API for lightning fast trading\",\n });\n }\n\n return steps;\n }, []);\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 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 toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n console.log(\"state\", state);\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n Your previous access has expired, you will receive a signature request\n to enable trading. Signing is free and will not send a transaction.\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 width={\"45%\"}>\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 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 Sign In\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n Enable Trading\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n return (\n <TextField\n placeholder=\"Referral code (Optional)\"\n fullWidth\n // label={\"Referral code (optional)\"}\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={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\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 showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: \"Remember me\",\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n Toggle this option to skip these steps next time you want to trade.\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={\n \"Toggle this option to skip these steps next time you want to trade.\"\n }\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 Remember me\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 = \"Something went wrong\";\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 = \"User rejected the request.\";\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\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\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: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: \"Connect wallet\",\n});\n","import {\n useAccount,\n useCheckReferralCode,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\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(\"Wallet connected\");\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(\n \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n );\n }\n\n const { exist } = await verifyRefCode();\n \n\n if (exist === false) {\n return Promise.resolve(\"This referral code does not exist.\");\n }\n\n return Promise.resolve(undefined);\n };\n\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\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 { ChainSelectorId, ChainSelectorSheetId } from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\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 = AccountStatusEnum.EnableTrading,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n const labels = { ...LABELS, ...props.labels };\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) {\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 />\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 value={state.status >= status && !wrongNetwork} left={Left}>\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\n descriptions?: alertMessages;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n // const { connect } = useWalletConnector();\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(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorId, {\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(\"Wallet connected\");\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork) {\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) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={\"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\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","export type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport const LABELS = {\n connectWallet: \"Connect wallet\",\n switchChain: \"Wrong network\",\n enableTrading: \"Enable trading\",\n signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n connectWallet: \"Please Connect wallet before starting to trade\",\n switchChain: \"Please switch to a supported network to continue\",\n enableTrading: \"Please Enable trading before starting to trade\",\n signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\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 = AccountStatusEnum.EnableTrading,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const data = useDataTap(dataSource, {\n accountStatus: status,\n });\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={\n wrongNetwork || state.status < status || props.ignoreLoadingCheck\n }\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 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 { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n /** default value is\n * ```ts\n * {\n * connectWallet: \"Please connect wallet before starting to trade\",\n * signIn: \"Please sign in before starting to trade\",\n * enableTrading: \"Please sign in before starting to trade\",\n * wrongNetwork: \"Please switch to a supported network to continue.\",\n * }\n * ```\n */\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 {\n hint = {\n connectWallet: \"Please connect wallet before starting to trade\",\n signIn: \"Please sign in before starting to trade\",\n enableTrading: \"Please sign in before starting to trade\",\n wrongNetwork: \"Please switch to a supported network to continue.\",\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { 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 { PropsWithChildren, useMemo } from \"react\";\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 {\n opactiy = 90,\n tooltip = {\n connectWallet: \"Please connect wallet before set up\",\n signIn: \"Please sign in before set up\",\n enableTrading: \"Please enable trading before set up\",\n wrongNetwork: \"Please switch to a supported network to set up\",\n },\n } = props;\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 if (!isSupport) return tooltip?.wrongNetwork;\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 if (!isSupport) return opactiy;\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\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/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","accountState","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","account","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","ChainSelectorId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n cn,\n Divider,\n Flex,\n Input,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\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\n const { state: accountState } = 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: \"Sign In\",\n description: \"Confirm you are the owner of this wallet\",\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: \"Enable Trading\",\n description:\n \"Enable secure access to our API for lightning fast trading\",\n });\n }\n\n return steps;\n }, []);\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 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 toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n console.log(\"state\", state);\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n Your previous access has expired, you will receive a signature request\n to enable trading. Signing is free and will not send a transaction.\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 width={\"45%\"}>\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 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 Sign In\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n Enable Trading\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n return (\n <TextField\n placeholder=\"Referral code (Optional)\"\n fullWidth\n // label={\"Referral code (optional)\"}\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={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\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 showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: \"Remember me\",\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n Toggle this option to skip these steps next time you want to trade.\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={\n \"Toggle this option to skip these steps next time you want to trade.\"\n }\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 Remember me\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 = \"Something went wrong\";\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 = \"User rejected the request.\";\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\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\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: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: \"Connect wallet\",\n});\n","import {\n useAccount,\n useCheckReferralCode,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\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(\"Wallet connected\");\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(\n \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n );\n }\n\n const { exist } = await verifyRefCode();\n \n\n if (exist === false) {\n return Promise.resolve(\"This referral code does not exist.\");\n }\n\n return Promise.resolve(undefined);\n };\n\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\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 ChainSelectorId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\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 = AccountStatusEnum.EnableTrading,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n const labels = { ...LABELS, ...props.labels };\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) {\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 />\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 value={state.status >= status && !wrongNetwork} left={Left}>\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}) => {\n const { buttonProps, labels, descriptions } = props;\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\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(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorId, {\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(\"Wallet connected\");\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork) {\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) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={\"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\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","export type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport const LABELS = {\n connectWallet: \"Connect wallet\",\n switchChain: \"Wrong network\",\n enableTrading: \"Enable trading\",\n signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n connectWallet: \"Please Connect wallet before starting to trade\",\n switchChain: \"Please switch to a supported network to continue\",\n enableTrading: \"Please Enable trading before starting to trade\",\n signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\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 = AccountStatusEnum.EnableTrading,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const data = useDataTap(dataSource, {\n accountStatus: status,\n });\n const { state } = useAccount();\n const { wrongNetwork } = useAppContext();\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={\n wrongNetwork || state.status < status || props.ignoreLoadingCheck\n }\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 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 { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n /** default value is\n * ```ts\n * {\n * connectWallet: \"Please connect wallet before starting to trade\",\n * signIn: \"Please sign in before starting to trade\",\n * enableTrading: \"Please sign in before starting to trade\",\n * wrongNetwork: \"Please switch to a supported network to continue.\",\n * }\n * ```\n */\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 {\n hint = {\n connectWallet: \"Please connect wallet before starting to trade\",\n signIn: \"Please sign in before starting to trade\",\n enableTrading: \"Please sign in before starting to trade\",\n wrongNetwork: \"Please switch to a supported network to continue.\",\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { 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 { PropsWithChildren, useMemo } from \"react\";\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 {\n opactiy = 90,\n tooltip = {\n connectWallet: \"Please connect wallet before set up\",\n signIn: \"Please sign in before set up\",\n enableTrading: \"Please enable trading before set up\",\n wrongNetwork: \"Please switch to a supported network to set up\",\n },\n } = props;\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 if (!isSupport) return tooltip?.wrongNetwork;\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 if (!isSupport) return opactiy;\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orderly.network/ui-connector",
3
- "version": "2.0.1-preview.3",
3
+ "version": "2.0.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -17,11 +17,11 @@
17
17
  "access": "public"
18
18
  },
19
19
  "dependencies": {
20
- "@orderly.network/types": "2.0.1-preview.3",
21
- "@orderly.network/hooks": "2.0.1-preview.3",
22
- "@orderly.network/react-app": "2.0.1-preview.3",
23
- "@orderly.network/ui": "2.0.1-preview.3",
24
- "@orderly.network/ui-chain-selector": "2.0.1-preview.3"
20
+ "@orderly.network/hooks": "2.0.1",
21
+ "@orderly.network/types": "2.0.1",
22
+ "@orderly.network/ui-chain-selector": "2.0.1",
23
+ "@orderly.network/ui": "2.0.1",
24
+ "@orderly.network/react-app": "2.0.1"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/react": "^18.3.2",
@@ -35,7 +35,7 @@
35
35
  "peerDependencies": {
36
36
  "react": ">=18",
37
37
  "react-dom": ">=18",
38
- "@orderly.network/ui": "2.0.1-preview.3"
38
+ "@orderly.network/ui": "2.0.1"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsup && pnpm run build:css",