@orderly.network/ui-connector 2.8.14 → 2.9.0-alpha.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 CHANGED
@@ -431,7 +431,7 @@ function paseErrorMsg(reject) {
431
431
  return ui.capitalizeFirstLetter(msg) ?? msg;
432
432
  }
433
433
  var useWalletConnectorBuilder = () => {
434
- const { account, state, createOrderlyKey, createAccount } = hooks.useAccount();
434
+ const { state, createOrderlyKey, createAccount } = hooks.useAccount();
435
435
  const [refCode, setRefCode] = react.useState("");
436
436
  const [helpText, setHelpText] = react.useState("");
437
437
  const { t } = i18n.useTranslation();
@@ -444,7 +444,7 @@ var useWalletConnectorBuilder = () => {
444
444
  setRefCode(refCode2);
445
445
  }
446
446
  }, []);
447
- const { referral_code, isLoading } = hooks.useGetReferralCode(account.accountId);
447
+ const { referral_code, isLoading } = hooks.useGetReferralCode(state.accountId);
448
448
  const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] = hooks.useMutation("/v1/referral/bind", "POST");
449
449
  react.useEffect(() => {
450
450
  if (refCode.length === 0) {
@@ -595,7 +595,14 @@ var AuthGuard = (props) => {
595
595
  disabledConnect
596
596
  }
597
597
  );
598
- }, [state.status, state.validating, buttonProps, wrongNetwork]);
598
+ }, [
599
+ state.status,
600
+ state.validating,
601
+ buttonProps,
602
+ wrongNetwork,
603
+ labels,
604
+ descriptions
605
+ ]);
599
606
  return /* @__PURE__ */ jsxRuntime.jsx(
600
607
  ui.Either,
601
608
  {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/step.tsx","../src/component/walletConnectorContent.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/walletConnector.tsx","../src/component/useAuthGuard.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx","../src/hooks/useAuthStatus.tsx"],"names":["jsxs","Box","jsx","Text","Divider","Spinner","CheckedCircleFillIcon","cn","AccountStatusEnum","useState","useEventEmitter","useTranslation","useWalletConnector","useAccount","useStorageLedgerAddress","useRef","useLocalStorage","useEffect","useMemo","steps","ChainNamespace","toast","Flex","Switch","Button","TextField","inputFormatter","modal","Tooltip","i18n","capitalizeFirstLetter","useLazyQuery","refCode","useGetReferralCode","useMutation","registerSimpleDialog","registerSimpleSheet","useAppContext","Either","useScreen","useMediaQuery","MEDIA_TABLET","ChainSelectorSheetId","ChainSelectorDialogId","useDataTap","DataTable","ExtensionSlot","ExtensionPositionEnum","EmptyDataState","AuthStatusEnum"],"mappings":"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","file":"index.js","sourcesContent":["import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Divider,\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 showDivider?: boolean;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description, showDivider } = props;\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 <div className=\"oui-absolute oui-left-0 oui-top-1 oui-z-10\">\n <Identifier {...props} />\n </div>\n {showDivider && (\n <Box position={\"absolute\"} left={12} top={23} bottom={-21} zIndex={0}>\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\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 if (isLoading) {\n return <Spinner size={\"sm\"} className={\"oui-ml-1\"} />;\n }\n\n if (isCompleted) {\n return <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />;\n }\n\n return <Dot active={!!active} />;\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 { FC, ReactNode, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport {\n AccountStatusEnum,\n ChainNamespace,\n LedgerWalletKey,\n} from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n const { disconnect, namespace } = useWalletConnector();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [showLedgerButton, setShowLedgerButton] = useState(false);\n const { ledgerWallet, setLedgerAddress } = useStorageLedgerAddress();\n const handleRef = useRef(0);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.createAccount\"),\n description: t(\"connector.createAccount.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n useEffect(() => {\n if (namespace != ChainNamespace.solana) {\n setShowLedgerButton(false);\n return;\n }\n if (!ledgerWallet) {\n setShowLedgerButton(true);\n return;\n }\n if (ledgerWallet && account.address) {\n if (!ledgerWallet.includes(account.address)) {\n setShowLedgerButton(true);\n return;\n }\n }\n setShowLedgerButton(false);\n }, [namespace, account.address, ledgerWallet]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n handleRef.current++;\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) {\n return;\n }\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onDisconnect = async () => {\n localStorage.removeItem(\"orderly_link_device\");\n disconnect({\n label: (state as unknown as any).connectWallet?.name,\n }).then(() => {\n account.disconnect();\n if (typeof props.close === \"function\") {\n props.close();\n }\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) {\n return;\n }\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n const isLast = index === steps.length - 1;\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 showDivider={!isLast}\n />\n );\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} className=\"oui-w-full\">\n <Box className=\"oui-w-full\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n showLedgerButton={showLedgerButton}\n />\n </Box>\n </Flex>\n {state > AccountStatusEnum.NotConnected && (\n <Flex\n justify={\"center\"}\n mt={4}\n gap={1}\n className=\"oui-w-full oui-cursor-pointer\"\n onClick={onDisconnect}\n >\n <DisconnectIcon />\n <Text className=\"oui-text-base-contrast-80 oui-text-sm\">\n {t(\"connector.disconnectWallet\")}\n </Text>\n </Flex>\n )}\n </Box>\n );\n};\n\nconst DisconnectIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n d=\"M2.24219 5.24316C2.24219 3.58641 3.58536 2.24316 5.24219 2.24316H8.24219C9.89894 2.24316 11.2422 3.58641 11.2422 5.24316C11.2422 5.65716 10.9062 5.99316 10.4922 5.99316C10.0782 5.99316 9.74219 5.65716 9.74219 5.24316C9.74219 4.41441 9.07094 3.74316 8.24219 3.74316H5.24219C4.41374 3.74316 3.74219 4.41441 3.74219 5.24316V12.7432C3.74219 13.5719 4.41374 14.2432 5.24219 14.2432H8.24219C9.07094 14.2432 9.74219 13.5719 9.74219 12.7432C9.74219 12.3292 10.0782 11.9932 10.4922 11.9932C10.9062 11.9932 11.2422 12.3292 11.2422 12.7432C11.2422 14.3999 9.89894 15.7432 8.24219 15.7432H5.24219C3.58536 15.7432 2.24219 14.3999 2.24219 12.7432V5.24316ZM7.49219 8.99316C7.49219 8.57916 7.82819 8.24316 8.24219 8.24316H13.9144L12.4377 6.74316L13.4922 5.68866L16.2814 8.45391C16.5739 8.74716 16.5739 9.23915 16.2814 9.5324L13.4922 12.2977L12.4377 11.2432L13.9144 9.74316H8.24219C7.82819 9.74316 7.49219 9.40716 7.49219 8.99316Z\"\n fill=\"white\"\n fillOpacity=\"0.8\"\n />\n </svg>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n showLedgerButton?: boolean;\n disabled?: boolean;\n}> = ({\n state,\n signIn,\n enableTrading,\n loading,\n disabled,\n showLedgerButton,\n}) => {\n const { t } = useTranslation();\n\n if (state <= AccountStatusEnum.NotSignedIn) {\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.createAccount\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => signIn()}\n content={t(\"connector.createAccountWithLedger\")}\n />\n )}\n </Flex>\n );\n }\n\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => enableTrading()}\n disabled={disabled}\n content={t(\"connector.enableTradingWithLedger\")}\n />\n )}\n </Flex>\n );\n\n // return (\n // <Match\n // value={() => {\n // if (state <= AccountStatusEnum.NotSignedIn) {\n // return \"signIn\";\n // }\n // return \"enableTrading\";\n // }}\n // case={{\n // signIn: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => signIn()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.createAccount\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => signIn()}\n // content={t(\"connector.createAccountWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // enableTrading: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => enableTrading()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.enableTrading\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => enableTrading()}\n // disabled={disabled}\n // content={t(\"connector.enableTradingWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // }}\n // />\n // );\n};\n\nconst WithLedgerButton = ({\n onClick,\n disabled,\n content,\n}: {\n onClick: () => void;\n disabled?: boolean;\n content: ReactNode;\n}) => {\n const { t } = useTranslation();\n const { state } = useAccount();\n const address = state.address;\n const { setLedgerAddress } = useStorageLedgerAddress();\n if (!address) {\n return null;\n }\n return (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n fullWidth\n onClick={() => {\n setLedgerAddress(address);\n onClick();\n }}\n disabled={disabled}\n className=\"oui-w-full\"\n >\n {content}\n </Button>\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n const _value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, \"\");\n props.setRefCode(_value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) {\n return;\n }\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`,\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async () => {\n if (refCode.length === 0) {\n return Promise.resolve(undefined);\n }\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\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: React.FC<any> = (props) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\n/**\n * Hook to check if the user is authenticated and authorized\n * @param status - Required account status to be satisfied. If not provided, defaults to EnableTrading or EnableTradingWithoutConnected based on current state\n * @returns boolean indicating if the user meets the authentication requirements\n */\nexport const useAuthGuard = (status?: AccountStatusEnum): boolean => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n return useMemo(() => {\n return state.status >= _status && !wrongNetwork && !disabledConnect;\n }, [state.status, _status, wrongNetwork, disabledConnect]);\n};\n","import React, { ReactElement, useMemo } from \"react\";\nimport { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nexport const AuthGuard: React.FC<React.PropsWithChildren<AuthGuardProps>> = (\n props,\n) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.createAccount\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst ModalTitle: React.FC = () => {\n const { t } = useTranslation();\n const { state } = useAccount();\n if (state.status < AccountStatusEnum.SignedIn) {\n return <Text>{t(\"connector.createAccount\")}</Text>;\n }\n if (state.status < AccountStatusEnum.EnableTrading) {\n return <Text>{t(\"connector.enableTrading\")}</Text>;\n }\n return <Text>{t(\"connector.connectWallet\")}</Text>;\n};\n\nconst DefaultFallback: React.FC<{\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}> = (props) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal\n .show(matches ? WalletConnectorSheetId : WalletConnectorModalId, {\n title: <ModalTitle />,\n })\n .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) {\n return;\n }\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{ wrongNetwork: boolean }>(\n isMobile ? ChainSelectorSheetId : ChainSelectorDialogId,\n {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n },\n )\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error),\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n if (props.status <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n if (props.status <= 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 return (\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 // return (\n // <Match\n // value={props.status}\n // case={(value: AccountStatusEnum) => {\n // if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectWallet();\n // }}\n // // fullWidth\n // variant={props.disabledConnect ? undefined : \"gradient\"}\n // angle={45}\n // description={descriptions?.connectWallet}\n // disabled={props.disabledConnect}\n // {...buttonProps}\n // >\n // {labels.connectWallet}\n // </StatusInfo>\n // );\n // }\n // if (value <= AccountStatusEnum.NotSignedIn) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectOrderly();\n // }}\n // // fullWidth\n // angle={45}\n // description={descriptions?.signin}\n // {...buttonProps}\n // >\n // {labels.signin}\n // </StatusInfo>\n // );\n // }\n // }}\n // default={\n // <StatusInfo\n // size=\"lg\"\n // // fullWidth\n // description={descriptions?.enableTrading}\n // {...buttonProps}\n // onClick={() => onConnectOrderly()}\n // >\n // {labels.enableTrading}\n // </StatusInfo>\n // }\n // />\n // );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo: React.FC<ButtonProps & { description?: string }> = (\n props,\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","import React, { PropsWithChildren, useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\n\nexport const AuthGuardDataTable = <RecordType,>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >,\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n children,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n >\n {children}\n </DataTable>\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView: React.FC<GuardViewProps> = (props) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.createAccount.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) {\n return null;\n }\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 React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nexport const AuthGuardEmpty: React.FC<\n React.PropsWithChildren<AuthGuardProps>\n> = (props) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.createAccount.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n buttonProps={{\n size: \"md\",\n }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.createAccount.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div style={{ opacity: newOpacity }}>{props.children}</div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\nexport enum AuthStatusEnum {\n WrongNetwork,\n ConnectWallet,\n CreateAccount,\n EnableTrading,\n}\n\nexport const useAuthStatus = () => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n return useMemo(() => {\n if (wrongNetwork && !disabledConnect) {\n return AuthStatusEnum.WrongNetwork;\n }\n\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return AuthStatusEnum.EnableTrading;\n }\n\n if (state.status <= AccountStatusEnum.NotConnected || disabledConnect) {\n return AuthStatusEnum.ConnectWallet;\n }\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return AuthStatusEnum.CreateAccount;\n }\n\n return AuthStatusEnum.EnableTrading;\n }, [state.status, wrongNetwork, disabledConnect]);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/step.tsx","../src/component/walletConnectorContent.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/walletConnector.tsx","../src/component/useAuthGuard.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx","../src/hooks/useAuthStatus.tsx"],"names":["jsxs","Box","jsx","Text","Divider","Spinner","CheckedCircleFillIcon","cn","AccountStatusEnum","useState","useEventEmitter","useTranslation","useWalletConnector","useAccount","useStorageLedgerAddress","useRef","useLocalStorage","useEffect","useMemo","steps","ChainNamespace","toast","Flex","Switch","Button","TextField","inputFormatter","modal","Tooltip","i18n","capitalizeFirstLetter","useLazyQuery","refCode","useGetReferralCode","useMutation","registerSimpleDialog","registerSimpleSheet","useAppContext","Either","useScreen","useMediaQuery","MEDIA_TABLET","ChainSelectorSheetId","ChainSelectorDialogId","useDataTap","DataTable","ExtensionSlot","ExtensionPositionEnum","EmptyDataState","AuthStatusEnum"],"mappings":"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","file":"index.js","sourcesContent":["import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Divider,\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 showDivider?: boolean;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description, showDivider } = props;\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 <div className=\"oui-absolute oui-left-0 oui-top-1 oui-z-10\">\n <Identifier {...props} />\n </div>\n {showDivider && (\n <Box position={\"absolute\"} left={12} top={23} bottom={-21} zIndex={0}>\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\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 if (isLoading) {\n return <Spinner size={\"sm\"} className={\"oui-ml-1\"} />;\n }\n\n if (isCompleted) {\n return <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />;\n }\n\n return <Dot active={!!active} />;\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 { FC, ReactNode, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport {\n AccountStatusEnum,\n ChainNamespace,\n LedgerWalletKey,\n} from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n const { disconnect, namespace } = useWalletConnector();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [showLedgerButton, setShowLedgerButton] = useState(false);\n const { ledgerWallet, setLedgerAddress } = useStorageLedgerAddress();\n const handleRef = useRef(0);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.createAccount\"),\n description: t(\"connector.createAccount.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n useEffect(() => {\n if (namespace != ChainNamespace.solana) {\n setShowLedgerButton(false);\n return;\n }\n if (!ledgerWallet) {\n setShowLedgerButton(true);\n return;\n }\n if (ledgerWallet && account.address) {\n if (!ledgerWallet.includes(account.address)) {\n setShowLedgerButton(true);\n return;\n }\n }\n setShowLedgerButton(false);\n }, [namespace, account.address, ledgerWallet]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n handleRef.current++;\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) {\n return;\n }\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onDisconnect = async () => {\n localStorage.removeItem(\"orderly_link_device\");\n disconnect({\n label: (state as unknown as any).connectWallet?.name,\n }).then(() => {\n account.disconnect();\n if (typeof props.close === \"function\") {\n props.close();\n }\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) {\n return;\n }\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n const isLast = index === steps.length - 1;\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 showDivider={!isLast}\n />\n );\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} className=\"oui-w-full\">\n <Box className=\"oui-w-full\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n showLedgerButton={showLedgerButton}\n />\n </Box>\n </Flex>\n {state > AccountStatusEnum.NotConnected && (\n <Flex\n justify={\"center\"}\n mt={4}\n gap={1}\n className=\"oui-w-full oui-cursor-pointer\"\n onClick={onDisconnect}\n >\n <DisconnectIcon />\n <Text className=\"oui-text-base-contrast-80 oui-text-sm\">\n {t(\"connector.disconnectWallet\")}\n </Text>\n </Flex>\n )}\n </Box>\n );\n};\n\nconst DisconnectIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n d=\"M2.24219 5.24316C2.24219 3.58641 3.58536 2.24316 5.24219 2.24316H8.24219C9.89894 2.24316 11.2422 3.58641 11.2422 5.24316C11.2422 5.65716 10.9062 5.99316 10.4922 5.99316C10.0782 5.99316 9.74219 5.65716 9.74219 5.24316C9.74219 4.41441 9.07094 3.74316 8.24219 3.74316H5.24219C4.41374 3.74316 3.74219 4.41441 3.74219 5.24316V12.7432C3.74219 13.5719 4.41374 14.2432 5.24219 14.2432H8.24219C9.07094 14.2432 9.74219 13.5719 9.74219 12.7432C9.74219 12.3292 10.0782 11.9932 10.4922 11.9932C10.9062 11.9932 11.2422 12.3292 11.2422 12.7432C11.2422 14.3999 9.89894 15.7432 8.24219 15.7432H5.24219C3.58536 15.7432 2.24219 14.3999 2.24219 12.7432V5.24316ZM7.49219 8.99316C7.49219 8.57916 7.82819 8.24316 8.24219 8.24316H13.9144L12.4377 6.74316L13.4922 5.68866L16.2814 8.45391C16.5739 8.74716 16.5739 9.23915 16.2814 9.5324L13.4922 12.2977L12.4377 11.2432L13.9144 9.74316H8.24219C7.82819 9.74316 7.49219 9.40716 7.49219 8.99316Z\"\n fill=\"white\"\n fillOpacity=\"0.8\"\n />\n </svg>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n showLedgerButton?: boolean;\n disabled?: boolean;\n}> = ({\n state,\n signIn,\n enableTrading,\n loading,\n disabled,\n showLedgerButton,\n}) => {\n const { t } = useTranslation();\n\n if (state <= AccountStatusEnum.NotSignedIn) {\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.createAccount\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => signIn()}\n content={t(\"connector.createAccountWithLedger\")}\n />\n )}\n </Flex>\n );\n }\n\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => enableTrading()}\n disabled={disabled}\n content={t(\"connector.enableTradingWithLedger\")}\n />\n )}\n </Flex>\n );\n\n // return (\n // <Match\n // value={() => {\n // if (state <= AccountStatusEnum.NotSignedIn) {\n // return \"signIn\";\n // }\n // return \"enableTrading\";\n // }}\n // case={{\n // signIn: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => signIn()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.createAccount\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => signIn()}\n // content={t(\"connector.createAccountWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // enableTrading: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => enableTrading()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.enableTrading\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => enableTrading()}\n // disabled={disabled}\n // content={t(\"connector.enableTradingWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // }}\n // />\n // );\n};\n\nconst WithLedgerButton = ({\n onClick,\n disabled,\n content,\n}: {\n onClick: () => void;\n disabled?: boolean;\n content: ReactNode;\n}) => {\n const { t } = useTranslation();\n const { state } = useAccount();\n const address = state.address;\n const { setLedgerAddress } = useStorageLedgerAddress();\n if (!address) {\n return null;\n }\n return (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n fullWidth\n onClick={() => {\n setLedgerAddress(address);\n onClick();\n }}\n disabled={disabled}\n className=\"oui-w-full\"\n >\n {content}\n </Button>\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n const _value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, \"\");\n props.setRefCode(_value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) {\n return;\n }\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\n\nexport const useWalletConnectorBuilder = () => {\n const { state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`,\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(state.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async () => {\n if (refCode.length === 0) {\n return Promise.resolve(undefined);\n }\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\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: React.FC<any> = (props) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\n/**\n * Hook to check if the user is authenticated and authorized\n * @param status - Required account status to be satisfied. If not provided, defaults to EnableTrading or EnableTradingWithoutConnected based on current state\n * @returns boolean indicating if the user meets the authentication requirements\n */\nexport const useAuthGuard = (status?: AccountStatusEnum): boolean => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n return useMemo(() => {\n return state.status >= _status && !wrongNetwork && !disabledConnect;\n }, [state.status, _status, wrongNetwork, disabledConnect]);\n};\n","import React, { ReactElement, useMemo } from \"react\";\nimport { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nexport const AuthGuard: React.FC<React.PropsWithChildren<AuthGuardProps>> = (\n props,\n) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.createAccount\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [\n state.status,\n state.validating,\n buttonProps,\n wrongNetwork,\n labels,\n descriptions,\n ]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst ModalTitle: React.FC = () => {\n const { t } = useTranslation();\n const { state } = useAccount();\n if (state.status < AccountStatusEnum.SignedIn) {\n return <Text>{t(\"connector.createAccount\")}</Text>;\n }\n if (state.status < AccountStatusEnum.EnableTrading) {\n return <Text>{t(\"connector.enableTrading\")}</Text>;\n }\n return <Text>{t(\"connector.connectWallet\")}</Text>;\n};\n\nconst DefaultFallback: React.FC<{\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}> = (props) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal\n .show(matches ? WalletConnectorSheetId : WalletConnectorModalId, {\n title: <ModalTitle />,\n })\n .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) {\n return;\n }\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{ wrongNetwork: boolean }>(\n isMobile ? ChainSelectorSheetId : ChainSelectorDialogId,\n {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n },\n )\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error),\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n if (props.status <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n if (props.status <= 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 return (\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 // return (\n // <Match\n // value={props.status}\n // case={(value: AccountStatusEnum) => {\n // if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectWallet();\n // }}\n // // fullWidth\n // variant={props.disabledConnect ? undefined : \"gradient\"}\n // angle={45}\n // description={descriptions?.connectWallet}\n // disabled={props.disabledConnect}\n // {...buttonProps}\n // >\n // {labels.connectWallet}\n // </StatusInfo>\n // );\n // }\n // if (value <= AccountStatusEnum.NotSignedIn) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectOrderly();\n // }}\n // // fullWidth\n // angle={45}\n // description={descriptions?.signin}\n // {...buttonProps}\n // >\n // {labels.signin}\n // </StatusInfo>\n // );\n // }\n // }}\n // default={\n // <StatusInfo\n // size=\"lg\"\n // // fullWidth\n // description={descriptions?.enableTrading}\n // {...buttonProps}\n // onClick={() => onConnectOrderly()}\n // >\n // {labels.enableTrading}\n // </StatusInfo>\n // }\n // />\n // );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo: React.FC<ButtonProps & { description?: string }> = (\n props,\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","import React, { PropsWithChildren, useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\n\nexport const AuthGuardDataTable = <RecordType,>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >,\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n children,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n >\n {children}\n </DataTable>\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView: React.FC<GuardViewProps> = (props) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.createAccount.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) {\n return null;\n }\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 React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nexport const AuthGuardEmpty: React.FC<\n React.PropsWithChildren<AuthGuardProps>\n> = (props) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.createAccount.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n buttonProps={{\n size: \"md\",\n }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.createAccount.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div style={{ opacity: newOpacity }}>{props.children}</div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\nexport enum AuthStatusEnum {\n WrongNetwork,\n ConnectWallet,\n CreateAccount,\n EnableTrading,\n}\n\nexport const useAuthStatus = () => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n return useMemo(() => {\n if (wrongNetwork && !disabledConnect) {\n return AuthStatusEnum.WrongNetwork;\n }\n\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return AuthStatusEnum.EnableTrading;\n }\n\n if (state.status <= AccountStatusEnum.NotConnected || disabledConnect) {\n return AuthStatusEnum.ConnectWallet;\n }\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return AuthStatusEnum.CreateAccount;\n }\n\n return AuthStatusEnum.EnableTrading;\n }, [state.status, wrongNetwork, disabledConnect]);\n};\n"]}
