{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useEventEmitter","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","ee","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n  Box,\n  Button,\n  capitalizeFirstLetter,\n  cn,\n  Divider,\n  Flex,\n  Input,\n  inputFormatter,\n  Match,\n  modal,\n  Switch,\n  Text,\n  TextField,\n  toast,\n  Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useEventEmitter, useLocalStorage } from \"@orderly.network/hooks\";\n\nexport type WalletConnectContentProps = {\n  initAccountState: AccountStatusEnum;\n  signIn: () => Promise<any>;\n  enableTrading: (remember: boolean) => Promise<any>;\n  enableTradingComplted?: () => Promise<void>;\n  onCompleted?: () => void;\n  close?: () => void;\n  refCode: string;\n  setRefCode: React.Dispatch<React.SetStateAction<string>>;\n  helpText?: string;\n  showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n  const { initAccountState = AccountStatusEnum.NotConnected } = props;\n  const [remember, setRemember] = useState(true);\n  const ee = useEventEmitter();\n\n\n  const { state: accountState, account } = useAccount();\n  const [state, setState] = useState(initAccountState);\n  const [activeStep, setActiveStep] = useState(0);\n  const [loading, setLoading] = useState(false);\n  const [firstShowDialog] = useLocalStorage(\n    \"orderly-first-show-wallet-connector-dialog\",\n    undefined\n  );\n  useEffect(() => {\n    return () => {\n      localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n    };\n  }, []);\n\n  useEffect(() => {\n    setState(accountState.status);\n  }, [accountState]);\n\n  const steps = useMemo(() => {\n    const steps = [];\n    if (initAccountState < AccountStatusEnum.SignedIn) {\n      steps.push({\n        key: \"signIn\",\n        title: \"Sign In\",\n        description: \"Confirm you are the owner of this wallet\",\n      });\n    }\n\n    if (initAccountState < AccountStatusEnum.EnableTrading) {\n      steps.push({\n        key: \"enableTrading\",\n        title: \"Enable Trading\",\n        description:\n          \"Enable secure access to our API for lightning fast trading\",\n      });\n    }\n\n    return steps;\n  }, [initAccountState]);\n\n  const onEnableTrading = () => {\n    setLoading(true);\n    return props\n      .enableTrading(remember)\n      .then(\n        async (res) => {\n          console.log(res);\n          setLoading(false);\n          setActiveStep((step) => step + 1);\n          try {\n            await props.enableTradingComplted?.();\n          } catch (e) {}\n          if (typeof props.onCompleted === \"function\") {\n            props.onCompleted();\n          } else if (typeof props.close === \"function\") {\n            props.close();\n          }\n          // props.onCompleted?.();\n        },\n        (reject) => {\n          setLoading(false);\n          if (reject === -1) return;\n\n          if (reject.message.indexOf('Signing off chain messages with Ledger is not yet supported') !== -1) {\n            ee.emit(\"wallet:sign-message-with-ledger-error\", {message: reject.message,userAddress: account.address});\n            return;\n          }\n          toast.error(paseErrorMsg(reject));\n        }\n      )\n      .catch((e) => {\n        console.log(\"enable trading catch error\", e);\n        setLoading(false);\n      });\n  };\n\n  const onSignIn = () => {\n    setLoading(true);\n    return props\n      .signIn()\n      .then(\n        (res) => {\n          setActiveStep((step) => step + 1);\n          onEnableTrading();\n        },\n        (reject) => {\n          setLoading(false);\n\n          if (reject === -1) return;\n          if (reject.message.indexOf('Signing off chain messages with Ledger is not yet supported') !== -1) {\n            ee.emit(\"wallet:sign-message-with-ledger-error\", {message: reject.message,userAddress: account.address});\n            return;\n          }\n\n          toast.error(paseErrorMsg(reject));\n        }\n      )\n      .catch((e) => {\n        setLoading(false);\n      });\n  };\n\n  console.log(\"state\", state);\n\n  return (\n    <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n      <Text intensity={54} size=\"xs\">\n        Your previous access has expired, you will receive a signature request\n        to enable trading. Signing is free and will not send a transaction.\n      </Text>\n      <Box\n        p={4}\n        my={6}\n        intensity={600}\n        r=\"lg\"\n        className=\"oui-space-y-5\"\n        position={\"relative\"}\n      >\n        {steps.map((step, index) => {\n          return (\n            <StepItem\n              title={step.title}\n              description={step.description}\n              isCompleted={activeStep > index}\n              key={step.key}\n              active={activeStep === index}\n              isLoading={loading && activeStep === index}\n            />\n          );\n        })}\n        {steps.length > 1 && (\n          <Box\n            position={\"absolute\"}\n            height={\"38px\"}\n            left={28}\n            top={18}\n            zIndex={0}\n          >\n            <Divider\n              lineStyle={\"dashed\"}\n              direction={\"vertical\"}\n              intensity={16}\n              className=\"oui-h-full\"\n            />\n          </Box>\n        )}\n      </Box>\n      {props.showRefCodeInput && steps.length == 2 && (\n        <ReferralCode {...props} />\n      )}\n      {firstShowDialog && (\n        <Flex justify={\"between\"} itemAlign={\"center\"}>\n          <RememberMe />\n          <Switch\n            color={\"primary\"}\n            checked={remember}\n            onCheckedChange={setRemember}\n            disabled={loading}\n            className=\"data-[state=checked]:oui-bg-primary-darken\"\n          />\n        </Flex>\n      )}\n      <Flex justify={\"center\"} mt={8}>\n        <Box width={\"45%\"}>\n          <ActionButton\n            state={state}\n            signIn={onSignIn}\n            enableTrading={onEnableTrading}\n            loading={loading}\n            disabled={state >= AccountStatusEnum.EnableTrading}\n          />\n        </Box>\n      </Flex>\n    </Box>\n  );\n};\n\nconst ActionButton: FC<{\n  state: AccountStatusEnum;\n  signIn: () => Promise<any>;\n  enableTrading: () => Promise<any>;\n  loading: boolean;\n  disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n  return (\n    <Match\n      value={() => {\n        if (state <= AccountStatusEnum.NotSignedIn) {\n          return \"signIn\";\n        }\n        return \"enableTrading\";\n      }}\n      case={{\n        signIn: (\n          <Button\n            fullWidth\n            onClick={() => signIn()}\n            loading={loading}\n            disabled={disabled}\n          >\n            Sign In\n          </Button>\n        ),\n        enableTrading: (\n          <Button\n            fullWidth\n            onClick={() => enableTrading()}\n            loading={loading}\n            disabled={disabled}\n          >\n            Enable Trading\n          </Button>\n        ),\n      }}\n    />\n  );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n  return (\n    <TextField\n      placeholder=\"Referral code (Optional)\"\n      fullWidth\n      // label={\"Referral code (optional)\"}\n      label=\"\"\n      value={props.refCode}\n      onChange={(e) => {\n        props.setRefCode(e.target.value);\n      }}\n      classNames={{\n        label: \"oui-text-base-contrast-54 oui-text-xs\",\n        input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n      }}\n      formatters={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\n      onClear={() => {\n        props.setRefCode(\"\");\n      }}\n      autoComplete=\"off\"\n      helpText={props.helpText}\n      className=\"oui-mb-4\"\n      color={props.helpText ? \"danger\" : undefined}\n    />\n  );\n};\n\nconst RememberMe = () => {\n  const showRememberHint = () => {\n    if (window.innerWidth > 768) return;\n    modal.alert({\n      title: \"Remember me\",\n      message: (\n        <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n          Toggle this option to skip these steps next time you want to trade.\n        </span>\n      ),\n    });\n  };\n  return (\n    <Tooltip\n      content={\n        \"Toggle this option to skip these steps next time you want to trade.\"\n      }\n      className=\"oui-max-w-[300px]\"\n    >\n      <button onClick={showRememberHint}>\n        <Text\n          intensity={54}\n          size={\"xs\"}\n          className={\n            \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n          }\n        >\n          Remember me\n        </Text>\n      </button>\n    </Tooltip>\n  );\n};\n\nfunction paseErrorMsg(reject: any): string {\n  console.log(\"wallet callback error\", reject);\n  console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n  Object.keys(reject).forEach((key) => {\n    console.log(\"key\", key, \"-\", reject[key]);\n  });\n  let msg = \"Something went wrong\";\n\n  // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n  //   msg = reject?.info?.error?.message;\n  // }\n\n  // if (typeof reject?.shortMessage === 'string') {\n  //   msg = reject.shortMessage;\n  // }\n\n  if (reject.toString().includes(\"rejected\")) {\n    msg = \"User rejected the request.\";\n  }\n\n\n  return capitalizeFirstLetter(msg) ?? msg;\n}\n\n","import { FC } from \"react\";\nimport {\n  Box,\n  CheckedCircleFillIcon,\n  cn,\n  Match,\n  Spinner,\n  Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n  active?: boolean;\n  isLoading?: boolean;\n  isCompleted?: boolean;\n  title: string;\n  description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n  const { title, description } = props;\n\n  // console.log(props);\n\n  return (\n    <Box position=\"relative\" className=\"oui-pl-8\">\n      <Box>\n        <Text as=\"div\" intensity={98} size={\"sm\"}>\n          {title}\n        </Text>\n        <Text as=\"div\" intensity={54} size={\"2xs\"}>\n          {description}\n        </Text>\n      </Box>\n      <Identifier {...props} />\n    </Box>\n  );\n};\n\nconst Identifier = (props: {\n  active?: boolean;\n  isLoading?: boolean;\n  isCompleted?: boolean;\n}) => {\n  const { active, isLoading, isCompleted } = props;\n\n  return (\n    <Match\n      className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n      value={() => {\n        if (isCompleted) {\n          return \"completed\";\n        }\n        if (isLoading) {\n          return \"loading\";\n        }\n\n        if (active) {\n          return \"active\";\n        }\n\n        return \"normal\";\n      }}\n      case={{\n        loading: (\n          <div>\n            <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n          </div>\n        ),\n        completed: (\n          <div>\n            <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n          </div>\n        ),\n      }}\n      default={<Dot active={!!active} />}\n    />\n  );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n  active,\n  className,\n}) => {\n  return (\n    <div\n      className={cn(\n        \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n        className,\n        active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n      )}\n    />\n  );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n  const state = useWalletConnectorBuilder();\n  return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n  size: \"sm\",\n  title: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n  title: \"Connect wallet\",\n});\n","import {\n  useAccount,\n  useCheckReferralCode,\n  useGetReferralCode,\n  useLazyQuery,\n  useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\n\nexport const useWalletConnectorBuilder = () => {\n  const { account, state, createOrderlyKey, createAccount } = useAccount();\n  const [refCode, setRefCode] = useState(\"\");\n  const [helpText, setHelpText] = useState(\"\");\n\n  const { trigger: verifyRefCode } = useLazyQuery(\n    `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n  );\n\n  useEffect(() => {\n    const refCode = localStorage.getItem(\"referral_code\");\n    if (refCode != null) {\n      setRefCode(refCode);\n    }\n  }, []);\n\n  const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n  const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n    useMutation(\"/v1/referral/bind\", \"POST\");\n\n  useEffect(() => {\n    if (refCode.length === 0) {\n      setHelpText(\"\");\n    }\n  }, [refCode]);\n\n  const enableTradingComplted = () => {\n    toast.success(\"Wallet connected\");\n    // validate ref code and bind referral code\n    if (refCode.length >= 4 && refCode.length <= 10)\n      bindRefCode({ referral_code: refCode }).finally(() => {\n        localStorage.removeItem(\"referral_code\");\n      });\n  };\n\n  const checkRefCode = async (): Promise<string | undefined> => {\n    if (refCode.length === 0) return Promise.resolve(undefined);\n\n    if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n      return Promise.resolve(\n        \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n      );\n    }\n\n    const { exist } = await verifyRefCode();\n    \n\n    if (exist === false) {\n      return Promise.resolve(\"This referral code does not exist.\");\n    }\n\n    return Promise.resolve(undefined);\n  };\n\n\n  const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n\n  const signIn = async () => {\n    if (showRefCodeInput) {\n      const info = await checkRefCode();\n      if (typeof info !== \"undefined\") {\n        setHelpText(info);\n        return Promise.reject(-1);\n      }\n    }\n    setHelpText(\"\");\n    return createAccount();\n  };\n\n  const enableTrading = async (remember: boolean) => {\n    if (showRefCodeInput) {\n      const info = await checkRefCode();\n      if (typeof info !== \"undefined\") {\n        setHelpText(info);\n        return Promise.reject(-1);\n      }\n    }\n    setHelpText(\"\");\n    return createOrderlyKey(remember);\n  };\n\n  return {\n    enableTrading,\n    initAccountState: state.status,\n    signIn,\n    enableTradingComplted,\n    refCode,\n    setRefCode,\n    helpText,\n    showRefCodeInput,\n  } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n  AccountStatusEnum,\n  MEDIA_TABLET,\n  NetworkId,\n} from \"@orderly.network/types\";\nimport {\n  Button,\n  Either,\n  Match,\n  modal,\n  Text,\n  toast,\n  useScreen,\n  type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n  WalletConnectorModalId,\n  WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n  ChainSelectorDialogId,\n  ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n  networkId?: NetworkId;\n  bridgeLessOnly?: boolean;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n  fallback?: (props: {\n    validating: boolean;\n    status: AccountStatusEnum;\n    wrongNetwork: boolean;\n  }) => ReactElement;\n  // indicator?: ReactElement;\n  /**\n   * Required state to be satisfied\n   * @default AccountStatusEnum.EnableTrading\n   */\n  status?: AccountStatusEnum;\n\n  bridgeLessOnly?: boolean;\n\n  buttonProps?: ButtonProps;\n\n  descriptions?: alertMessages;\n\n  labels?: alertMessages;\n\n  classNames?: {\n    root?: string;\n    description?: string;\n    // button?: string;\n  };\n\n  networkId?: NetworkId;\n\n  // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n  const {\n    status,\n    buttonProps,\n    fallback,\n    descriptions,\n    classNames,\n    networkId,\n    id,\n    bridgeLessOnly,\n    // ...rest\n  } = props;\n  const { state } = useAccount();\n  const { wrongNetwork, 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 = { ...LABELS, ...props.labels };\n\n  // return Match(state.status)\n  //   .with(AccountStatusEnum.EnableTrading, () => props.children)\n  //   .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n  //   .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n  //   .otherwise(() => props.fallback);\n  //\n\n  const Left = useMemo<ReactElement>(() => {\n    if (typeof fallback !== \"undefined\") {\n      return fallback({\n        validating: state.validating,\n        status: state.status,\n        wrongNetwork,\n      });\n    }\n\n    if (state.validating && !disabledConnect) {\n      return (\n        <StatusInfo\n          // variant={\"gradient\"}\n          angle={45}\n          // fullWidth\n          disabled\n          loading\n          description={descriptions?.connectWallet}\n          id={id}\n          type=\"button\"\n          {...buttonProps}\n        >\n          {labels.connectWallet}\n        </StatusInfo>\n      );\n    }\n\n    return (\n      <DefaultFallback\n        bridgeLessOnly={bridgeLessOnly}\n        status={state.status}\n        buttonProps={{ ...buttonProps, id, type: \"button\" }}\n        wrongNetwork={wrongNetwork}\n        networkId={props.networkId}\n        labels={labels}\n        descriptions={descriptions}\n        disabledConnect={disabledConnect}\n      />\n    );\n  }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n  /**\n   * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n   */\n\n  return (\n    <Either\n      value={state.status >= _status && !wrongNetwork && !disabledConnect}\n      left={Left}\n    >\n      {props.children}\n    </Either>\n  );\n};\n\nconst DefaultFallback = (props: {\n  status: AccountStatusEnum;\n  wrongNetwork: boolean;\n  buttonProps?: ButtonProps;\n  networkId?: NetworkId;\n  labels: alertMessages;\n  bridgeLessOnly?: boolean;\n  descriptions?: alertMessages;\n  disabledConnect?: boolean;\n}) => {\n  const { buttonProps, labels, descriptions } = props;\n  const { connectWallet } = useAppContext();\n  const { account } = useAccount();\n  const { isMobile } = useScreen();\n  const matches = useMediaQuery(MEDIA_TABLET);\n  const onConnectOrderly = () => {\n    modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n      (r) => console.log(r),\n      (error) => console.log(error)\n    );\n  };\n\n  const onConnectWallet = async () => {\n    const res = await connectWallet();\n\n    if (!res) return;\n\n    if (res.wrongNetwork) {\n      switchChain();\n    } else {\n      if (\n        (res?.status ?? AccountStatusEnum.NotConnected) <\n        AccountStatusEnum.EnableTrading\n      ) {\n        onConnectOrderly();\n      }\n    }\n  };\n\n  const switchChain = () => {\n    account.once(\"validate:end\", (status) => {\n      if (status < AccountStatusEnum.EnableTrading) {\n        onConnectOrderly();\n      } else {\n        toast.success(\"Wallet connected\");\n      }\n    });\n\n    modal\n      .show<{\n        wrongNetwork: boolean;\n      }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n        networkId: props.networkId,\n        bridgeLessOnly: props.bridgeLessOnly,\n      })\n      .then(\n        (r) => {\n          if (!r.wrongNetwork) {\n            if (props.status >= AccountStatusEnum.Connected) {\n              if (props.status < AccountStatusEnum.EnableTrading) {\n                onConnectOrderly();\n              } else {\n                toast.success(\"Wallet connected\");\n              }\n            }\n          }\n        },\n        (error) => console.log(\"[switchChain error]\", error)\n      );\n  };\n\n  if (props.wrongNetwork && !props.disabledConnect) {\n    return (\n      <StatusInfo\n        color=\"warning\"\n        // size=\"md\"\n        // fullWidth\n        onClick={() => {\n          switchChain();\n        }}\n        description={descriptions?.switchChain}\n        {...buttonProps}\n      >\n        {labels.switchChain}\n      </StatusInfo>\n    );\n  }\n\n  return (\n    <Match\n      value={props.status}\n      case={(value: AccountStatusEnum) => {\n        if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n          return (\n            <StatusInfo\n              size=\"lg\"\n              onClick={() => {\n                onConnectWallet();\n              }}\n              // fullWidth\n              variant={props.disabledConnect ? undefined : \"gradient\"}\n              angle={45}\n              description={descriptions?.connectWallet}\n              disabled={props.disabledConnect}\n              {...buttonProps}\n            >\n              {labels.connectWallet}\n            </StatusInfo>\n          );\n        }\n        if (value <= AccountStatusEnum.NotSignedIn) {\n          return (\n            <StatusInfo\n              size=\"lg\"\n              onClick={() => {\n                onConnectOrderly();\n              }}\n              // fullWidth\n              angle={45}\n              description={descriptions?.signin}\n              {...buttonProps}\n            >\n              {labels.signin}\n            </StatusInfo>\n          );\n        }\n      }}\n      default={\n        <StatusInfo\n          size=\"lg\"\n          // fullWidth\n          description={descriptions?.enableTrading}\n          {...buttonProps}\n          onClick={() => onConnectOrderly()}\n        >\n          {labels.enableTrading}\n        </StatusInfo>\n      }\n    />\n  );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n  props: ButtonProps & {\n    description?: string;\n  }\n) => {\n  const { description, ...buttonProps } = props;\n  return (\n    <Flex direction={\"column\"}>\n      <Button {...buttonProps}></Button>\n      {!!description && (\n        <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n          <Text size=\"2xs\" intensity={36}>\n            {description}\n          </Text>\n        </Box>\n      )}\n    </Flex>\n  );\n};\n\nexport { AuthGuard };\n","export type alertMessages = {\n  connectWallet?: string;\n  switchChain?: string;\n  enableTrading?: string;\n  signin?: string;\n};\n\nexport const LABELS = {\n  connectWallet: \"Connect wallet\",\n  switchChain: \"Wrong network\",\n  enableTrading: \"Enable trading\",\n  signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n  connectWallet: \"Please Connect wallet before starting to trade\",\n  switchChain: \"Please switch to a supported network to continue\",\n  enableTrading: \"Please Enable trading before starting to trade\",\n  signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n  ExtensionPositionEnum,\n  ExtensionSlot,\n  DataTable,\n  DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n  props: PropsWithChildren<\n    DataTableProps<RecordType> &\n      Omit<GuardViewProps, \"status\"> & {\n        status?: AccountStatusEnum;\n        classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n          authGuardDescription?: string;\n        };\n      }\n  >\n) => {\n  const {\n    status,\n    // message,\n    labels,\n    description,\n    dataSource,\n    ...rest\n  } = props;\n  const { state } = useAccount();\n  const { wrongNetwork, disabledConnect } = useAppContext();\n\n  const _status = useMemo(() => {\n    if (status === undefined) {\n      return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n        ? AccountStatusEnum.EnableTradingWithoutConnected\n        : AccountStatusEnum.EnableTrading;\n    }\n    return status;\n  }, [status, state.status]);\n\n  const data = useDataTap(dataSource, {\n    accountStatus: _status,\n  });\n\n  const ignoreLoadingCheck =\n    wrongNetwork ||\n    disabledConnect ||\n    state.status < _status ||\n    props.ignoreLoadingCheck;\n\n  return (\n    <DataTable\n      dataSource={data}\n      ignoreLoadingCheck={ignoreLoadingCheck}\n      emptyView={\n        <GuardView\n          status={_status}\n          description={description}\n          labels={labels}\n          className={props.classNames?.authGuardDescription}\n          visible={!state.validating}\n        />\n      }\n      manualPagination\n      {...rest}\n    />\n  );\n};\n\ntype GuardViewProps = {\n  status: AccountStatusEnum;\n  description?: alertMessages;\n  labels?: alertMessages;\n  className?: string;\n  visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n  const descriptions = { ...DESCRIPTIONS, ...props.description };\n  if (!props.visible) return null;\n  return (\n    <Flex py={8}>\n      <AuthGuard\n        status={props.status}\n        labels={props.labels}\n        descriptions={descriptions}\n        buttonProps={{\n          size: \"md\",\n        }}\n      >\n        <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n      </AuthGuard>\n    </Flex>\n  );\n};\n","import { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n  Box,\n  EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n  /** default value is\n   * ```ts\n   * {\n   *   connectWallet: \"Please connect wallet before starting to trade\",\n   *   signIn: \"Please sign in before starting to trade\",\n   *   enableTrading: \"Please sign in before starting to trade\",\n   *   wrongNetwork: \"Please switch to a supported network to continue.\",\n   * }\n   * ```\n   */\n  hint?: {\n    connectWallet?: string;\n    signIn?: string;\n    enableTrading?: string;\n    wrongNetwork?: string;\n  };\n  status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n  const {\n    hint = {\n      connectWallet: \"Please connect wallet before starting to trade\",\n      signIn: \"Please sign in before starting to trade\",\n      enableTrading: \"Please sign in before starting to trade\",\n      wrongNetwork: \"Please switch to a supported network to continue.\",\n    },\n    status,\n  } = props;\n\n  return (\n    <Box my={8}>\n      <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n        {props.children || <EmptyDataState />}\n      </AuthGuard>\n    </Box>\n  );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { PropsWithChildren, useMemo, useState } from \"react\";\n\ntype AuthGuardProps = {\n  content?: string;\n  align?: \"center\" | \"end\" | \"start\";\n  alignOffset?: number;\n  side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n  sideOffset?: number;\n  opactiy?: number;\n  tooltip?: {\n    connectWallet?: string;\n    signIn?: string;\n    enableTrading?: string;\n    wrongNetwork?: string;\n  };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n  const {\n    opactiy = 90,\n    tooltip = {\n      connectWallet: \"Please connect wallet before set up\",\n      signIn: \"Please sign in before set up\",\n      enableTrading: \"Please enable trading before set up\",\n      wrongNetwork: \"Please switch to a supported network to set up\",\n    },\n  } = props;\n  const [open, setOpen] = useState(false);\n  const { state } = useAccount();\n  const isSupport = true;\n  const { wrongNetwork } = useAppContext();\n\n  const hint = useMemo(() => {\n    if (wrongNetwork) {\n      return tooltip?.wrongNetwork;\n    }\n    switch (state.status) {\n      case AccountStatusEnum.NotConnected:\n        return tooltip?.connectWallet;\n      case AccountStatusEnum.NotSignedIn:\n        return tooltip?.signIn;\n      case AccountStatusEnum.DisabledTrading:\n        return tooltip?.enableTrading;\n      case AccountStatusEnum.EnableTrading: {\n        return \"\";\n      }\n      default:\n        return props.content;\n    }\n  }, [props.content, state, isSupport, tooltip]);\n\n  const newOpacity = useMemo(() => {\n    switch (state.status) {\n      case AccountStatusEnum.NotConnected:\n      case AccountStatusEnum.NotSignedIn:\n        return opactiy;\n      case AccountStatusEnum.EnableTrading: {\n        return undefined;\n      }\n      default:\n        return undefined;\n    }\n  }, [props.opactiy, state, isSupport]);\n\n  return (\n    <Tooltip\n      open={hint ? open : false}\n      onOpenChange={setOpen}\n      content={hint}\n      className=\"oui-text-2xs\"\n      align={props.align}\n      alignOffset={props.alignOffset}\n      side={props.side}\n      sideOffset={props.sideOffset}\n    >\n      <div\n        style={{\n          opacity: newOpacity,\n        }}\n      >\n        {props.children}\n      </div>\n    </Tooltip>\n  );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}