package/dist/index.mjs CHANGED
@@ -429,7 +429,7 @@ function paseErrorMsg(reject) {
429
429
  return capitalizeFirstLetter(msg) ?? msg;
430
430
  }
431
431
  var useWalletConnectorBuilder = () => {
432
- const { account, state, createOrderlyKey, createAccount } = useAccount();
432
+ const { state, createOrderlyKey, createAccount } = useAccount();
433
433
  const [refCode, setRefCode] = useState("");
434
434
  const [helpText, setHelpText] = useState("");
435
435
  const { t } = useTranslation();
@@ -442,7 +442,7 @@ var useWalletConnectorBuilder = () => {
442
442
  setRefCode(refCode2);
443
443
  }
444
444
  }, []);
445
- const { referral_code, isLoading } = useGetReferralCode(account.accountId);
445
+ const { referral_code, isLoading } = useGetReferralCode(state.accountId);
446
446
  const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] = useMutation("/v1/referral/bind", "POST");
447
447
  useEffect(() => {
448
448
  if (refCode.length === 0) {
@@ -593,7 +593,14 @@ var AuthGuard = (props) => {
593
593
  disabledConnect
594
594
  }
595
595
  );
596
- }, [state.status, state.validating, buttonProps, wrongNetwork]);
596
+ }, [
597
+ state.status,
598
+ state.validating,
599
+ buttonProps,
600
+ wrongNetwork,
601
+ labels,
602
+ descriptions
603
+ ]);
597
604
  return /* @__PURE__ */ jsx(
598
605
  Either,
599
606
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/step.tsx","../src/component/walletConnectorContent.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/walletConnector.tsx","../src/component/useAuthGuard.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx","../src/hooks/useAuthStatus.tsx"],"names":["steps","jsxs","Box","jsx","Text","useAccount","useState","useTranslation","useEffect","refCode","toast","i18n","useMemo","AccountStatusEnum","useAppContext","modal","Flex","Button","Tooltip","AuthStatusEnum"],"mappings":"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","file":"index.mjs","sourcesContent":["import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Divider,\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 showDivider?: boolean;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description, showDivider } = props;\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 <div className=\"oui-absolute oui-left-0 oui-top-1 oui-z-10\">\n <Identifier {...props} />\n </div>\n {showDivider && (\n <Box position={\"absolute\"} left={12} top={23} bottom={-21} zIndex={0}>\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\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 if (isLoading) {\n return <Spinner size={\"sm\"} className={\"oui-ml-1\"} />;\n }\n\n if (isCompleted) {\n return <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />;\n }\n\n return <Dot active={!!active} />;\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 { FC, ReactNode, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport {\n AccountStatusEnum,\n ChainNamespace,\n LedgerWalletKey,\n} from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n const { disconnect, namespace } = useWalletConnector();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [showLedgerButton, setShowLedgerButton] = useState(false);\n const { ledgerWallet, setLedgerAddress } = useStorageLedgerAddress();\n const handleRef = useRef(0);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.createAccount\"),\n description: t(\"connector.createAccount.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n useEffect(() => {\n if (namespace != ChainNamespace.solana) {\n setShowLedgerButton(false);\n return;\n }\n if (!ledgerWallet) {\n setShowLedgerButton(true);\n return;\n }\n if (ledgerWallet && account.address) {\n if (!ledgerWallet.includes(account.address)) {\n setShowLedgerButton(true);\n return;\n }\n }\n setShowLedgerButton(false);\n }, [namespace, account.address, ledgerWallet]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n handleRef.current++;\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) {\n return;\n }\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onDisconnect = async () => {\n localStorage.removeItem(\"orderly_link_device\");\n disconnect({\n label: (state as unknown as any).connectWallet?.name,\n }).then(() => {\n account.disconnect();\n if (typeof props.close === \"function\") {\n props.close();\n }\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) {\n return;\n }\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n const isLast = index === steps.length - 1;\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 showDivider={!isLast}\n />\n );\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} className=\"oui-w-full\">\n <Box className=\"oui-w-full\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n showLedgerButton={showLedgerButton}\n />\n </Box>\n </Flex>\n {state > AccountStatusEnum.NotConnected && (\n <Flex\n justify={\"center\"}\n mt={4}\n gap={1}\n className=\"oui-w-full oui-cursor-pointer\"\n onClick={onDisconnect}\n >\n <DisconnectIcon />\n <Text className=\"oui-text-base-contrast-80 oui-text-sm\">\n {t(\"connector.disconnectWallet\")}\n </Text>\n </Flex>\n )}\n </Box>\n );\n};\n\nconst DisconnectIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n d=\"M2.24219 5.24316C2.24219 3.58641 3.58536 2.24316 5.24219 2.24316H8.24219C9.89894 2.24316 11.2422 3.58641 11.2422 5.24316C11.2422 5.65716 10.9062 5.99316 10.4922 5.99316C10.0782 5.99316 9.74219 5.65716 9.74219 5.24316C9.74219 4.41441 9.07094 3.74316 8.24219 3.74316H5.24219C4.41374 3.74316 3.74219 4.41441 3.74219 5.24316V12.7432C3.74219 13.5719 4.41374 14.2432 5.24219 14.2432H8.24219C9.07094 14.2432 9.74219 13.5719 9.74219 12.7432C9.74219 12.3292 10.0782 11.9932 10.4922 11.9932C10.9062 11.9932 11.2422 12.3292 11.2422 12.7432C11.2422 14.3999 9.89894 15.7432 8.24219 15.7432H5.24219C3.58536 15.7432 2.24219 14.3999 2.24219 12.7432V5.24316ZM7.49219 8.99316C7.49219 8.57916 7.82819 8.24316 8.24219 8.24316H13.9144L12.4377 6.74316L13.4922 5.68866L16.2814 8.45391C16.5739 8.74716 16.5739 9.23915 16.2814 9.5324L13.4922 12.2977L12.4377 11.2432L13.9144 9.74316H8.24219C7.82819 9.74316 7.49219 9.40716 7.49219 8.99316Z\"\n fill=\"white\"\n fillOpacity=\"0.8\"\n />\n </svg>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n showLedgerButton?: boolean;\n disabled?: boolean;\n}> = ({\n state,\n signIn,\n enableTrading,\n loading,\n disabled,\n showLedgerButton,\n}) => {\n const { t } = useTranslation();\n\n if (state <= AccountStatusEnum.NotSignedIn) {\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.createAccount\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => signIn()}\n content={t(\"connector.createAccountWithLedger\")}\n />\n )}\n </Flex>\n );\n }\n\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => enableTrading()}\n disabled={disabled}\n content={t(\"connector.enableTradingWithLedger\")}\n />\n )}\n </Flex>\n );\n\n // return (\n // <Match\n // value={() => {\n // if (state <= AccountStatusEnum.NotSignedIn) {\n // return \"signIn\";\n // }\n // return \"enableTrading\";\n // }}\n // case={{\n // signIn: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => signIn()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.createAccount\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => signIn()}\n // content={t(\"connector.createAccountWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // enableTrading: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => enableTrading()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.enableTrading\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => enableTrading()}\n // disabled={disabled}\n // content={t(\"connector.enableTradingWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // }}\n // />\n // );\n};\n\nconst WithLedgerButton = ({\n onClick,\n disabled,\n content,\n}: {\n onClick: () => void;\n disabled?: boolean;\n content: ReactNode;\n}) => {\n const { t } = useTranslation();\n const { state } = useAccount();\n const address = state.address;\n const { setLedgerAddress } = useStorageLedgerAddress();\n if (!address) {\n return null;\n }\n return (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n fullWidth\n onClick={() => {\n setLedgerAddress(address);\n onClick();\n }}\n disabled={disabled}\n className=\"oui-w-full\"\n >\n {content}\n </Button>\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n const _value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, \"\");\n props.setRefCode(_value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) {\n return;\n }\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`,\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async () => {\n if (refCode.length === 0) {\n return Promise.resolve(undefined);\n }\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\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: React.FC<any> = (props) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\n/**\n * Hook to check if the user is authenticated and authorized\n * @param status - Required account status to be satisfied. If not provided, defaults to EnableTrading or EnableTradingWithoutConnected based on current state\n * @returns boolean indicating if the user meets the authentication requirements\n */\nexport const useAuthGuard = (status?: AccountStatusEnum): boolean => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n return useMemo(() => {\n return state.status >= _status && !wrongNetwork && !disabledConnect;\n }, [state.status, _status, wrongNetwork, disabledConnect]);\n};\n","import React, { ReactElement, useMemo } from \"react\";\nimport { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nexport const AuthGuard: React.FC<React.PropsWithChildren<AuthGuardProps>> = (\n props,\n) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.createAccount\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst ModalTitle: React.FC = () => {\n const { t } = useTranslation();\n const { state } = useAccount();\n if (state.status < AccountStatusEnum.SignedIn) {\n return <Text>{t(\"connector.createAccount\")}</Text>;\n }\n if (state.status < AccountStatusEnum.EnableTrading) {\n return <Text>{t(\"connector.enableTrading\")}</Text>;\n }\n return <Text>{t(\"connector.connectWallet\")}</Text>;\n};\n\nconst DefaultFallback: React.FC<{\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}> = (props) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal\n .show(matches ? WalletConnectorSheetId : WalletConnectorModalId, {\n title: <ModalTitle />,\n })\n .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) {\n return;\n }\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{ wrongNetwork: boolean }>(\n isMobile ? ChainSelectorSheetId : ChainSelectorDialogId,\n {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n },\n )\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error),\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n if (props.status <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n if (props.status <= 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 return (\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 // return (\n // <Match\n // value={props.status}\n // case={(value: AccountStatusEnum) => {\n // if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectWallet();\n // }}\n // // fullWidth\n // variant={props.disabledConnect ? undefined : \"gradient\"}\n // angle={45}\n // description={descriptions?.connectWallet}\n // disabled={props.disabledConnect}\n // {...buttonProps}\n // >\n // {labels.connectWallet}\n // </StatusInfo>\n // );\n // }\n // if (value <= AccountStatusEnum.NotSignedIn) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectOrderly();\n // }}\n // // fullWidth\n // angle={45}\n // description={descriptions?.signin}\n // {...buttonProps}\n // >\n // {labels.signin}\n // </StatusInfo>\n // );\n // }\n // }}\n // default={\n // <StatusInfo\n // size=\"lg\"\n // // fullWidth\n // description={descriptions?.enableTrading}\n // {...buttonProps}\n // onClick={() => onConnectOrderly()}\n // >\n // {labels.enableTrading}\n // </StatusInfo>\n // }\n // />\n // );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo: React.FC<ButtonProps & { description?: string }> = (\n props,\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","import React, { PropsWithChildren, useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\n\nexport const AuthGuardDataTable = <RecordType,>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >,\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n children,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n >\n {children}\n </DataTable>\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView: React.FC<GuardViewProps> = (props) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.createAccount.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) {\n return null;\n }\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 React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nexport const AuthGuardEmpty: React.FC<\n React.PropsWithChildren<AuthGuardProps>\n> = (props) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.createAccount.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n buttonProps={{\n size: \"md\",\n }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.createAccount.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div style={{ opacity: newOpacity }}>{props.children}</div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\nexport enum AuthStatusEnum {\n WrongNetwork,\n ConnectWallet,\n CreateAccount,\n EnableTrading,\n}\n\nexport const useAuthStatus = () => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n return useMemo(() => {\n if (wrongNetwork && !disabledConnect) {\n return AuthStatusEnum.WrongNetwork;\n }\n\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return AuthStatusEnum.EnableTrading;\n }\n\n if (state.status <= AccountStatusEnum.NotConnected || disabledConnect) {\n return AuthStatusEnum.ConnectWallet;\n }\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return AuthStatusEnum.CreateAccount;\n }\n\n return AuthStatusEnum.EnableTrading;\n }, [state.status, wrongNetwork, disabledConnect]);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/step.tsx","../src/component/walletConnectorContent.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/walletConnector.tsx","../src/component/useAuthGuard.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx","../src/hooks/useAuthStatus.tsx"],"names":["steps","jsxs","Box","jsx","Text","useAccount","useState","useTranslation","useEffect","refCode","toast","i18n","useMemo","AccountStatusEnum","useAppContext","modal","Flex","Button","Tooltip","AuthStatusEnum"],"mappings":"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","file":"index.mjs","sourcesContent":["import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Divider,\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 showDivider?: boolean;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description, showDivider } = props;\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 <div className=\"oui-absolute oui-left-0 oui-top-1 oui-z-10\">\n <Identifier {...props} />\n </div>\n {showDivider && (\n <Box position={\"absolute\"} left={12} top={23} bottom={-21} zIndex={0}>\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\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 if (isLoading) {\n return <Spinner size={\"sm\"} className={\"oui-ml-1\"} />;\n }\n\n if (isCompleted) {\n return <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />;\n }\n\n return <Dot active={!!active} />;\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 { FC, ReactNode, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport {\n AccountStatusEnum,\n ChainNamespace,\n LedgerWalletKey,\n} from \"@orderly.network/types\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { StepItem } from \"./step\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n const { disconnect, namespace } = useWalletConnector();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [showLedgerButton, setShowLedgerButton] = useState(false);\n const { ledgerWallet, setLedgerAddress } = useStorageLedgerAddress();\n const handleRef = useRef(0);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined,\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.createAccount\"),\n description: t(\"connector.createAccount.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n useEffect(() => {\n if (namespace != ChainNamespace.solana) {\n setShowLedgerButton(false);\n return;\n }\n if (!ledgerWallet) {\n setShowLedgerButton(true);\n return;\n }\n if (ledgerWallet && account.address) {\n if (!ledgerWallet.includes(account.address)) {\n setShowLedgerButton(true);\n return;\n }\n }\n setShowLedgerButton(false);\n }, [namespace, account.address, ledgerWallet]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n handleRef.current++;\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) {\n return;\n }\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onDisconnect = async () => {\n localStorage.removeItem(\"orderly_link_device\");\n disconnect({\n label: (state as unknown as any).connectWallet?.name,\n }).then(() => {\n account.disconnect();\n if (typeof props.close === \"function\") {\n props.close();\n }\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) {\n return;\n }\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\",\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n },\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n const isLast = index === steps.length - 1;\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 showDivider={!isLast}\n />\n );\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} className=\"oui-w-full\">\n <Box className=\"oui-w-full\">\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n showLedgerButton={showLedgerButton}\n />\n </Box>\n </Flex>\n {state > AccountStatusEnum.NotConnected && (\n <Flex\n justify={\"center\"}\n mt={4}\n gap={1}\n className=\"oui-w-full oui-cursor-pointer\"\n onClick={onDisconnect}\n >\n <DisconnectIcon />\n <Text className=\"oui-text-base-contrast-80 oui-text-sm\">\n {t(\"connector.disconnectWallet\")}\n </Text>\n </Flex>\n )}\n </Box>\n );\n};\n\nconst DisconnectIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n d=\"M2.24219 5.24316C2.24219 3.58641 3.58536 2.24316 5.24219 2.24316H8.24219C9.89894 2.24316 11.2422 3.58641 11.2422 5.24316C11.2422 5.65716 10.9062 5.99316 10.4922 5.99316C10.0782 5.99316 9.74219 5.65716 9.74219 5.24316C9.74219 4.41441 9.07094 3.74316 8.24219 3.74316H5.24219C4.41374 3.74316 3.74219 4.41441 3.74219 5.24316V12.7432C3.74219 13.5719 4.41374 14.2432 5.24219 14.2432H8.24219C9.07094 14.2432 9.74219 13.5719 9.74219 12.7432C9.74219 12.3292 10.0782 11.9932 10.4922 11.9932C10.9062 11.9932 11.2422 12.3292 11.2422 12.7432C11.2422 14.3999 9.89894 15.7432 8.24219 15.7432H5.24219C3.58536 15.7432 2.24219 14.3999 2.24219 12.7432V5.24316ZM7.49219 8.99316C7.49219 8.57916 7.82819 8.24316 8.24219 8.24316H13.9144L12.4377 6.74316L13.4922 5.68866L16.2814 8.45391C16.5739 8.74716 16.5739 9.23915 16.2814 9.5324L13.4922 12.2977L12.4377 11.2432L13.9144 9.74316H8.24219C7.82819 9.74316 7.49219 9.40716 7.49219 8.99316Z\"\n fill=\"white\"\n fillOpacity=\"0.8\"\n />\n </svg>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n showLedgerButton?: boolean;\n disabled?: boolean;\n}> = ({\n state,\n signIn,\n enableTrading,\n loading,\n disabled,\n showLedgerButton,\n}) => {\n const { t } = useTranslation();\n\n if (state <= AccountStatusEnum.NotSignedIn) {\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.createAccount\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => signIn()}\n content={t(\"connector.createAccountWithLedger\")}\n />\n )}\n </Flex>\n );\n }\n\n return (\n <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n {showLedgerButton && (\n <WithLedgerButton\n onClick={() => enableTrading()}\n disabled={disabled}\n content={t(\"connector.enableTradingWithLedger\")}\n />\n )}\n </Flex>\n );\n\n // return (\n // <Match\n // value={() => {\n // if (state <= AccountStatusEnum.NotSignedIn) {\n // return \"signIn\";\n // }\n // return \"enableTrading\";\n // }}\n // case={{\n // signIn: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => signIn()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.createAccount\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => signIn()}\n // content={t(\"connector.createAccountWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // enableTrading: (\n // <Flex direction={\"column\"} gap={3} className=\"oui-w-full\">\n // <Button\n // fullWidth\n // onClick={() => enableTrading()}\n // loading={loading}\n // disabled={disabled}\n // >\n // {t(\"connector.enableTrading\")}\n // </Button>\n // {showLedgerButton && (\n // <WithLedgerButton\n // onClick={() => enableTrading()}\n // disabled={disabled}\n // content={t(\"connector.enableTradingWithLedger\")}\n // />\n // )}\n // </Flex>\n // ),\n // }}\n // />\n // );\n};\n\nconst WithLedgerButton = ({\n onClick,\n disabled,\n content,\n}: {\n onClick: () => void;\n disabled?: boolean;\n content: ReactNode;\n}) => {\n const { t } = useTranslation();\n const { state } = useAccount();\n const address = state.address;\n const { setLedgerAddress } = useStorageLedgerAddress();\n if (!address) {\n return null;\n }\n return (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n fullWidth\n onClick={() => {\n setLedgerAddress(address);\n onClick();\n }}\n disabled={disabled}\n className=\"oui-w-full\"\n >\n {content}\n </Button>\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n const _value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, \"\");\n props.setRefCode(_value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) {\n return;\n }\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\n\nexport const useWalletConnectorBuilder = () => {\n const { state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`,\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(state.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async () => {\n if (refCode.length === 0) {\n return Promise.resolve(undefined);\n }\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\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: React.FC<any> = (props) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\n/**\n * Hook to check if the user is authenticated and authorized\n * @param status - Required account status to be satisfied. If not provided, defaults to EnableTrading or EnableTradingWithoutConnected based on current state\n * @returns boolean indicating if the user meets the authentication requirements\n */\nexport const useAuthGuard = (status?: AccountStatusEnum): boolean => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n return useMemo(() => {\n return state.status >= _status && !wrongNetwork && !disabledConnect;\n }, [state.status, _status, wrongNetwork, disabledConnect]);\n};\n","import React, { ReactElement, useMemo } from \"react\";\nimport { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nexport const AuthGuard: React.FC<React.PropsWithChildren<AuthGuardProps>> = (\n props,\n) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.createAccount\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [\n state.status,\n state.validating,\n buttonProps,\n wrongNetwork,\n labels,\n descriptions,\n ]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst ModalTitle: React.FC = () => {\n const { t } = useTranslation();\n const { state } = useAccount();\n if (state.status < AccountStatusEnum.SignedIn) {\n return <Text>{t(\"connector.createAccount\")}</Text>;\n }\n if (state.status < AccountStatusEnum.EnableTrading) {\n return <Text>{t(\"connector.enableTrading\")}</Text>;\n }\n return <Text>{t(\"connector.connectWallet\")}</Text>;\n};\n\nconst DefaultFallback: React.FC<{\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}> = (props) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal\n .show(matches ? WalletConnectorSheetId : WalletConnectorModalId, {\n title: <ModalTitle />,\n })\n .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) {\n return;\n }\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{ wrongNetwork: boolean }>(\n isMobile ? ChainSelectorSheetId : ChainSelectorDialogId,\n {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n },\n )\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error),\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n if (props.status <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n if (props.status <= 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 return (\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 // return (\n // <Match\n // value={props.status}\n // case={(value: AccountStatusEnum) => {\n // if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectWallet();\n // }}\n // // fullWidth\n // variant={props.disabledConnect ? undefined : \"gradient\"}\n // angle={45}\n // description={descriptions?.connectWallet}\n // disabled={props.disabledConnect}\n // {...buttonProps}\n // >\n // {labels.connectWallet}\n // </StatusInfo>\n // );\n // }\n // if (value <= AccountStatusEnum.NotSignedIn) {\n // return (\n // <StatusInfo\n // size=\"lg\"\n // onClick={() => {\n // onConnectOrderly();\n // }}\n // // fullWidth\n // angle={45}\n // description={descriptions?.signin}\n // {...buttonProps}\n // >\n // {labels.signin}\n // </StatusInfo>\n // );\n // }\n // }}\n // default={\n // <StatusInfo\n // size=\"lg\"\n // // fullWidth\n // description={descriptions?.enableTrading}\n // {...buttonProps}\n // onClick={() => onConnectOrderly()}\n // >\n // {labels.enableTrading}\n // </StatusInfo>\n // }\n // />\n // );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo: React.FC<ButtonProps & { description?: string }> = (\n props,\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","import React, { PropsWithChildren, useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\n\nexport const AuthGuardDataTable = <RecordType,>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >,\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n children,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n >\n {children}\n </DataTable>\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView: React.FC<GuardViewProps> = (props) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n switchChain: t(\"connector.wrongNetwork.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n signin: t(\"connector.trade.createAccount.tooltip\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) {\n return null;\n }\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 React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nexport const AuthGuardEmpty: React.FC<\n React.PropsWithChildren<AuthGuardProps>\n> = (props) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.createAccount.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n buttonProps={{\n size: \"md\",\n }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.createAccount.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div style={{ opacity: newOpacity }}>{props.children}</div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n","import { useMemo } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\nexport enum AuthStatusEnum {\n WrongNetwork,\n ConnectWallet,\n CreateAccount,\n EnableTrading,\n}\n\nexport const useAuthStatus = () => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n return useMemo(() => {\n if (wrongNetwork && !disabledConnect) {\n return AuthStatusEnum.WrongNetwork;\n }\n\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return AuthStatusEnum.EnableTrading;\n }\n\n if (state.status <= AccountStatusEnum.NotConnected || disabledConnect) {\n return AuthStatusEnum.ConnectWallet;\n }\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return AuthStatusEnum.CreateAccount;\n }\n\n return AuthStatusEnum.EnableTrading;\n }, [state.status, wrongNetwork, disabledConnect]);\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orderly.network/ui-connector",
3
- "version": "2.8.14",
3
+ "version": "2.9.0-alpha.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -17,12 +17,12 @@
17
17
  "access": "public"
18
18
  },
19
19
  "dependencies": {
20
- "@orderly.network/i18n": "2.8.14",
21
- "@orderly.network/ui": "2.8.14",
22
- "@orderly.network/hooks": "2.8.14",
23
- "@orderly.network/types": "2.8.14",
24
- "@orderly.network/ui-chain-selector": "2.8.14",
25
- "@orderly.network/react-app": "2.8.14"
20
+ "@orderly.network/i18n": "2.9.0-alpha.1",
21
+ "@orderly.network/types": "2.9.0-alpha.1",
22
+ "@orderly.network/react-app": "2.9.0-alpha.1",
23
+ "@orderly.network/ui": "2.9.0-alpha.1",
24
+ "@orderly.network/hooks": "2.9.0-alpha.1",
25
+ "@orderly.network/ui-chain-selector": "2.9.0-alpha.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/react": "^18.3.2",
@@ -31,7 +31,7 @@
31
31
  "react-dom": "^18.2.0",
32
32
  "tailwindcss": "^3.4.4",
33
33
  "tsup": "^8.5.1",
34
- "tsconfig": "0.11.14"
34
+ "tsconfig": "0.12.0-alpha.1"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "react": ">=18",