@orderly.network/trading 2.8.10-alpha.0 → 2.8.11-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTradingLocalStorage.ts","../src/hooks/usePositionsCount.ts","../src/hooks/usePendingOrderCount.ts","../src/hooks/index.ts","../src/provider/tradingPageContext.tsx","../src/components/desktop/dataList/dataList.script.tsx","../src/components/desktop/dataList/setting/setting.ui.tsx","../src/components/desktop/dataList/setting/setting.script.tsx","../src/components/desktop/dataList/setting/setting.widget.tsx","../src/components/desktop/dataList/setting/index.ts","../src/components/base/positionHeader/positionHeader.ui.tsx","../src/components/base/positionHeader/positionHeader.script.tsx","../src/components/base/positionHeader/positionHeader.widget.tsx","../src/components/base/positionHeader/index.ts","../src/components/desktop/dataList/dataList.ui.tsx","../src/components/desktop/dataList/dataList.widget.tsx","../src/components/desktop/dataList/index.ts","../src/components/base/lastTrades/lastTrades.ui.tsx","../src/components/base/lastTrades/lastTrades.script.tsx","../src/components/base/lastTrades/lastTrades.widget.tsx","../src/components/base/lastTrades/index.ts","../src/components/desktop/assetView/faucet/faucet.ui.tsx","../src/components/desktop/assetView/faucet/faucet.script.tsx","../src/components/desktop/assetView/faucet/faucet.widget.tsx","../src/components/desktop/assetView/assetView.ui.tsx","../src/components/desktop/assetView/assetView.script.tsx","../src/components/desktop/assetView/assetView.widget.tsx","../src/components/desktop/assetView/index.ts","../src/components/base/orderBook/orderContext.tsx","../src/components/base/orderBook/types.ts","../src/components/base/orderBook/cellBar.tsx","../src/components/desktop/orderBook/cell.desktop.tsx","../src/components/desktop/orderBook/listBox.desktop.tsx","../src/components/desktop/orderBook/asks.desktop.tsx","../src/components/desktop/orderBook/bids.desktop.tsx","../src/components/desktop/orderBook/depthSelect.desktop.tsx","../src/components/desktop/orderBook/header.desktop.tsx","../src/components/base/orderBook/midPriceView.tsx","../src/components/base/orderBook/markPrice.tsx","../src/components/desktop/orderBook/markPrice.desktop.tsx","../src/components/desktop/orderBook/index.desktop.tsx","../src/components/mobile/fundingRate/fundingRate.ui.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.script.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.ui.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.widget.tsx","../src/components/mobile/fundingRate/fundingRate.script.tsx","../src/components/mobile/fundingRate/fundingRate.widget.tsx","../src/components/mobile/fundingRate/index.ts","../src/components/mobile/orderBook/cell.tsx","../src/components/mobile/orderBook/listBox.tsx","../src/components/mobile/orderBook/asks.tsx","../src/components/mobile/orderBook/bids.tsx","../src/components/mobile/orderBook/depthSelect.tsx","../src/components/mobile/orderBook/header.tsx","../src/components/mobile/orderBook/markPrice.tsx","../src/components/mobile/orderBook/index.tsx","../src/components/base/orderBook/orderBook.ui.tsx","../src/utils/utils.ts","../src/components/base/orderBook/orderBook.script.tsx","../src/components/base/orderBook/orderBook.widget.tsx","../src/components/base/orderBook/index.ts","../src/components/desktop/riskRate/riskRate.ui.tsx","../src/components/desktop/riskRate/riskRate.script.tsx","../src/components/desktop/riskRate/riskRate.widget.tsx","../src/components/desktop/riskRate/index.ts","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.ui.tsx","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.script.tsx","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.widget.tsx","../src/components/desktop/orderBookAndTrades/index.ts","../src/components/desktop/layout/switchLayout.tsx","../src/components/mobile/topTab/topTab.script.tsx","../src/components/mobile/tradingview/tradingview.script.tsx","../src/components/base/icons.tsx","../src/components/mobile/tradingview/tradingview.ui.tsx","../src/components/mobile/tradingview/tradingview.widget.tsx","../src/components/mobile/lastTrades/lastTrades.widget.tsx","../src/components/mobile/tradeData/tradeData.ui.tsx","../src/components/mobile/tradeData/tradeData.script.tsx","../src/components/mobile/tradeData/tradeData.widget.tsx","../src/components/mobile/tradeData/index.ts","../src/components/mobile/topTab/topTab.ui.tsx","../src/components/mobile/topTab/topTab.widget.tsx","../src/components/mobile/topTab/index.ts","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.ui.tsx","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.script.tsx","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.widget.tsx","../src/components/mobile/orderBookAndEntry/index.ts","../src/components/mobile/dataList/dataList.script.tsx","../src/components/mobile/dataList/dataList.ui.tsx","../src/components/mobile/dataList/dataList.widget.tsx","../src/components/mobile/dataList/index.ts","../src/index.ts","../src/components/desktop/layout/splitLayout/splitLayout.tsx","../src/components/desktop/layout/splitLayout/splitLineBar.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.ui.tsx","../src/components/mobile/bottomNavBar/account/account.widget.tsx","../src/components/mobile/bottomNavBar/account/account.script.tsx","../src/components/mobile/accountSheet/accountSheet.ui.tsx","../src/components/mobile/accountSheet/icons.tsx","../src/components/mobile/accountSheet/accountSheet.script.tsx","../src/components/mobile/accountSheet/accountSheet.widget.tsx","../src/components/mobile/bottomNavBar/account/account.ui.tsx","../src/components/mobile/bottomNavBar/balance/balance.ui.tsx","../src/components/mobile/bottomNavBar/balance/balance.script.tsx","../src/components/mobile/bottomNavBar/balance/balance.widget.tsx","../src/components/mobile/bottomNavBar/chain/chain.ui.tsx","../src/components/mobile/bottomNavBar/chain/chain.script.tsx","../src/components/mobile/bottomNavBar/chain/chain.widget.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.script.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.widget.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.ui.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.script.tsx","../src/components/mobile/portfolioSheet/riskIndicator.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.widget.tsx","../src/components/mobile/fundingRateModal/index.ts","../src/pages/trading/trading.ui.tsx","../src/pages/trading/trading.ui.desktop.tsx","../src/components/desktop/layout/sortablePanel.tsx","../src/components/desktop/notify/rwaNotification.tsx","../src/hooks/useShowRwaCountdown.ts","../src/pages/trading/trading.script.tsx","../src/components/desktop/layout/useSplitPersistent.ts","../src/pages/trading/hooks/useFirstTimeDeposit.ts","../src/pages/trading/trading.ui.mobile.tsx","../src/components/base/countdown.tsx","../src/pages/trading/trading.widget.tsx","../src/provider/tradingPageProvider.tsx","../src/pages/trading/trading.page.tsx"],"names":["useDataTap","localStorage","useMemo","jsx","useTranslation","Divider","Flex","Text","useScreen","jsxs","usePositionStream","OrderStatus","Tooltip","TabType","Box","Button","useState","modal","toast","useAccount","useLocalStorage","AccountStatusEnum","cn","Fragment","useCallback","useConfig","visible","React","createContext","useContext","TooltipContent","Decimal","Row","ArrowDownShortIcon","DesktopLayout","MobileLayout","Grid","getPrecisionByNumber","CaretDownIcon","CaretUpIcon","Picker","Header","init_markPrice","EMPTY_LIST","Spinner","OrderBook","useEffect","useOrderStream","useSymbolsInfo","level","init_orderBook","useAppContext","gradientTextVariants","useMarginRatio","TabPanel","Tabs","Title","useRef","CloseIcon","DropdownMenuContent","DropdownMenuRoot","DropdownMenuTrigger","offsetY","TradingviewWidget","init_lastTrades_widget","openInterest","OrderEntryWidget","LazyOrderBookWidget","useDataListScript","init_dataList_script","AssetsModule","Checkbox","formatSymbol","createElement","LazyPositionHeaderWidget","PositionsView","DataList","init_dataList_ui","DataListWidget","init_dataList_widget","dataList_exports","init_dataList","SimpleDialog","useMutation","useWalletConnector","ChainNamespace","isTestnet","AuthGuard","ArrowUpShortIcon","EyeCloseIcon","EyeIcon","Statistic","useCollateral","useEventEmitter","useLeverage","leverage","CSS","ExclamationFillIcon","size","endTime","startTime","pos","space","symbolInfoBarHeight","LazyDataListWidget"],"mappings":"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","sourcesContent":["import { useLocalStorage } from \"@orderly.network/hooks\";\n\nexport const useTradingLocalStorage = (props?: {\n pnlNotionalDecimalPrecision?: number;\n}) => {\n const [unPnlPriceBasis, setUnPnlPriceBasic] = useLocalStorage(\n \"unPnlPriceBasis\",\n \"markPrice\",\n );\n const [pnlNotionalDecimalPrecision, setPnlNotionalDecimalPrecision] =\n useLocalStorage(\n \"pnlNotionalDecimalPrecision\",\n props?.pnlNotionalDecimalPrecision ?? 2,\n );\n const [showAllSymbol, setShowAllSymbol] = useLocalStorage(\n \"showAllSymbol\",\n true,\n );\n\n const [hideAssets, setHideAssets] = useLocalStorage(\"hideAssets\", false);\n\n return {\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n pnlNotionalDecimalPrecision,\n setPnlNotionalDecimalPrecision,\n showAllSymbol,\n setShowAllSymbol,\n hideAssets,\n setHideAssets,\n };\n};\n","import { useMemo } from \"react\";\nimport { usePositionStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { useTradingLocalStorage } from \"./useTradingLocalStorage\";\n\nexport const usePositionsCount = (symbol?: string) => {\n const { showAllSymbol } = useTradingLocalStorage();\n const [data] = usePositionStream(showAllSymbol ? undefined : symbol);\n\n const count = useMemo(() => {\n return data.rows?.length;\n }, [data.rows?.length]);\n\n const positionCount = useDataTap(count) ?? 0;\n\n return {\n positionCount,\n };\n};\n","import { useOrderStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AlgoOrderRootType, OrderStatus } from \"@orderly.network/types\";\nimport { TabType } from \"@orderly.network/ui-orders\";\nimport { useTradingLocalStorage } from \"./useTradingLocalStorage\";\n\nexport const usePendingOrderCount = (symbol?: string) => {\n const { showAllSymbol } = useTradingLocalStorage();\n\n const pendingOrdersPageSizeKey = `orderly_${TabType.pending}_pageSize`;\n const tpslOrdersPageSizeKey = `orderly_${TabType.tp_sl}_pageSize`;\n //\n // const [pendingOrderPageSize] = useLocalStorage(pendingOrdersPageSizeKey, 500);\n // const [tpslOrderPageSize] = useLocalStorage(tpslOrdersPageSizeKey, 500);\n\n const [pendingOrders, { total: pendingCount }] = useOrderStream(\n {\n symbol: showAllSymbol ? undefined : symbol,\n status: OrderStatus.INCOMPLETE,\n excludes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n // size: pendingOrderPageSize,\n size: 500,\n // sourceTypeAll: true,\n },\n {\n keeplive: true,\n },\n );\n\n const [tpslOrders, { total: tpslCount }] = useOrderStream(\n {\n symbol: showAllSymbol ? undefined : symbol,\n status: OrderStatus.INCOMPLETE,\n includes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n // size: tpslOrderPageSize,\n size: 500,\n // sourceTypeAll: true,\n },\n {\n keeplive: true,\n },\n );\n\n const pendingOrderCount = useDataTap(pendingCount) ?? 0;\n const tpSlOrderCount = useDataTap(tpslCount) ?? 0;\n\n return {\n pendingOrderCount,\n tpSlOrderCount,\n };\n};\n","export { useTradingLocalStorage } from \"./useTradingLocalStorage\";\nexport { usePositionsCount } from \"./usePositionsCount\";\nexport { usePendingOrderCount } from \"./usePendingOrderCount\";\n","import { createContext, useContext } from \"react\";\nimport { TradingPageState } from \"../types/types\";\n\nexport const TradingPageContext = createContext({} as TradingPageState);\n\nexport const useTradingPageContext = () => {\n return useContext(TradingPageContext);\n};\n","import type { PositionsProps } from \"@orderly.network/ui-positions\";\nimport {\n usePendingOrderCount,\n usePositionsCount,\n useTradingLocalStorage,\n} from \"../../../hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum DataListTabType {\n positions = \"Positions\",\n pending = \"Pending\",\n tp_sl = \"TP/SL\",\n filled = \"Filled\",\n positionHistory = \"Position history\",\n orderHistory = \"Order history\",\n liquidation = \"Liquidation\",\n assets = \"Assets\",\n}\n\nexport const useDataListScript = (\n inputs: { current?: DataListTabType } & PositionsProps,\n) => {\n const {\n current,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n symbol,\n includedPendingOrder,\n } = inputs;\n\n const localStorage = useTradingLocalStorage({ pnlNotionalDecimalPrecision });\n\n const { onSymbolChange } = useTradingPageContext();\n\n const { positionCount } = usePositionsCount(symbol);\n\n const { pendingOrderCount, tpSlOrderCount } = usePendingOrderCount(symbol);\n\n return {\n current,\n sharePnLConfig,\n symbol,\n calcMode: localStorage.unPnlPriceBasis,\n includedPendingOrder,\n ...localStorage,\n positionCount,\n pendingOrderCount,\n tpSlOrderCount,\n onSymbolChange,\n };\n};\n\nexport type DataListState = ReturnType<typeof useDataListScript>;\n","import { FC, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n Checkbox,\n Divider,\n DropdownMenuContent,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n ExclamationFillIcon,\n Flex,\n SettingFillIcon,\n Switch,\n Text,\n Tooltip,\n useScreen,\n Sheet,\n SheetContent,\n SheetTrigger,\n modal,\n} from \"@orderly.network/ui\";\nimport { SettingState } from \"./setting.script\";\n\nexport const Setting: FC<SettingState> = (props) => {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n\n const SettingsContent = useMemo(() => {\n return () => (\n <>\n <div className=\"oui-flex oui-flex-col oui-text-sm\">\n <Flex\n itemAlign=\"center\"\n justify={isMobile ? \"center\" : \"start\"}\n className=\"oui-w-full\"\n >\n <Text className=\"oui-text-base oui-pb-3\">\n {t(\"trading.portfolioSettings\")}\n </Text>\n </Flex>\n <Divider />\n <Text className=\"oui-pb-3 oui-text-base-contrast-54 oui-mt-2\">\n {t(\"trading.portfolioSettings.decimalPrecision\")}\n </Text>\n <DecimalPrecisionCheckbox\n value={props.pnlNotionalDecimalPrecision}\n onValueChange={(e) => {\n props.setPnlNotionalDecimalPrecision(e);\n setOpen(false);\n }}\n />\n <Divider className=\"oui-my-3\" />\n <Text className=\"oui-pb-3 oui-text-base-contrast-54 oui-mt-2\">\n {t(\"trading.portfolioSettings.unrealPnlPriceBasis\")}\n </Text>\n <UnPnlPriceBasisCheckBox\n value={props.unPnlPriceBasis}\n onValueChange={(e) => {\n props.setUnPnlPriceBasic(e);\n setOpen(false);\n }}\n />\n </div>\n <Divider className=\"oui-my-3\" />\n <Flex itemAlign=\"center\" gap={1} justify=\"between\">\n <Flex gap={1} itemAlign=\"center\">\n <Text size=\"sm\" intensity={54}>\n {t(\"trading.portfolioSettings.reversePosition\")}\n </Text>\n {isMobile ? (\n <ExclamationFillIcon\n size={14}\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-cursor-pointer\"\n onClick={() => {\n modal.alert({\n title: t(\"common.tips\"),\n message: t(\n \"trading.portfolioSettings.reversePosition.tooltip\",\n ),\n });\n }}\n />\n ) : (\n <Tooltip\n content={t(\"trading.portfolioSettings.reversePosition.tooltip\")}\n className=\"oui-max-w-[300px]\"\n >\n <ExclamationFillIcon\n size={14}\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-cursor-pointer\"\n />\n </Tooltip>\n )}\n </Flex>\n <Switch\n checked={props.reversePosition}\n onCheckedChange={(checked: boolean) => {\n props.setReversePosition(checked);\n }}\n />\n </Flex>\n </>\n );\n }, [\n t,\n isMobile,\n props.pnlNotionalDecimalPrecision,\n props.unPnlPriceBasis,\n props.reversePosition,\n ]);\n\n const triggerButton = (\n <Button\n size=\"xs\"\n type=\"button\"\n variant=\"contained\"\n className=\"oui-bg-transparent hover:oui-bg-transparent\"\n >\n <SettingFillIcon\n size={16}\n color=\"white\"\n opacity={1}\n className=\"oui-text-white/[.36] hover:oui-text-white/80\"\n />\n </Button>\n );\n\n return (\n <Flex gap={0}>\n <Flex gap={1}>\n <Checkbox\n id=\"oui-checkbox-hideOtherSymbols\"\n color=\"white\"\n checked={props.hideOtherSymbols}\n onCheckedChange={(checked: boolean) => {\n props.setHideOtherSymbols(checked);\n }}\n />\n <label\n className=\"oui-text-xs oui-text-base-contrast-54 oui-cursor-pointer\"\n htmlFor=\"oui-checkbox-hideOtherSymbols\"\n >\n {t(\"trading.hideOtherSymbols\")}\n </label>\n </Flex>\n\n {isMobile ? (\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger asChild>{triggerButton}</SheetTrigger>\n <SheetContent side=\"bottom\" className=\"oui-px-5 oui-pt-3\">\n <div\n style={{\n paddingBottom: `max(32px, calc(12px + env(safe-area-inset-bottom)))`,\n }}\n >\n <SettingsContent />\n </div>\n </SheetContent>\n </Sheet>\n ) : (\n <DropdownMenuRoot open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger asChild>{triggerButton}</DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"oui-px-5 oui-py-3 oui-w-[360px]\"\n alignOffset={2}\n align=\"end\"\n >\n <SettingsContent />\n </DropdownMenuContent>\n </DropdownMenuRoot>\n )}\n </Flex>\n );\n};\n\nconst UnPnlPriceBasisCheckBox = (props: {\n value: string;\n onValueChange: (value: string) => void;\n}) => {\n const { value, onValueChange } = props;\n const { t } = useTranslation();\n\n // \"markPrice\" | \"lastPrice\"\n return (\n <Flex gap={2}>\n <RadioButton\n sel={value === \"markPrice\"}\n label={t(\"common.markPrice\")}\n value={\"markPrice\"}\n onCheckChange={onValueChange}\n />\n <RadioButton\n sel={value === \"lastPrice\"}\n label={t(\"common.lastPrice\")}\n value={\"lastPrice\"}\n onCheckChange={onValueChange}\n />\n </Flex>\n );\n};\n\nconst DecimalPrecisionCheckbox = (props: {\n value: number;\n onValueChange: (value: number) => void;\n}) => {\n const { value, onValueChange } = props;\n return (\n <Flex gap={2}>\n <RadioButton\n sel={value === 0}\n label={1}\n value={0}\n onCheckChange={onValueChange}\n />\n <RadioButton\n sel={value === 1}\n label={0.1}\n value={1}\n onCheckChange={onValueChange}\n />\n <RadioButton\n sel={value === 2}\n label={0.01}\n value={2}\n onCheckChange={onValueChange}\n />\n </Flex>\n );\n};\n\n// const InnerCheckbox = (props: {\n// sel: boolean;\n// label: any;\n// value: any;\n// onCheckChange: (value: any) => void;\n// }) => {\n// const { sel, label, value, onCheckChange } = props;\n// return (\n// <Flex\n// onClick={(e) => {\n// onCheckChange(value);\n// e.stopPropagation();\n// }}\n// gap={1}\n// >\n// <Checkbox color=\"white\" checked={sel} />\n// <Text size=\"xs\" intensity={sel ? 98 : 54}>\n// {`${label}`}\n// </Text>\n// </Flex>\n// );\n// };\n\nconst RadioButton = (props: {\n sel: boolean;\n label: any;\n value: any;\n onCheckChange: (value: any) => void;\n}) => {\n const { sel, label, value, onCheckChange } = props;\n return (\n <Flex\n onClick={(e) => {\n onCheckChange(value);\n e.stopPropagation();\n }}\n gap={1}\n className=\"oui-cursor-pointer\"\n >\n {sel ? <SelIcon /> : <UnselIcon />}\n <Text size=\"2xs\" intensity={sel ? 98 : 54}>\n {label}\n </Text>\n </Flex>\n );\n};\n\nconst SelIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-white\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n </svg>\n );\n};\n\nconst UnselIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n","import { useReversePositionEnabled } from \"@orderly.network/ui-positions\";\nimport { SettingWidgetProps } from \"./setting.widget\";\n\nexport const useSettingScript = (props: SettingWidgetProps) => {\n const { isEnabled, setEnabled } = useReversePositionEnabled();\n return {\n ...props,\n reversePosition: isEnabled,\n setReversePosition: setEnabled,\n };\n};\n\nexport type SettingState = ReturnType<typeof useSettingScript>;\n","import React from \"react\";\nimport { useSettingScript } from \"./setting.script\";\nimport { Setting } from \"./setting.ui\";\n\nexport type SettingWidgetProps = {\n pnlNotionalDecimalPrecision: any;\n setPnlNotionalDecimalPrecision: (value: number) => void;\n unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n setUnPnlPriceBasic: (value: string) => void;\n hideOtherSymbols: any;\n setHideOtherSymbols: (value: boolean) => void;\n};\n\nexport const SettingWidget: React.FC<SettingWidgetProps> = (props) => {\n const state = useSettingScript(props);\n return <Setting {...state} />;\n};\n","export { Setting } from \"./setting.ui\";\nexport { SettingWidget } from \"./setting.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Checkbox,\n Divider,\n Flex,\n Statistic,\n Text,\n useScreen,\n} from \"@orderly.network/ui\";\nimport { CloseAllPositionsWidget } from \"@orderly.network/ui-positions\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SettingWidget } from \"../../desktop/dataList/setting\";\nimport type { PositionHeaderState } from \"./positionHeader.script\";\n\nexport const PositionHeader: React.FC<PositionHeaderState> = (props) => {\n const { isMobile } = useScreen();\n return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst MobileLayout: React.FC<PositionHeaderState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n direction={\"column\"}\n gap={2}\n width={\"100%\"}\n itemAlign={\"start\"}\n p={2}\n className=\"oui-rounded-b-xl oui-bg-base-9\"\n >\n <Flex width={\"100%\"} justify={\"between\"} gap={2}>\n <UnrealPnL\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-54\",\n root: \"oui-text-sm\",\n }}\n {...props}\n />\n <Notional\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-54\",\n root: \"oui-text-sm\",\n }}\n {...props}\n />\n </Flex>\n <Divider className=\"oui-w-full\" />\n <Flex\n className=\"oui-cursor-pointer oui-gap-[2px]\"\n justify={\"between\"}\n width={\"100%\"}\n >\n <Flex>\n <SettingWidget\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n setPnlNotionalDecimalPrecision={\n props.setPnlNotionalDecimalPrecision\n }\n unPnlPriceBasis={props.unPnlPriceBasis}\n setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n hideOtherSymbols={!props.showAllSymbol}\n setHideOtherSymbols={(value: boolean) => {\n props.setShowAllSymbol(!value);\n }}\n />\n </Flex>\n <CloseAllPositionsWidget symbol={props.symbol} />\n </Flex>\n </Flex>\n );\n};\n\nconst DesktopLayout: React.FC<PositionHeaderState> = (props) => {\n return (\n <Flex py={2} px={3} gap={6} width={\"100%\"} justify={\"between\"}>\n <Flex gap={5}>\n <UnrealPnL\n {...props}\n classNames={{ label: \"oui-text-base-contrast-54\" }}\n />\n <Notional\n {...props}\n classNames={{ label: \"oui-text-base-contrast-54\" }}\n />\n </Flex>\n\n <CloseAllPositionsWidget symbol={props.symbol} />\n </Flex>\n );\n};\n\nconst UnrealPnL: React.FC<\n PositionHeaderState & {\n classNames?: { root?: string; label?: string; value?: string };\n }\n> = (props) => {\n const { t } = useTranslation();\n\n const unrealPnLClsName =\n typeof props.unrealPnL === \"number\"\n ? props.unrealPnL >= 0\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\"\n : \"oui-text-base-contrast-80\";\n\n const unrealPnLROIClsName =\n typeof props.unrealPnL === \"number\" && props.unrealPnlROI\n ? props.unrealPnlROI >= 0\n ? \"oui-text-success-darken\"\n : \"oui-text-danger-darken\"\n : \"oui-text-base-contrast-80\";\n\n return (\n <Statistic label={t(\"common.unrealizedPnl\")} classNames={props.classNames}>\n <Flex gap={1}>\n <Text.pnl\n dp={props.pnlNotionalDecimalPrecision}\n intensity={80}\n className={unrealPnLClsName}\n >\n {props.unrealPnL ?? \"--\"}\n </Text.pnl>\n {typeof props.unrealPnlROI !== \"undefined\" && (\n <Text.roi\n prefix=\"(\"\n suffix=\")\"\n rule=\"percentages\"\n size=\"2xs\"\n dp={props.pnlNotionalDecimalPrecision}\n className={unrealPnLROIClsName}\n >\n {props.unrealPnlROI}\n </Text.roi>\n )}\n </Flex>\n </Statistic>\n );\n};\n\nconst Notional: React.FC<\n PositionHeaderState & {\n classNames?: { root?: string; label?: string; value?: string };\n }\n> = (props) => {\n const { t } = useTranslation();\n return (\n <Statistic label={t(\"common.notional\")} classNames={props.classNames}>\n <Text.numeral\n dp={props.pnlNotionalDecimalPrecision}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n >\n {props.notional ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n","import { usePositionStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { useTradingLocalStorage } from \"../../../hooks\";\n\nexport const usePositionHeaderScript = (inputs: {\n pnlNotionalDecimalPrecision?: number;\n setPnlNotionalDecimalPrecision: (value: number) => void;\n unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n setUnPnlPriceBasic: (value: string) => void;\n symbol?: string;\n}) => {\n const {\n pnlNotionalDecimalPrecision,\n setPnlNotionalDecimalPrecision,\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n symbol,\n } = inputs;\n const calcMode = unPnlPriceBasis;\n\n const [data] = usePositionStream(symbol, {\n calcMode,\n });\n const aggregated = useDataTap(data.aggregated);\n\n const unrealPnL = aggregated?.total_unreal_pnl;\n const unrealPnlROI = aggregated?.unrealPnlROI;\n const notional = aggregated?.notional;\n const { showAllSymbol, setShowAllSymbol } = useTradingLocalStorage();\n\n return {\n pnlNotionalDecimalPrecision,\n unrealPnL,\n unrealPnlROI,\n notional,\n showAllSymbol,\n setShowAllSymbol,\n symbol,\n setPnlNotionalDecimalPrecision,\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n };\n};\n\nexport type PositionHeaderState = ReturnType<typeof usePositionHeaderScript>;\n","import React from \"react\";\nimport { usePositionHeaderScript } from \"./positionHeader.script\";\nimport { PositionHeader } from \"./positionHeader.ui\";\n\nexport const PositionHeaderWidget: React.FC<{\n pnlNotionalDecimalPrecision?: number;\n setPnlNotionalDecimalPrecision: (value: number) => void;\n unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n setUnPnlPriceBasic: (value: string) => void;\n symbol?: string;\n}> = (props) => {\n const state = usePositionHeaderScript(props);\n return <PositionHeader {...state} />;\n};\n","export { PositionHeader } from \"./positionHeader.ui\";\nexport { PositionHeaderWidget } from \"./positionHeader.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AssetsModule } from \"@orderly.network/portfolio\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport {\n Box,\n Divider,\n Flex,\n InfoCircleIcon,\n ScrollArea,\n TabPanel,\n Tabs,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport type { TabPanelProps } from \"@orderly.network/ui\";\nimport { DesktopOrderListWidget, TabType } from \"@orderly.network/ui-orders\";\nimport {\n LiquidationWidget,\n PositionHistoryWidget,\n PositionsWidget,\n} from \"@orderly.network/ui-positions\";\nimport { DataListState, DataListTabType } from \"./dataList.script\";\n\nconst LazySettingWidget = React.lazy(() =>\n import(\"./setting\").then((mod) => {\n return { default: mod.SettingWidget };\n }),\n);\n\nconst LazyPositionHeaderWidget = React.lazy(() =>\n import(\"../../base/positionHeader\").then((mod) => {\n return { default: mod.PositionHeaderWidget };\n }),\n);\n\nconst PositionsView: React.FC<DataListState> = (props) => {\n return (\n <Flex direction=\"column\" width=\"100%\" height=\"100%\">\n <React.Suspense fallback={null}>\n <LazyPositionHeaderWidget\n setPnlNotionalDecimalPrecision={props.setPnlNotionalDecimalPrecision}\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n symbol={!!props.showAllSymbol ? undefined : props.symbol}\n setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n unPnlPriceBasis={props.unPnlPriceBasis}\n />\n </React.Suspense>\n <Divider className=\"oui-w-full\" />\n <Box className=\"oui-h-[calc(100%_-_60px)]\" width=\"100%\">\n <PositionsWidget\n symbol={!!props.showAllSymbol ? undefined : props.symbol}\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n sharePnLConfig={props.sharePnLConfig}\n calcMode={props.calcMode}\n includedPendingOrder={props.includedPendingOrder}\n onSymbolChange={props.onSymbolChange}\n />\n </Box>\n </Flex>\n );\n};\n\nexport const LiquidationTab: React.FC = () => {\n const { t } = useTranslation();\n return (\n <div className=\"oui-flex oui-space-x-1\">\n <span>{t(\"positions.liquidation\")}</span>\n <Tooltip\n className=\"oui-max-w-[275px] oui-bg-base-6\"\n content={\n <div>\n <div className=\"oui-text-pretty\">\n {t(\"positions.Liquidation.tooltip.liquidation\")}\n </div>\n <div>\n <a\n href=\"https://orderly.network/docs/introduction/trade-on-orderly/perpetual-futures/liquidations\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"oui-text-primary\"\n >\n {t(\"positions.Liquidation.tooltip.viewMore\")}\n </a>\n </div>\n </div>\n }\n arrow={{ className: \"oui-fill-base-6\" }}\n >\n <span className=\"oui-hidden group-data-[state=active]:oui-block oui-cursor-pointer\">\n <InfoCircleIcon />\n </span>\n </Tooltip>\n </div>\n );\n};\n\nexport const DataList: React.FC<DataListState> = (props) => {\n const { t } = useTranslation();\n\n const {\n positionCount = 0,\n pendingOrderCount = 0,\n tpSlOrderCount = 0,\n showAllSymbol,\n symbol,\n onSymbolChange,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n setShowAllSymbol,\n current,\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n setPnlNotionalDecimalPrecision,\n } = props;\n\n const tabPanelItems: (TabPanelProps & { content?: React.ReactNode })[] = [\n {\n value: DataListTabType.positions,\n title: `${t(\"common.positions\")} ${positionCount > 0 ? `(${positionCount})` : \"\"}`,\n content: <PositionsView {...props} />,\n },\n {\n value: DataListTabType.pending,\n title: `${t(\"orders.status.pending\")} ${pendingOrderCount > 0 ? `(${pendingOrderCount})` : \"\"}`,\n content: (\n <DesktopOrderListWidget\n type={TabType.pending}\n ordersStatus={OrderStatus.INCOMPLETE}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-pending-table-body\" }}\n />\n ),\n },\n {\n value: DataListTabType.tp_sl,\n title: `${t(\"common.tpsl\")} ${tpSlOrderCount > 0 ? `(${tpSlOrderCount})` : \"\"}`,\n content: (\n <DesktopOrderListWidget\n type={TabType.tp_sl}\n ordersStatus={OrderStatus.INCOMPLETE}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-tpsl-table-body\" }}\n />\n ),\n },\n {\n value: DataListTabType.filled,\n title: t(\"orders.status.filled\"),\n content: (\n <DesktopOrderListWidget\n type={TabType.filled}\n symbol={showAllSymbol ? undefined : symbol}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n ordersStatus={OrderStatus.FILLED}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-filled-table-body\" }}\n sharePnLConfig={sharePnLConfig}\n />\n ),\n },\n {\n value: DataListTabType.positionHistory,\n title: t(\"positions.positionHistory\"),\n content: (\n <PositionHistoryWidget\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n sharePnLConfig={sharePnLConfig}\n />\n ),\n },\n {\n value: DataListTabType.orderHistory,\n title: t(\"orders.orderHistory\"),\n content: (\n <DesktopOrderListWidget\n type={TabType.orderHistory}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-orderHistory-table-body\" }}\n sharePnLConfig={sharePnLConfig}\n />\n ),\n },\n {\n value: DataListTabType.liquidation,\n title: <LiquidationTab />,\n content: (\n <LiquidationWidget symbol={showAllSymbol ? undefined : symbol} />\n ),\n },\n {\n value: DataListTabType.assets,\n title: t(\"common.assets\"),\n content: (\n <Flex\n width=\"100%\"\n height=\"100%\"\n className=\"oui-overflow-y-auto oui-hide-scrollbar oui-pt-3\"\n >\n <AssetsModule.AssetsDataTableWidget\n classNames={{\n scrollRoot:\n \"oui-h-full oui-mb-6 oui-mt-0 oui-p-0 oui-pt-3 oui-h-[calc(100%_-_40px)]\",\n root: \"oui-gap-4 oui-h-full\",\n desc: \"oui-ml-1\",\n }}\n dataTableClassNames={{\n header: \"oui-bg-base-9\",\n root: \"oui-h-[calc(100%_-_28px)]\",\n }}\n />\n </Flex>\n ),\n },\n ];\n\n return (\n <Tabs\n defaultValue={current || DataListTabType.positions}\n variant=\"contained\"\n trailing={\n <React.Suspense fallback={null}>\n <LazySettingWidget\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n setPnlNotionalDecimalPrecision={setPnlNotionalDecimalPrecision}\n unPnlPriceBasis={unPnlPriceBasis}\n setUnPnlPriceBasic={setUnPnlPriceBasic}\n hideOtherSymbols={!showAllSymbol}\n setHideOtherSymbols={(value) => setShowAllSymbol(!value)}\n />\n </React.Suspense>\n }\n size=\"lg\"\n className=\"oui-h-full\"\n classNames={{\n trigger: \"oui-group\",\n tabsContent: \"oui-h-[calc(100%_-_32px)]\",\n }}\n >\n {tabPanelItems.map((item) => {\n const { content, ...rest } = item;\n return (\n <TabPanel {...rest} key={`item-${rest.value}`}>\n {content}\n </TabPanel>\n );\n })}\n </Tabs>\n );\n};\n","import React from \"react\";\nimport type { PositionsProps } from \"@orderly.network/ui-positions\";\nimport { DataListTabType, useDataListScript } from \"./dataList.script\";\nimport { DataList } from \"./dataList.ui\";\n\nexport const DataListWidget: React.FC<\n { current?: DataListTabType } & PositionsProps\n> = (props) => {\n const state = useDataListScript(props);\n return <DataList {...state} />;\n};\n","export { DataList } from \"./dataList.ui\";\nexport { DataListWidget } from \"./dataList.widget\";\n","import React, { FC, ReactNode } from \"react\";\nimport { Box, cn, Grid, ListView, Text } from \"@orderly.network/ui\";\nimport { LastTradesState } from \"./lastTrades.script\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const LastTrades: FC<\n LastTradesState & {\n classNames?: {\n root?: string;\n list?: string;\n listHeader?: string;\n listItem?: {\n left?: string;\n mid?: string;\n right?: string;\n };\n };\n style?: React.CSSProperties;\n }\n> = (props) => {\n return (\n <Box\n className={cn(\n \"oui-grid oui-grid-rows=[auto,1fr] oui-h-full oui-w-full\",\n props.classNames?.root\n )}\n style={props.style}\n >\n <Box className=\"oui-pr-1\">\n <Header\n base={props.base}\n quote={props.quote}\n className={props.classNames?.listHeader}\n />\n </Box>\n <List\n data={props.data}\n isLoading={props.isLoading}\n baseDp={props.baseDp}\n quoteDp={props.quoteDp}\n classNames={props.classNames?.listItem}\n className={props.classNames?.list}\n />\n </Box>\n );\n};\n\nconst Row = (props: {\n key?: React.Key | null;\n classNames?: {\n root?: string;\n left?: string;\n mid?: string;\n right?: string;\n };\n left: ReactNode | string;\n mid: ReactNode | string;\n right: ReactNode | string;\n}) => {\n const { left, mid, right, classNames } = props;\n return (\n // <Flex\n // key={key}\n // height={20}\n // gap={2}\n // width={\"100%\"}\n // className={cn(\"oui-text-xs oui-tabular-nums\", classNames?.root)}\n // >\n // <Box className={cn(\"oui-flex-1\", classNames?.left)}>{left}</Box>\n // <Box className={cn(\"oui-flex-1\", classNames?.mid)}>{mid}</Box>\n // <Box className={cn(\"oui-flex-1 oui-text-right\", classNames?.right)}>\n // {right}\n // </Box>\n // </Flex>\n\n <Grid\n cols={3}\n gapX={2}\n width=\"100%\"\n className={cn(\"oui-text-xs oui-tabular-nums\", classNames?.root)}\n >\n <div className={cn(\"oui-flex-1\", classNames?.left)}>{left}</div>\n <div className={cn(\"oui-flex-1\", classNames?.mid)}>{mid}</div>\n <div className={cn(\"oui-flex-1 oui-text-right\", classNames?.right)}>\n {right}\n </div>\n </Grid>\n );\n};\n\nconst Header = (props: { base: string; quote: string; className?: string }) => {\n const { t } = useTranslation();\n return (\n <Row\n left={t(\"common.time\")}\n mid={`${t(\"common.price\")}(${props.quote})`}\n right={`${t(\"common.qty\")}(${props.base})`}\n classNames={{\n root: cn(\n \"oui-text-base-contrast-54 oui-h-[32px] oui-sticky\",\n props.className\n ),\n }}\n />\n );\n};\n\nconst List = (props: {\n data?: any[];\n isLoading?: boolean;\n baseDp: number;\n quoteDp: number;\n classNames?: {\n left?: string;\n mid?: string;\n right?: string;\n };\n className?: string;\n}) => {\n return (\n <ListView\n dataSource={props.data}\n className={cn(\n \"oui-last-trades-list\",\n \"oui-w-full oui-h-full\",\n props.className,\n \"oui-overflow-auto\"\n )}\n contentClassName=\"!oui-space-y-0 oui-pr-[-4px]\"\n renderItem={(item, index) => {\n return (\n <Row\n key={index}\n left={\n <Text.formatted rule={\"date\"} formatString=\"HH:mm:ss\">\n {item?.ts}\n </Text.formatted>\n }\n mid={commifyOptional(item?.price, { fix: props.quoteDp })}\n right={commifyOptional(item?.size, { fix: props.baseDp })}\n classNames={{\n left: cn(\"oui-text-base-contrast-80\", props.classNames?.left),\n right: cn(\n item.side === OrderSide.BUY\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\",\n props.classNames?.mid\n ),\n mid: cn(\n item.side === OrderSide.BUY\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\",\n props.classNames?.right\n ),\n }}\n />\n );\n }}\n />\n );\n};\n","import { useMarketTradeStream, useSymbolsInfo } from \"@orderly.network/hooks\";\n\nexport const useLastTradesScript = (symbol: string) => {\n const { data, isLoading } = useMarketTradeStream(symbol);\n // const { quote, quote_dp, base, base_dp } = useContext(SymbolContext);\n const config = useSymbolsInfo()?.[symbol];\n const base = config?.(\"base\");\n const quote = config?.(\"quote\");\n const baseDp = config?.(\"base_dp\");\n const quoteDp = config?.(\"quote_dp\");\n// console.log(\"base, quote\", base, quote, \"baseDp, quoteDp\", baseDp, quoteDp);\n\n return {\n base,\n quote,\n data,\n isLoading,\n baseDp,\n quoteDp,\n };\n};\n\nexport type LastTradesState = ReturnType<typeof useLastTradesScript>;\n","import React from \"react\";\nimport { useLastTradesScript } from \"./lastTrades.script\";\nimport { LastTrades } from \"./lastTrades.ui\";\n\nexport const LastTradesWidget: React.FC<{\n symbol: string;\n classNames?: {\n root?: string;\n list?: string;\n listHeader?: string;\n listItem?: { left?: string; mid?: string; right?: string };\n };\n style?: React.CSSProperties;\n}> = (props) => {\n const state = useLastTradesScript(props.symbol);\n return (\n <LastTrades {...state} classNames={props.classNames} style={props.style} />\n );\n};\n","export { LastTrades } from \"./lastTrades.ui\";\nexport { LastTradesWidget } from \"./lastTrades.widget\";\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Button } from \"@orderly.network/ui\";\nimport { FaucetState } from \"./faucet.script\";\n\nexport function FaucetUi(props: FaucetState) {\n const { t } = useTranslation();\n\n if (!props.showFaucet) {\n return null;\n }\n\n return (\n <Button\n variant=\"outlined\"\n fullWidth\n size=\"md\"\n onClick={props.getFaucet}\n loading={props.loading}\n className=\"oui-text-primary-light oui-border-primary-light oui-rounded\"\n data-testid=\"oui-testid-assetView-getFaucet-button\"\n >\n {t(\"trading.faucet.getTestUSDC\")}\n </Button>\n );\n}\n","import { useMemo, useState } from \"react\";\nimport {\n useAccount,\n useConfig,\n useMutation,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { AccountStatusEnum, ChainNamespace } from \"@orderly.network/types\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport function useFaucetScript() {\n const { t } = useTranslation();\n const { connectedChain, namespace } = useWalletConnector();\n const { state, account } = useAccount();\n const config = useConfig();\n const operatorUrl = config.get<string>(\"operatorUrl\");\n\n const [getTestUSDC, { isMutating }] = useMutation(\n `${operatorUrl}/v1/faucet/usdc`\n );\n const [loading, setLoading] = useState<boolean>(false);\n\n const showFaucet = useMemo(() => {\n if (!connectedChain || !connectedChain.id) {\n return false;\n }\n return (\n (state.status === AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected) &&\n isTestnet(parseInt(connectedChain.id as string))\n );\n }, [state, connectedChain]);\n\n const getFaucet = () => {\n if (loading) {\n return;\n }\n setLoading(true);\n const message = t(\"trading.faucet.getTestUSDC.success\", {\n quantity: namespace === ChainNamespace.solana ? \"100\" : \"1,000\",\n });\n\n return getTestUSDC({\n chain_id: account.walletAdapter?.chainId.toString(),\n user_address: state.address,\n broker_id: config.get(\"brokerId\"),\n }).then(\n (res) => {\n setLoading(false);\n if (res.success) {\n return modal.alert({\n title: t(\"trading.faucet.getTestUSDC\"),\n message,\n onOk: () => {\n return new Promise((resolve) => resolve(true));\n },\n });\n }\n res.message && toast.error(res.message);\n },\n (error: Error) => {\n toast.error(error.message);\n }\n );\n };\n return { getFaucet, showFaucet, loading };\n}\n\nexport type FaucetState = ReturnType<typeof useFaucetScript>;\n","import { FaucetUi } from \"./faucet.ui\";\nimport { useFaucetScript } from \"./faucet.script\";\n\nexport function FaucetWidget() {\n const state = useFaucetScript();\n return (\n <FaucetUi {...state}/>\n )\n}","import { FC, useMemo, useState, useCallback, ReactNode } from \"react\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Flex,\n Text,\n Box,\n Button,\n ArrowDownShortIcon,\n EyeIcon,\n EyeCloseIcon,\n ChevronDownIcon,\n Tooltip,\n Divider,\n gradientTextVariants,\n cn,\n} from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { LTVRiskTooltipWidget } from \"@orderly.network/ui-order-entry\";\nimport { AssetViewState } from \"./assetView.script\";\nimport { FaucetWidget } from \"./faucet/faucet.widget\";\n\ninterface StatusInfo {\n title: string;\n description: string;\n titleColor?: any;\n titleClsName?: string;\n}\n\ninterface TooltipContentProps {\n description: ReactNode;\n formula: ReactNode;\n}\n\ninterface TotalValueProps {\n totalValue?: number;\n visible?: boolean;\n onToggleVisibility?: () => void;\n}\n\ninterface AssetDetailProps {\n label: string;\n description?: ReactNode;\n formula?: ReactNode;\n visible: boolean;\n value?: number | string;\n unit?: string;\n rule?: \"percentages\";\n isConnected?: boolean;\n showPercentage?: boolean;\n placeholder?: string;\n}\n\ninterface AssetValueListProps {\n visible?: boolean;\n freeCollateral?: number | null;\n marginRatioVal?: number;\n renderMMR?: string | number;\n isConnected: boolean;\n currentLtv?: string | number;\n}\n\nconst calculateTextColor = (val: number): string => {\n if (val >= 0 && val < 50) {\n return \"oui-text-success\";\n } else if (val >= 50 && val < 80) {\n return \"oui-text-warning\";\n } else if (val >= 80) {\n return \"oui-text-danger\";\n } else {\n return \"\";\n }\n};\n\nconst useCurrentStatusText = (): StatusInfo => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { t } = useTranslation();\n\n return useMemo(() => {\n const statusText = {\n wrongNetwork: {\n title: t(\"connector.wrongNetwork\"),\n description: t(\"connector.wrongNetwork.tooltip\"),\n titleColor: \"warning\",\n },\n connectWallet: {\n title: t(\"connector.connectWallet\"),\n description: t(\"connector.trade.connectWallet.tooltip\"),\n titleClsName:\n \"oui-text-transparent oui-bg-clip-text oui-gradient-brand\",\n },\n createAccount: {\n title: t(\"connector.createAccount\"),\n description: t(\"connector.trade.createAccount.tooltip\"),\n titleColor: \"primary\",\n },\n enableTrading: {\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.trade.enableTrading.tooltip\"),\n titleColor: \"primary\",\n },\n empty: {\n title: \"\",\n description: \"\",\n },\n };\n\n if (disabledConnect) {\n return statusText.connectWallet;\n }\n\n if (wrongNetwork) {\n return statusText.wrongNetwork;\n }\n\n // EnableTradingWithoutConnected is enabled trading status, so we don't need to show anything\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return statusText.empty;\n }\n\n if (state.status <= AccountStatusEnum.NotConnected) {\n return statusText.connectWallet;\n }\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return statusText.createAccount;\n }\n\n if (state.status < AccountStatusEnum.EnableTrading) {\n return statusText.enableTrading;\n }\n\n return statusText.empty;\n }, [t, state.status, wrongNetwork, disabledConnect]);\n};\n\nexport const TooltipContent: FC<TooltipContentProps> = (props) => {\n const { description, formula } = props;\n return (\n <div className=\"oui-min-w-[204px] oui-max-w-[240px] oui-text-2xs oui-leading-normal oui-text-base-contrast-80\">\n {typeof description !== \"undefined\" && description !== null && (\n <span>{description}</span>\n )}\n <Divider className=\"oui-border-white/10\" my={2} />\n {typeof formula !== \"undefined\" && formula !== null && (\n <span>{formula}</span>\n )}\n </div>\n );\n};\n\nconst TotalValue: FC<TotalValueProps> = (props) => {\n const { t } = useTranslation();\n const { totalValue, visible = true, onToggleVisibility } = props;\n return (\n <Flex\n direction=\"column\"\n gap={1}\n className=\"oui-text-2xs\"\n itemAlign=\"center\"\n >\n <Text.numeral\n visible={visible}\n weight=\"bold\"\n size=\"2xl\"\n className={gradientTextVariants({ color: \"brand\" })}\n as=\"div\"\n padding={false}\n dp={2}\n >\n {totalValue ?? \"--\"}\n </Text.numeral>\n <Flex gap={1} itemAlign=\"center\">\n <Text size=\"2xs\" color=\"neutral\" weight=\"semibold\">\n {`${t(\"trading.asset.myAssets\")} (USDC)`}\n </Text>\n <button onClick={onToggleVisibility}>\n {visible ? (\n <EyeIcon size={18} className=\"oui-text-base-contrast-54\" />\n ) : (\n <EyeCloseIcon size={18} className=\"oui-text-base-contrast-54\" />\n )}\n </button>\n </Flex>\n </Flex>\n );\n};\n\nconst AssetDetail: FC<AssetDetailProps> = (props) => {\n const {\n label,\n description,\n formula,\n visible,\n value,\n unit,\n rule,\n placeholder,\n } = props;\n return (\n <Flex justify=\"between\">\n <Tooltip\n className={\"\"}\n content={<TooltipContent description={description} formula={formula} />}\n >\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className=\"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\"\n >\n {label}\n </Text>\n </Tooltip>\n <Text.numeral\n visible={visible}\n size=\"2xs\"\n unit={unit}\n unitClassName=\"oui-text-base-contrast-36 oui-ml-0.5\"\n as=\"div\"\n rule={rule}\n padding={false}\n dp={2}\n // suffix={value && unit}\n placeholder={placeholder}\n >\n {value || \"--\"}\n </Text.numeral>\n </Flex>\n );\n};\n\nconst LTVDetail: FC<Pick<AssetDetailProps, \"value\" | \"visible\">> = (props) => {\n const { visible, value } = props;\n const { t } = useTranslation();\n return (\n <Flex justify=\"between\">\n <Tooltip\n className={cn(\"oui-bg-base-6 oui-p-2\")}\n content={<LTVRiskTooltipWidget />}\n >\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className=\"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\"\n >\n {t(\"transfer.LTV\")}\n </Text>\n </Tooltip>\n <Text\n size=\"2xs\"\n className={cn(\n \"select-none\",\n visible && calculateTextColor(Number(value)),\n )}\n >\n {visible ? `${value}%` : \"*****\"}\n </Text>\n </Flex>\n );\n};\n\nconst AssetValueList: FC<AssetValueListProps> = (props) => {\n const {\n visible = true,\n freeCollateral,\n marginRatioVal,\n renderMMR,\n isConnected,\n currentLtv,\n } = props;\n\n const [optionsOpen, setOptionsOpen] = useLocalStorage(\n \"orderly_entry_asset_list_open\",\n false,\n );\n const [open, setOpen] = useState<boolean>(optionsOpen);\n\n const { t } = useTranslation();\n\n const toggleOpen = useCallback(() => {\n setOpen((prevOpen) => !prevOpen);\n setTimeout(() => {\n setOptionsOpen(!open);\n }, 0);\n }, []);\n\n const showLTV =\n typeof currentLtv === \"number\" &&\n !Number.isNaN(currentLtv) &&\n currentLtv > 0;\n\n return (\n <Box className=\"oui-group\">\n <Flex\n justify=\"center\"\n gap={1}\n itemAlign=\"center\"\n className=\"oui-cursor-pointer\"\n onClick={toggleOpen}\n >\n <Divider className=\"oui-flex-1\" />\n <ChevronDownIcon\n size={12}\n color=\"white\"\n className={cn(\"oui-transition-transform\", open && \"oui-rotate-180\")}\n />\n <Divider className=\"oui-flex-1\" />\n </Flex>\n <Box\n style={{ transform: \"translateZ(0)\" }}\n className={cn(\n \"oui-select-none oui-space-y-1.5 oui-overflow-hidden\",\n \"oui-transition-[max-height] oui-duration-150\",\n \"group-hover:oui-will-change-[max-height]\",\n open\n ? showLTV\n ? \"oui-max-h-[94px]\"\n : \"oui-max-h-[69px]\"\n : \"oui-max-h-0\",\n )}\n >\n <AssetDetail\n label={t(\"trading.asset.freeCollateral\")}\n description={t(\"trading.asset.freeCollateral.tooltip\")}\n formula={t(\"trading.asset.freeCollateral.formula\")}\n visible={visible}\n // TODO: change AssetDetail value\n value={freeCollateral! === 0 ? (\"0\" as any) : freeCollateral}\n unit=\"USDC\"\n />\n <AssetDetail\n label={t(\"trading.asset.marginRatio\")}\n description={t(\"trading.asset.marginRatio.tooltip\")}\n formula={t(\"trading.asset.marginRatio.formula\")}\n visible={visible}\n value={marginRatioVal}\n isConnected={isConnected}\n rule=\"percentages\"\n showPercentage={true}\n placeholder=\"--%\"\n />\n <AssetDetail\n label={t(\"trading.asset.maintenanceMarginRatio\")}\n description={t(\"trading.asset.maintenanceMarginRatio.tooltip\")}\n formula={t(\"trading.asset.maintenanceMarginRatio.formula\")}\n visible={visible}\n value={renderMMR}\n rule=\"percentages\"\n showPercentage={true}\n placeholder=\"--%\"\n />\n {showLTV && <LTVDetail visible={visible} value={currentLtv} />}\n </Box>\n </Box>\n );\n};\n\nexport const AssetView: FC<\n AssetViewState & { isFirstTimeDeposit?: boolean }\n> = ({\n networkId,\n isFirstTimeDeposit,\n totalValue,\n onDeposit,\n onWithdraw,\n onTransfer,\n toggleVisible,\n visible,\n freeCollateral,\n marginRatioVal,\n renderMMR,\n isConnected,\n isMainAccount,\n hasSubAccount,\n currentLtv,\n}) => {\n const { title, description, titleColor, titleClsName } =\n useCurrentStatusText();\n\n const { t } = useTranslation();\n\n const transferButton = hasSubAccount && (\n <Button\n fullWidth\n color=\"secondary\"\n size=\"md\"\n onClick={onTransfer}\n data-testid=\"oui-testid-assetView-transfer-button\"\n >\n <Text>{t(\"common.transfer\")}</Text>\n </Button>\n );\n\n const depositButton = isMainAccount && (\n <Button\n data-testid=\"oui-testid-assetView-deposit-button\"\n fullWidth\n size=\"md\"\n onClick={onDeposit}\n >\n {!hasSubAccount && (\n <ArrowDownShortIcon opacity={1} className=\"oui-text-primary-contrast\" />\n )}\n <Text>{t(\"common.deposit\")}</Text>\n </Button>\n );\n\n const withdrawButton = isMainAccount && (\n <Button\n fullWidth\n color=\"secondary\"\n size=\"md\"\n onClick={onWithdraw}\n data-testid=\"oui-testid-assetView-withdraw-button\"\n >\n {!hasSubAccount && (\n <ArrowDownShortIcon\n color=\"white\"\n opacity={1}\n className=\"oui-rotate-180\"\n />\n )}\n <Text>{t(\"common.withdraw\")}</Text>\n </Button>\n );\n\n return (\n <Box className=\"oui-relative\">\n {title && description && (\n <Flex direction=\"column\" gap={1} className=\"oui-mb-[32px]\">\n <Text\n size=\"lg\"\n weight=\"bold\"\n color={titleColor || \"inherit\"}\n className={titleClsName}\n >\n {title}\n </Text>\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className=\"oui-text-center\"\n >\n {description}\n </Text>\n </Flex>\n )}\n <AuthGuard\n networkId={networkId}\n buttonProps={{ size: \"md\", fullWidth: true }}\n >\n {isFirstTimeDeposit && isMainAccount ? (\n <>\n <Box>\n <Flex direction=\"column\" gap={1} className=\"oui-mb-[32px]\">\n <Text.gradient size=\"lg\" weight=\"bold\" color=\"brand\">\n {t(\"trading.asset.startTrading\")}\n </Text.gradient>\n <Text size=\"2xs\" color=\"neutral\" weight=\"semibold\">\n {t(\"trading.asset.startTrading.description\")}\n </Text>\n </Flex>\n </Box>\n <Button\n data-testid=\"oui-testid-assetView-deposit-button\"\n fullWidth\n size=\"md\"\n onClick={onDeposit}\n >\n <ArrowDownShortIcon\n opacity={1}\n className=\"oui-text-primary-contrast\"\n />\n <Text>{t(\"common.deposit\")}</Text>\n </Button>\n\n <Box className=\"oui-mt-3\">\n <FaucetWidget />\n </Box>\n </>\n ) : (\n <Box className=\"oui-space-y-4\">\n <TotalValue\n totalValue={totalValue}\n visible={visible}\n onToggleVisibility={toggleVisible}\n />\n <AssetValueList\n visible={visible}\n freeCollateral={freeCollateral}\n marginRatioVal={marginRatioVal}\n renderMMR={renderMMR}\n isConnected={isConnected}\n currentLtv={currentLtv}\n />\n <Flex\n gap={isMainAccount ? (hasSubAccount ? 2 : 3) : 0}\n itemAlign=\"center\"\n >\n {isMainAccount ? (\n <>\n {depositButton}\n {transferButton}\n {withdrawButton}\n </>\n ) : (\n transferButton\n )}\n </Flex>\n {isMainAccount && <FaucetWidget />}\n </Box>\n )}\n </AuthGuard>\n <div\n className={cn(\n \"oui-absolute oui-inset-0 oui-rotate-180\",\n \"oui-pointer-events-none oui-rounded-2xl oui-blur-[200px]\",\n )}\n style={{\n background:\n \"conic-gradient(from -40.91deg at 40.63% 50.41%, rgba(159, 115, 241, 0) -48.92deg, rgba(242, 98, 181, 0) 125.18deg, #5FC5FF 193.41deg, #FFAC89 216.02deg, #8155FF 236.07deg, #789DFF 259.95deg, rgba(159, 115, 241, 0) 311.08deg, rgba(242, 98, 181, 0) 485.18deg)\",\n }}\n />\n </Box>\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport {\n useAccountInstance,\n useEventEmitter,\n useLocalStorage,\n useAccount,\n useConfig,\n useCollateral,\n useMarginRatio,\n usePositionStream,\n useComputedLTV,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum, NetworkId } from \"@orderly.network/types\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport {\n DepositAndWithdrawWithDialogId,\n TransferDialogId,\n} from \"@orderly.network/ui-transfer\";\n\nexport const useAssetViewScript = () => {\n const { t } = useTranslation();\n const account = useAccountInstance();\n const ee = useEventEmitter();\n\n const { totalValue } = useCollateral({\n dp: 2,\n });\n\n const networkId = useConfig(\"networkId\") as NetworkId;\n const { state, isMainAccount } = useAccount();\n const { freeCollateral } = useCollateral({\n dp: 2,\n });\n const { marginRatio, mmr } = useMarginRatio();\n const isConnected = state.status >= AccountStatusEnum.Connected;\n const [{ aggregated }, positionsInfo] = usePositionStream();\n const marginRatioVal = useMemo(() => {\n return Math.min(\n 10,\n aggregated.notional === 0\n ? positionsInfo[\"margin_ratio\"](10)!\n : marginRatio,\n );\n }, [marginRatio, aggregated]);\n\n // const renderMMR = useMemo(() => {\n // if (!mmr) {\n // return \"\";\n // }\n // const bigMMR = new Decimal(mmr);\n // return bigMMR.mul(100).todp(2, 0).toFixed(2);\n // }, [mmr]);\n\n const openDepositAndWithdraw = useCallback(\n (viewName: \"deposit\" | \"withdraw\") => {\n // desktop always show dialog\n return modal.show(DepositAndWithdrawWithDialogId, {\n activeTab: viewName,\n });\n },\n [],\n );\n\n const onDeposit = useCallback(async () => {\n return openDepositAndWithdraw(\"deposit\");\n }, []);\n\n const onWithdraw = useCallback(async () => {\n return openDepositAndWithdraw(\"withdraw\");\n }, []);\n\n const onTransfer = useCallback(async () => {\n return modal.show(TransferDialogId);\n }, []);\n\n const onSettle = useCallback(async () => {\n return account\n .settle()\n .catch((e) => {\n if (e.code === -1104) {\n toast.error(t(\"settle.settlement.error\"));\n return Promise.reject(e);\n }\n if (\n e.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: e.message,\n userAddress: account.address,\n });\n }\n })\n .then((res) => {\n toast.success(t(\"settle.settlement.requested\"));\n return Promise.resolve(res);\n });\n }, [account, t]);\n\n const [visible, setVisible] = useLocalStorage<boolean>(\n \"orderly_assets_visible\",\n true,\n );\n\n const toggleVisible = useCallback(() => {\n // @ts-ignore\n setVisible((visible: boolean) => {\n return !visible;\n });\n }, [visible]);\n\n const currentLtv = useComputedLTV();\n const _freeCollateral = useDataTap(freeCollateral) ?? undefined;\n const _marginRatioVal = useDataTap(marginRatioVal) ?? undefined;\n const _mmr = useDataTap(mmr) ?? undefined;\n const _totalValue = useDataTap(totalValue) ?? undefined;\n\n return {\n onDeposit,\n onWithdraw,\n onTransfer,\n onSettle,\n visible,\n toggleVisible,\n networkId,\n totalValue: _totalValue,\n status: state.status,\n freeCollateral: _freeCollateral,\n marginRatioVal: _marginRatioVal,\n renderMMR: _mmr,\n isConnected,\n isMainAccount,\n hasSubAccount: !!state.subAccounts?.length,\n currentLtv,\n };\n};\n\nexport type AssetViewState = ReturnType<typeof useAssetViewScript>;\n","import React from \"react\";\nimport { useAssetViewScript } from \"./assetView.script\";\nimport { AssetView } from \"./assetView.ui\";\n\ntype AssetViewWidgetProps = {\n isFirstTimeDeposit?: boolean;\n};\n\nexport const AssetViewWidget: React.FC<AssetViewWidgetProps> = (props) => {\n const state = useAssetViewScript();\n return <AssetView {...state} isFirstTimeDeposit={props.isFirstTimeDeposit} />;\n};\n","export { AssetView } from \"./assetView.ui\";\nexport { AssetViewWidget } from \"./assetView.widget\";\n","import React, {\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { QtyMode, TotalMode } from \"./types\";\n\nexport interface OrderBookContextValue {\n cellHeight: number;\n mode: QtyMode;\n depth?: string;\n onModeChange?: (mode: QtyMode) => void;\n onItemClick?: (item: number[]) => void;\n showTotal: boolean;\n totalMode: TotalMode;\n pendingOrders: ReadonlyArray<number> | number[];\n onTotalModeChange?: (mode: TotalMode) => void;\n symbolInfo: BasicSymbolInfo;\n}\n\nexport const OrderBookContext = createContext({\n cellHeight: 22,\n} as OrderBookContextValue);\n\nexport const useOrderBookContext = () => useContext(OrderBookContext);\n\nexport const ORDERBOOK_COIN_TYPE_KEY = \"orderbook_coin_type\";\n\nexport const ORDERBOOK_MOBILE_COIN_TYPE_KEY = \"orderbook_mobile_coin_unit\";\n\ninterface OrderBookProviderProps {\n cellHeight: number;\n depth?: string;\n showTotal: boolean;\n pendingOrders: ReadonlyArray<number> | number[];\n onItemClick?: (item: number[]) => void;\n symbolInfo: BasicSymbolInfo;\n}\n\nexport const OrderBookProvider: FC<\n PropsWithChildren<OrderBookProviderProps>\n> = (props) => {\n const [mode, setMode] = useState<QtyMode>(\"quantity\");\n const [totalMode, setTotalMode] = useState<QtyMode>(\"quantity\");\n const memoizedValue = React.useMemo<OrderBookContextValue>(() => {\n return {\n cellHeight: props.cellHeight,\n onItemClick: props.onItemClick,\n mode,\n totalMode: totalMode || \"quantity\",\n depth: props.depth,\n onModeChange: setMode,\n onTotalModeChange: setTotalMode,\n showTotal: props.showTotal || false,\n pendingOrders: props.pendingOrders,\n symbolInfo: props.symbolInfo,\n };\n }, [\n mode,\n props.cellHeight,\n props.depth,\n props.onItemClick,\n props.pendingOrders,\n props.showTotal,\n props.symbolInfo,\n totalMode,\n ]);\n return (\n <OrderBookContext.Provider value={memoizedValue}>\n {props.children}\n </OrderBookContext.Provider>\n );\n};\n","export type QtyMode = \"quantity\" | \"amount\";\nexport type TotalMode = \"quantity\" | \"amount\";\n\nexport enum OrderBookCellType {\n BID = \"bid\",\n ASK = \"ask\",\n}\n","import { cn } from \"@orderly.network/ui\";\nimport { FC, useMemo } from \"react\";\n\nexport enum CellBarDirection {\n LEFT_TO_RIGHT,\n RIGHT_TO_LEFT,\n}\n\ninterface CellBarProps {\n width: number;\n className?: string;\n direction?: CellBarDirection\n}\n\nexport const CellBar: FC<CellBarProps> = (props) => {\n const { direction = CellBarDirection.RIGHT_TO_LEFT } = props;\n const transform = useMemo(() => {\n const x = Math.max(props.width, 0);\n if (direction === CellBarDirection.LEFT_TO_RIGHT) {\n return { transform: `translateX(${x}%)` };\n }\n return { transform: `translateX(-${x}%)` };\n \n }, [props.width]);\n\n return (\n <div\n className={cn(\n \"oui-absolute oui-right-[-100%] oui-top-0 oui-h-full oui-w-full oui-transition-transform oui-pointer-events-none\",\n direction === CellBarDirection.LEFT_TO_RIGHT && \"oui-left-[-100%]\",\n props.className\n )}\n style={transform}\n />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { cn, Divider, parseNumber, Text } from \"@orderly.network/ui\";\nimport { getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { CellBar, CellBarDirection } from \"../../base/orderBook/cellBar\";\nimport {\n ORDERBOOK_COIN_TYPE_KEY,\n useOrderBookContext,\n} from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\n\nexport interface DesktopOrderBookCellProps {\n background: string;\n maxQty: number;\n price: number;\n quantity: number;\n // size: number;\n count: number;\n accumulated: number;\n accumulatedAmount: number;\n type: OrderBookCellType;\n symbolInfo: BasicSymbolInfo;\n base: string;\n quote: string;\n isHover: boolean;\n currentHover: boolean;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n}\n\nexport const DesktopOrderBookCell: FC<DesktopOrderBookCellProps> = (props) => {\n const { cellHeight, showTotal, onItemClick, depth, pendingOrders } =\n useOrderBookContext();\n const {\n symbolInfo,\n currentHover,\n accumulated,\n accumulatedAmount,\n count,\n price,\n quantity,\n base,\n quote,\n } = props;\n\n const { base_dp, quote_dp } = symbolInfo;\n\n const [coinType] = useLocalStorage<string>(ORDERBOOK_COIN_TYPE_KEY, base);\n\n const width = Number.isNaN(price) ? 0 : (accumulated / count) * 100;\n\n const dp = useMemo(() => {\n return getPrecisionByNumber(depth || `${quote_dp}`);\n }, [depth, quote_dp]);\n\n const totalAmount = Number.isNaN(accumulated)\n ? \"-\"\n : accumulatedAmount?.toString();\n\n const isPendingOrder = useMemo(() => {\n const priceStr = parseNumber(price, { dp: dp, padding: true });\n return pendingOrders.some(\n (item) => priceStr === parseNumber(item, { dp: dp, padding: true }),\n );\n }, [pendingOrders, price, dp]);\n\n return (\n <div\n className=\"oui-relative oui-flex oui-cursor-pointer oui-flex-row oui-justify-between oui-pl-3 oui-text-xs oui-tabular-nums oui-text-base-contrast-80\"\n style={{ height: `${cellHeight}px` }}\n onClick={() => {\n if (Number.isNaN(price) || Number.isNaN(quantity)) {\n return;\n }\n onItemClick?.([price, quantity]);\n }}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <div\n className={cn(\n \"oui-mr-2 oui-flex oui-basis-7/12 oui-flex-row oui-items-center\",\n showTotal && \"oui-basis-5/12\",\n )}\n >\n <div\n className={cn(\n \"oui-flex-1 oui-text-left\",\n props.type === OrderBookCellType.ASK\n ? \"oui-text-trade-loss\"\n : \"oui-text-trade-profit\",\n )}\n >\n <Text.numeral dp={dp}>{price}</Text.numeral>\n </div>\n <div className=\"oui-flex-1 oui-text-right oui-text-base-contrast-80\">\n <Text.numeral dp={base_dp}>{quantity}</Text.numeral>\n </div>\n </div>\n <div\n className={cn(\n \"oui-fex-row oui-relative oui-flex oui-basis-5/12 oui-items-center oui-justify-end oui-overflow-hidden\",\n showTotal && \"oui-basis-7/12\",\n )}\n >\n {showTotal ? (\n <>\n <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n <Text.numeral dp={base_dp} className=\"oui-z-10\">\n {accumulated}\n </Text.numeral>\n </div>\n <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n <Text.numeral dp={0} className=\"oui-z-10\">\n {totalAmount}\n </Text.numeral>\n </div>\n </>\n ) : (\n <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n {coinType === base && (\n <Text.numeral dp={base_dp} className=\"oui-z-10\">\n {accumulated}\n </Text.numeral>\n )}\n {coinType === quote && (\n <Text.numeral dp={0} className=\"oui-z-10\">\n {totalAmount}\n </Text.numeral>\n )}\n </div>\n )}\n <CellBar\n width={width}\n direction={CellBarDirection.LEFT_TO_RIGHT}\n className={\n props.type === OrderBookCellType.ASK\n ? \"oui-bg-trade-loss/10\"\n : \"oui-bg-trade-profit/10\"\n }\n />\n </div>\n\n {isPendingOrder && (\n <div\n className={cn(\n \"oui-pointer-events-none oui-absolute oui-left-[4px] oui-size-[4px] oui-rounded-full\",\n props.type === OrderBookCellType.ASK && \"oui-bg-trade-loss\",\n props.type === OrderBookCellType.BID && \"oui-bg-trade-profit\",\n )}\n style={{ top: `${cellHeight / 2 - 2}px` }}\n />\n )}\n\n {props.isHover && (\n <div className=\"oui-absolute oui-inset-0 oui-bg-white oui-opacity-[.12]\" />\n )}\n {currentHover && (\n <div\n className={cn(\n \"oui-absolute oui-inset-x-0\",\n props.type === OrderBookCellType.ASK && \"oui-top-0\",\n props.type === OrderBookCellType.BID && \"oui-bottom-0\",\n )}\n >\n <Divider\n lineStyle=\"dashed\"\n className={cn(\n \"oui-w-full\",\n props.type === OrderBookCellType.BID && \"oui-border-trade-profit\",\n props.type === OrderBookCellType.ASK && \"oui-border-trade-loss\",\n )}\n />\n </div>\n )}\n </div>\n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n TooltipContent,\n TooltipTrigger,\n Text,\n TooltipRoot,\n TooltipArrow,\n cn,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopOrderBookCell } from \"./cell.desktop\";\n\ninterface DesktopListBoxProps {\n type: OrderBookCellType;\n data: number[][];\n countQty: number;\n}\n\nconst calcHintInfo = (item: number[] | null) => {\n if (!item) {\n return { sumQty: 0, sumQtyAmount: 0, avgPrice: 0 };\n }\n const [, , qty, amount] = item;\n const sumQty = !Number.isNaN(qty) ? qty : 0;\n const sumQtyAmount = !Number.isNaN(amount) ? amount : 0;\n return {\n sumQty: sumQty,\n sumQtyAmount: sumQtyAmount,\n avgPrice:\n sumQtyAmount === 0 || sumQty === 0\n ? 0\n : new Decimal(sumQtyAmount).div(sumQty).toNumber(),\n };\n};\n\nexport const DesktopListBox: React.FC<DesktopListBoxProps> = (props) => {\n const { data, type, countQty } = props;\n const { symbolInfo, depth } = useOrderBookContext();\n\n const findMaxItem = useCallback(() => {\n if (!data?.length) {\n return null;\n }\n if (type === OrderBookCellType.ASK) {\n const index = data.findIndex((item) => !Number.isNaN(item[0]));\n if (index !== -1) {\n return data[index];\n }\n return null;\n } else {\n const len = data.length;\n for (let index = len - 1; index >= 0; index--) {\n const item = data[index];\n if (!Number.isNaN(item[0])) {\n return item;\n }\n }\n return null;\n }\n }, [data, type]);\n\n const priceDp = useMemo(() => {\n if (depth?.toString().includes(\".\")) {\n return depth.toString().split(\".\")[1].length;\n }\n return 0;\n }, [depth]);\n\n const maxQty = useMemo(() => {\n return data.reduce((a, b) => Math.max(a, b[1]), 0);\n }, [data]);\n\n const [hoverIndex, setHoverIndex] = useState<number>(-1);\n\n return (\n <div className=\"oui-order-book-list oui-flex oui-flex-col oui-gap-px\">\n {data.map((item, index) => {\n return (\n <Tip\n key={index}\n index={index}\n item={item}\n countQty={countQty}\n setHoverIndex={setHoverIndex}\n hoverIndex={hoverIndex}\n type={type}\n maxQty={maxQty}\n priceDp={priceDp}\n symbolInfo={symbolInfo}\n findMaxItem={findMaxItem}\n />\n );\n })}\n </div>\n );\n};\n\nconst Tip: React.FC<{\n index: number;\n item: any;\n countQty: number;\n setHoverIndex: any;\n type: OrderBookCellType;\n maxQty: number;\n hoverIndex: number;\n priceDp: number;\n // base: any;\n // quote: any;\n // baseDp: number;\n // quoteDp: number;\n findMaxItem: () => number[] | null;\n symbolInfo: BasicSymbolInfo;\n}> = (props) => {\n const {\n index,\n item,\n setHoverIndex,\n type,\n maxQty,\n hoverIndex,\n priceDp,\n countQty,\n symbolInfo,\n findMaxItem,\n } = props;\n\n const { base, quote, base_dp: baseDp, quote_dp: quoteDp } = symbolInfo;\n const { t } = useTranslation();\n\n const isHover =\n hoverIndex !== -1\n ? type === OrderBookCellType.ASK\n ? index >= hoverIndex\n : index <= hoverIndex\n : false;\n\n const [open, setOpen] = useState(false);\n\n const hintInfo = useMemo(() => {\n const info = calcHintInfo(item);\n return info.avgPrice === 0 ? calcHintInfo(findMaxItem()) : info;\n }, [item, findMaxItem]);\n\n return (\n <TooltipRoot open={open} onOpenChange={setOpen}>\n <TooltipTrigger>\n <DesktopOrderBookCell\n background={\"\"}\n price={item[0]}\n quantity={item[1]}\n accumulated={item[2]}\n count={countQty}\n type={type}\n accumulatedAmount={item[3]}\n maxQty={maxQty}\n isHover={isHover}\n currentHover={hoverIndex === index}\n symbolInfo={symbolInfo}\n base={base}\n quote={quote}\n onMouseEnter={() => {\n setHoverIndex(index);\n setOpen(true);\n }}\n onMouseLeave={() => {\n setHoverIndex(-1);\n setOpen(false);\n }}\n />\n </TooltipTrigger>\n <TooltipContent\n className={cn(\n \"oui-rounded-base oui-flex oui-w-full oui-max-w-[400px] oui-flex-col oui-gap-2 oui-bg-base-6 oui-p-3 oui-text-2xs oui-shadow-md\",\n // type === OrderBookCellType.ASK ? `oui-mb-${30}` : \"oui-mt-0\"\n )}\n align={type === OrderBookCellType.ASK ? \"end\" : \"start\"}\n alignOffset={-25.4}\n side=\"left\"\n sideOffset={2}\n onPointerEnter={(e) => e.preventDefault()}\n >\n <Row\n title={`${t(\"common.avgPrice\")}≈`}\n content={hintInfo.avgPrice}\n // contentDp={priceDp}\n contentDp={quoteDp}\n />\n <Row\n title={`${t(\"trading.orderBook.sum\")} (${base})`}\n content={hintInfo.sumQty}\n contentDp={baseDp}\n />\n <Row\n title={`${t(\"trading.orderBook.sum\")} (${quote})`}\n content={hintInfo.sumQtyAmount}\n contentDp={quoteDp}\n />\n <TooltipArrow\n className=\"oui-fill-base-6\"\n style={{\n transform:\n type === OrderBookCellType.ASK\n ? \"translateX(80%)\"\n : \"translateX(-80%)\",\n }}\n />\n </TooltipContent>\n </TooltipRoot>\n );\n};\n\nconst Row: React.FC<{ title: string; content: number; contentDp: number }> = (\n props,\n) => {\n const { title, content, contentDp } = props;\n return (\n <div className=\"oui-flex oui-flex-row oui-justify-between oui-gap-4\">\n <div className=\"oui-select-none oui-text-base-contrast-36\">{title}</div>\n <div className=\"oui-text-end\">\n <Text.numeral dp={contentDp}>{content}</Text.numeral>\n </div>\n </div>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopListBox } from \"./listBox.desktop\";\n\nexport interface Props {\n data: number[][];\n}\n\nexport const DesktopAsks: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n let max = Number.NaN;\n const len = data.length;\n let index = 0;\n\n while (Number.isNaN(max) && index < len) {\n max = data[index][2];\n index++;\n }\n\n return max;\n }, [data]);\n\n return (\n <DesktopListBox\n type={OrderBookCellType.ASK}\n data={data}\n countQty={countQty}\n />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopListBox } from \"./listBox.desktop\";\n\nexport interface Props {\n data: any[];\n}\n\nexport const DesktopBids: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n let max = Number.NaN;\n // let len = data.length;\n let index = data.length - 1;\n\n while (Number.isNaN(max) && index > 0) {\n max = data[index][2];\n index--;\n }\n\n return max;\n // return data.length > 0 ? data[data.length - 1][2] : 0;\n }, [data]);\n return (\n <DesktopListBox\n type={OrderBookCellType.BID}\n data={data}\n countQty={countQty}\n />\n );\n};\n","import { Box, Select } from \"@orderly.network/ui\";\nimport { FC, useMemo } from \"react\";\n\ninterface DesktopDepthSelectProps {\n depths: string[];\n value?: string;\n onChange?: (depth: number) => void;\n}\n\nexport const DesktopDepthSelect: FC<DesktopDepthSelectProps> = (props) => {\n const options = useMemo(() => {\n return props.depths.map((d) => ({\n value: d,\n label: `${d}`,\n }));\n }, [props.depths]);\n\n return (\n <Box pl={3} width={97} className=\"oui-py-[10px]\">\n <Select.options\n options={options}\n size={\"xs\"}\n value={props.value}\n onValueChange={(value: any) => {\n props.onChange?.(value);\n }}\n />\n </Box>\n );\n};\n","import React, { FC, ReactNode, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CaretDownIcon,\n CaretUpIcon,\n cn,\n Flex,\n Popover,\n} from \"@orderly.network/ui\";\nimport { optimizeSymbolDisplay } from \"@orderly.network/utils\";\nimport {\n ORDERBOOK_COIN_TYPE_KEY,\n useOrderBookContext,\n} from \"../../base/orderBook/orderContext\";\n\ninterface DesktopHeaderProps {\n quote: string;\n base: string;\n}\n\nconst Option: React.FC<{\n item: string;\n base: string;\n onClick: React.MouseEventHandler<HTMLElement>;\n}> = (props) => {\n const { item, base, onClick } = props;\n const { t } = useTranslation();\n const [coinType, setCoinType] = useLocalStorage(\n ORDERBOOK_COIN_TYPE_KEY,\n base,\n );\n\n const optimizedItem = useMemo(() => {\n return optimizeSymbolDisplay(item);\n }, [item]);\n\n return (\n <Flex\n justify=\"between\"\n itemAlign=\"center\"\n className={cn(\n \"oui-w-full oui-px-2 oui-py-[3px]\",\n \"oui-cursor-pointer\",\n \"oui-text-xs\",\n \"oui-text-base-contrast-54\",\n \"hover:oui-bg-base-6\",\n \"oui-rounded-[3px]\",\n \"oui-transition-all\",\n coinType === item && \"oui-bg-base-5\",\n )}\n onClick={(e) => {\n setCoinType(item);\n onClick(e);\n }}\n >\n <div className=\"oui-overflow-hidden oui-text-ellipsis \">{`${t(\"common.total\")}(${optimizedItem})`}</div>\n <div\n className={cn(\n \"oui-transition-all\",\n \"oui-w-1\",\n \"oui-h-1\",\n \"oui-rounded-full\",\n \"oui-bg-gradient-to-r\",\n coinType === item &&\n \"oui-from-[rgb(var(--oui-gradient-brand-start))] oui-to-[rgb(var(--oui-gradient-brand-end))]\",\n )}\n />\n </Flex>\n );\n};\n\nexport const DesktopHeader: FC<DesktopHeaderProps> = (props) => {\n const { base, quote = \"USDC\" } = props;\n const { showTotal } = useOrderBookContext();\n const { t } = useTranslation();\n const [popoverOpen, setOpen] = React.useState<boolean>(false);\n const [coinType] = useLocalStorage(ORDERBOOK_COIN_TYPE_KEY, base);\n const TriggerIcon = popoverOpen ? CaretUpIcon : CaretDownIcon;\n const optimizedBase = useMemo(() => {\n return optimizeSymbolDisplay(base);\n }, [base]);\n const optimizedCoinType = useMemo(() => {\n return optimizeSymbolDisplay(coinType);\n }, [coinType]);\n return (\n <Flex pl={3} justify={\"between\"} className=\"oui-py-[6px]\">\n <Flex\n gap={1}\n className={cn(\"oui-basis-7/12\", showTotal && \"oui-basis-1/2\")}\n >\n <Box width={\"100%\"}>\n <Title\n id=\"oui-order-book-header-price\"\n className=\"oui-text-base-contrast-36\"\n >\n {`${t(\"common.price\")}(${quote})`}\n </Title>\n </Box>\n <Box width={\"100%\"}>\n <Title\n justifyEnd\n id=\"oui-order-book-header-qty\"\n className=\"oui-text-base-contrast-36\"\n >\n {`${t(\"common.qty\")}(${optimizedBase})`}\n </Title>\n </Box>\n </Flex>\n <Flex\n gap={1}\n pr={3}\n className={cn(\"oui-basis-5/12\", showTotal && \"oui-basis-1/2\")}\n >\n {showTotal ? (\n <>\n <Box className=\"oui-text-base-contrast-36\" width={\"100%\"}>\n <Title id=\"oui-order-book-header-total-quote\" justifyEnd>\n {`${t(\"common.total\")}(${optimizedBase})`}\n </Title>\n </Box>\n <Box className=\"oui-text-base-contrast-36\" width={\"100%\"}>\n <Title justifyEnd id=\"oui-order-book-header-total-base\">\n {`${t(\"common.total\")}(${quote})`}\n </Title>\n </Box>\n </>\n ) : (\n <Box width={\"100%\"}>\n <Popover\n open={popoverOpen}\n onOpenChange={setOpen}\n contentProps={{ className: cn(\"oui-w-28 oui-p-1\") }}\n content={\n <Flex\n direction=\"column\"\n itemAlign=\"start\"\n className={cn(\"oui-w-full oui-gap-0.5\")}\n >\n {[base, quote].map((item) => {\n return (\n <Option\n key={`type-${item}`}\n item={item}\n base={base}\n onClick={() => setOpen(false)}\n />\n );\n })}\n </Flex>\n }\n >\n <Flex\n justify=\"end\"\n itemAlign=\"center\"\n className=\"oui-cursor-pointer oui-select-none oui-text-base-contrast-36 oui-transition-all hover:oui-text-base-contrast\"\n >\n <Title justifyEnd id=\"oui-order-book-header-total-base\">\n {`${t(\"common.total\")}(${optimizedCoinType})`}\n </Title>\n <TriggerIcon\n color=\"inherit\"\n className=\"oui-size-4 oui-text-3xs\"\n />\n </Flex>\n </Popover>\n </Box>\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<{\n justifyEnd?: boolean;\n id?: string;\n children: ReactNode;\n className?: string;\n}> = (props) => {\n const { children, className, justifyEnd = false } = props;\n return (\n <Flex\n id={props.id}\n className={cn(\n className,\n \"oui-items-end oui-text-xs\",\n justifyEnd && \"oui-justify-end\",\n )}\n >\n {children}\n </Flex>\n );\n};\n","import {\n ArrowDownShortIcon,\n ArrowUpShortIcon,\n Box,\n cn,\n Flex,\n Text,\n} from \"@orderly.network/ui\";\nimport { FC } from \"react\";\n\n/**\n * default style is desktop effect\n */\nexport const MiddlePriceView: FC<{\n markPrice: number;\n lastPrice: number[];\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const {\n markPrice = 0,\n lastPrice,\n quote_dp,\n className,\n iconSize = 18,\n } = props;\n\n const [prevLastPrice, middlePrice] = lastPrice;\n\n const down = middlePrice < prevLastPrice;\n const up = middlePrice > prevLastPrice;\n\n return (\n <Flex\n gap={1}\n className={cn(\n up ? \"oui-text-trade-profit\" : down ? \"oui-text-trade-loss\" : \"\",\n className\n )}\n >\n <Text.numeral dp={quote_dp} intensity={98}>\n {middlePrice}\n </Text.numeral>\n <Box width={19}>\n {down && (\n <ArrowDownShortIcon size={iconSize} color=\"danger\" opacity={1} />\n )}\n {up && <ArrowUpShortIcon size={iconSize} color=\"success\" opacity={1} />}\n </Box>\n </Flex>\n );\n};\n","import { FC, useState } from \"react\";\nimport {\n Tooltip,\n cn,\n Flex,\n Text,\n SimpleDialog,\n useScreen,\n} from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\n/**\n * default style is desktop effect\n */\nexport const MarkPriceView: FC<{\n markPrice: number;\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const { isMobile } = useScreen();\n\n return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst DesktopLayout: FC<{\n markPrice: number;\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const { quote_dp, className, iconSize = 18 } = props;\n const { t } = useTranslation();\n return (\n <Tooltip\n content={t(\"trading.orderBook.markPrice.tooltip\")}\n className=\"oui-max-w-[270px]\"\n >\n <Flex\n gap={1}\n className={cn(\"oui-cursor-pointer oui-text-2xs\", className)}\n >\n <FlagIcon size={iconSize} />\n <Text.numeral\n dp={quote_dp}\n color=\"warning\"\n className=\"oui-underline oui-text-base oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-warning-darken\"\n >\n {props.markPrice}\n </Text.numeral>\n </Flex>\n </Tooltip>\n );\n};\n\nconst MobileLayout: FC<{\n markPrice: number;\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const { quote_dp, className, iconSize = 18 } = props;\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n return (\n <>\n <Flex\n gap={1}\n className={cn(\"oui-cursor-pointer oui-text-2xs\", className)}\n onClick={() => {\n setOpen(true);\n }}\n >\n <FlagIcon size={iconSize} />\n <Text.numeral\n dp={quote_dp}\n color=\"warning\"\n className=\"oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-warning-darken\"\n >\n {props.markPrice}\n </Text.numeral>\n </Flex>\n <SimpleDialog\n size=\"xs\"\n open={open}\n onOpenChange={setOpen}\n title={t(\"common.tips\")}\n actions={{\n primary: {\n label: t(\"common.ok\"),\n onClick: () => setOpen(false),\n },\n }}\n >\n <Text>{t(\"trading.orderBook.markPrice.tooltip\")}</Text>\n </SimpleDialog>\n </>\n );\n};\n\nconst FlagIcon = (props: { size: number }) => {\n return (\n <svg\n width={props.size}\n height={props.size}\n viewBox=\"0 0 18 18\"\n fill=\"currenColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-warning-darken\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.75 1.5a.75.75 0 0 1 .75.75h6a.75.75 0 0 1 .75.75v1.5h3a.75.75 0 0 1 .75.75V12a.75.75 0 0 1-.75.75H7.5a.75.75 0 0 1-.75-.75v-1.5H4.5v5.25a.75.75 0 0 1-1.5 0V2.25a.75.75 0 0 1 .75-.75M4.5 9h5.25V3.75H4.5zm6.75-3v3.75a.75.75 0 0 1-.75.75H8.25v.75h5.25V6z\"\n // fill=\"#FF7D00\"\n />\n </svg>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { cn, Flex, Text, Tooltip } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { MiddlePriceView } from \"../../base/orderBook/midPriceView\";\nimport { MarkPriceView } from \"../../base/orderBook/markPrice\";\nimport { useTranslation } from \"@orderly.network/i18n\";\ninterface DesktopMarkPriceProps {\n markPrice: number;\n lastPrice: number[];\n asks: number[][];\n bids: number[][];\n symbolInfo: BasicSymbolInfo;\n}\n\nexport const DesktopMarkPrice: FC<DesktopMarkPriceProps> = (props) => {\n const { markPrice = 0, lastPrice, asks, bids, symbolInfo } = props;\n const { showTotal } = useOrderBookContext();\n\n return (\n <div className=\"oui-flex oui-flex-row oui-pl-3 oui-tabular-nums oui-justify-between oui-text-base-contrast-80 oui-text-xs oui-relative oui-cursor-pointer oui-py-[6px]\">\n <div\n className={cn(\n \"oui-basis-7/12 oui-flex oui-flex-row oui-items-center oui-mr-2 oui-justify-between\",\n showTotal && \"oui-basis-5/12\"\n )}\n >\n <MiddlePriceView\n markPrice={markPrice}\n lastPrice={lastPrice}\n quote_dp={symbolInfo.quote_dp}\n className=\"oui-text-base\"\n />\n <MarkPriceView markPrice={markPrice} quote_dp={symbolInfo.quote_dp} />\n </div>\n <div\n className={cn(\n \"oui-basis-5/12 oui-flex oui-items-center oui-fex-row oui-overflow-hidden oui-relative oui-justify-end\",\n showTotal && \"oui-basis-7/12\",\n \"oui-pr-3\"\n )}\n >\n <Spread asks={asks} bids={bids} />\n </div>\n </div>\n );\n};\n\nconst Spread: FC<{\n asks: number[][];\n bids: number[][];\n}> = (props) => {\n const { asks, bids } = props;\n\n const { t } = useTranslation();\n\n const spread = useMemo(() => {\n if (bids.length === 0 && asks.length === 0) {\n return 0;\n }\n const bid1 = Number.isNaN(bids[0][0]) ? 0 : bids[0][0];\n const index = asks.reverse().findIndex((item) => !Number.isNaN(item[0]));\n\n let ask1 = 0.0;\n if (index !== -1) {\n ask1 = Number.isNaN(asks[index][0]) ? 0 : asks[index][0];\n }\n const dValue = new Decimal(ask1)\n .sub(bid1)\n .div(new Decimal(ask1).add(bid1).div(2));\n // 0.00006416604461251195\n // 0.000065\n // 0.0065\n return Math.ceil(dValue.toNumber() * 1000000 + 0.1) / 10000;\n }, [asks, bids]);\n\n return (\n <div>\n <Tooltip\n content={t(\"trading.orderBook.spreadRatio.tooltip\")}\n className=\"oui-max-w-[240px]\"\n >\n <Text\n size=\"2xs\"\n intensity={36}\n className={\n \"oui-cursor-pointer oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-base-contrast-36\"\n }\n >\n {`${spread}%`}\n </Text>\n </Tooltip>\n </div>\n );\n};\n","import { FC, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { cn, Grid, Spinner } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport {\n ORDERBOOK_COIN_TYPE_KEY,\n OrderBookProvider,\n} from \"../../base/orderBook/orderContext\";\nimport { DesktopAsks } from \"./asks.desktop\";\nimport { DesktopBids } from \"./bids.desktop\";\nimport { DesktopDepthSelect } from \"./depthSelect.desktop\";\nimport { DesktopHeader } from \"./header.desktop\";\nimport { DesktopMarkPrice } from \"./markPrice.desktop\";\n\nexport interface DesktopOrderBookProps {\n asks: any[];\n bids: any[];\n markPrice: number;\n lastPrice: number[];\n onItemClick?: (item: number[]) => void;\n depths: string[];\n activeDepth?: string;\n onDepthChange?: (depth: number) => void;\n //\n autoSize?: boolean;\n level?: number;\n base: string;\n quote: string;\n\n isLoading?: boolean;\n\n cellHeight?: number;\n\n className?: string;\n pendingOrders?: number[];\n symbolInfo: BasicSymbolInfo;\n}\n\nexport const DesktopOrderBook: FC<DesktopOrderBookProps> = (props) => {\n const { lastPrice, markPrice, quote, base, isLoading, onDepthChange } = props;\n\n const divRef = useRef<HTMLDivElement>(null);\n\n const [showTotal, setShowTotal] = useState(false);\n\n const [coinType, setCoinType] = useLocalStorage(\n ORDERBOOK_COIN_TYPE_KEY,\n base,\n );\n\n useEffect(() => {\n if (coinType !== quote && base) {\n setCoinType(base);\n }\n }, [base, quote]);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { inlineSize: width } = entry.borderBoxSize[0];\n setShowTotal(width >= 360);\n }\n });\n\n const targetDiv = divRef.current;\n\n if (targetDiv) {\n resizeObserver.observe(targetDiv);\n }\n\n return () => {\n if (targetDiv) {\n resizeObserver.unobserve(targetDiv);\n }\n };\n }, []);\n\n return (\n <OrderBookProvider\n cellHeight={props.cellHeight ?? 20}\n onItemClick={props.onItemClick}\n depth={props.activeDepth}\n showTotal={showTotal}\n pendingOrders={props.pendingOrders || EMPTY_LIST}\n symbolInfo={props.symbolInfo}\n >\n <Grid\n cols={1}\n rows={5}\n id=\"oui-orderbook-desktop\"\n ref={divRef}\n className=\"oui-relative oui-size-full oui-grid-rows-[auto,auto,1fr,auto,1fr]\"\n >\n <DesktopDepthSelect\n depths={props.depths}\n value={props.activeDepth}\n onChange={onDepthChange}\n />\n <DesktopHeader quote={quote} base={base} />\n <DesktopAsks data={[...props.asks]} />\n <DesktopMarkPrice\n lastPrice={lastPrice}\n markPrice={markPrice}\n // ======================================================================\n // == 🔥🔥🔥🔥🔥🔥🔥 DO NOT MODIFY THIS 🔥🔥🔥🔥🔥🔥🔥 ==\n // ======================================================================\n // Use shallow copy here to avoid mutating the original props array when sorting or modifying inside the component.\n // Note: This only clones the array itself, not the element objects.\n asks={[...props.asks]}\n bids={[...props.bids]}\n symbolInfo={props.symbolInfo}\n />\n <DesktopBids data={[...props.bids]} />\n {isLoading && (\n <div className=\"oui-bg-bg-8/70 oui-absolute oui-inset-0 oui-z-10 oui-flex oui-items-center oui-justify-center\">\n <Spinner />\n </div>\n )}\n </Grid>\n </OrderBookProvider>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { FundingRateState } from \"./fundingRate.script\";\n\nexport const FundingRate: FC<FundingRateState> = (props) => {\n const { data, onClick } = props;\n const predFundingRate = data.est_funding_rate;\n const countDown = data.countDown;\n const { t } = useTranslation();\n return (\n <Flex direction={\"column\"} itemAlign={\"start\"} pb={2}>\n <Text\n size=\"2xs\"\n intensity={36}\n className=\"oui-cursor-pointer oui-underline oui-decoration-line-16 oui-decoration-dashed oui-underline-offset-4\"\n onClick={onClick}\n >\n {t(\"trading.fundingRate.predFundingRate\")}\n </Text>\n {predFundingRate === null ? (\n \"--\"\n ) : (\n <div className=\"orderly-flex orderly-gap-1 oui-text-2xs oui-text-base-contrast-36\">\n {/* <span className=\"orderly-text-warning-darken\">{`${predFundingRate}%`}</span> */}\n <Text.numeral suffix=\"%\" dp={4} intensity={80}>\n {predFundingRate ?? \"--\"}\n </Text.numeral>\n <span>{\" in\"}</span>\n <span>{\" \" + countDown}</span>\n </div>\n )}\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useFundingDetails,\n useFundingRateBySymbol,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\n\ninterface FundingRateOptions {\n symbol: string;\n}\n\nexport const useFundingRateModalScript = (options: FundingRateOptions) => {\n const { data, isLoading } = useFundingDetails(options.symbol);\n const { last_funding_rate, est_funding_rate } =\n useFundingRateBySymbol(options.symbol) ?? {};\n\n const [{ aggregated, rows }] = usePositionStream(options.symbol);\n\n const { notional } = aggregated ?? {};\n\n const fundingPeriod = useMemo(() => {\n if (!data || isLoading) {\n return \"-\";\n }\n return `${data.funding_period}h`;\n }, [data, isLoading]);\n\n const capFunding = useMemo(() => {\n if (!data || isLoading) {\n return \"-\";\n }\n return `${new Decimal(data.cap_funding).mul(100).toNumber()}%`;\n }, [data, isLoading]);\n\n const floorFunding = useMemo(() => {\n if (!data || isLoading) {\n return \"-\";\n }\n return `${new Decimal(data.floor_funding).mul(100).toNumber()}%`;\n }, [data, isLoading]);\n\n const lastFundingRate = useMemo(() => {\n if (!last_funding_rate) {\n return undefined;\n }\n return `${new Decimal(last_funding_rate).mul(100).toNumber()}%`;\n }, [last_funding_rate]);\n\n const estFundingRate = useMemo(() => {\n if (!est_funding_rate) {\n return undefined;\n }\n return `${new Decimal(est_funding_rate).mul(100).toNumber()}%`;\n }, [est_funding_rate]);\n\n const estFundingFee = useMemo(() => {\n if (!est_funding_rate || !notional || rows.length === 0) {\n return \"--\";\n }\n\n return `${new Decimal(est_funding_rate).mul(notional).todp(4).toNumber()}`;\n }, [est_funding_rate, notional, rows]);\n\n // Calculate annualized funding rate\n const calculateAnnualizedRate = (rate: number, intervalHours: number) => {\n if (!rate || !intervalHours) return undefined;\n // annualized rate = funding rate * 24h / interval(h) * 365\n const annualizedRate = new Decimal(rate)\n .mul(24)\n .div(intervalHours)\n .mul(365);\n // Round down to two decimal places\n return annualizedRate.todp(2, Decimal.ROUND_DOWN).toNumber();\n };\n\n const lastFundingRateAnnualized = useMemo(() => {\n if (!last_funding_rate || !data?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(last_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(rate, data.funding_period);\n return annualized ? `${annualized}%` : undefined;\n }, [last_funding_rate, data?.funding_period]);\n\n const estFundingRateAnnualized = useMemo(() => {\n if (!est_funding_rate || !data?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(est_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(rate, data.funding_period);\n return annualized ? `${annualized}%` : undefined;\n }, [est_funding_rate, data?.funding_period]);\n\n return {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n };\n};\n\nexport type FundingRateModalState = ReturnType<\n typeof useFundingRateModalScript\n>;\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, Divider } from \"@orderly.network/ui\";\nimport type { FundingRateModalState } from \"./fundingRateModal.script\";\n\nexport const FundingRateModal: React.FC<FundingRateModalState> = (props) => {\n const { t } = useTranslation();\n const {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n } = props;\n\n const renderRow = (\n label: string,\n value?: string | number,\n annualizedValue?: string,\n ) => {\n if (!value) {\n return null;\n }\n return (\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {annualizedValue\n ? `${label}/ ${t(\"trading.fundingRate.annualized\")}`\n : label}\n </Text>\n <Flex itemAlign=\"end\" gap={1} className=\"oui-text-base-contrast-80\">\n <Text intensity={80}>{value}</Text>\n {annualizedValue && \" / \"}\n {annualizedValue && annualizedValue}\n </Flex>\n </Flex>\n );\n };\n return (\n <Flex width={\"100%\"} itemAlign={\"center\"} direction=\"column\" gap={1}>\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {t(\"trading.fundingRate.predFundingRate.interval\")}\n </Text>\n <Text intensity={80}>{fundingPeriod}</Text>\n </Flex>\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {t(\"trading.fundingRate.predFundingRate.cap\")} /\n {t(\"trading.fundingRate.predFundingRate.floor\")}\n </Text>\n <Text intensity={80}>\n {capFunding} / {floorFunding}\n </Text>\n </Flex>\n {renderRow(\n t(\"trading.fundingRate.lastFundingRate\"),\n lastFundingRate,\n lastFundingRateAnnualized,\n )}\n {renderRow(\n t(\"trading.fundingRate.estimatedFundingRate\"),\n estFundingRate,\n estFundingRateAnnualized,\n )}\n {renderRow(t(\"trading.fundingRate.estimatedFundingFee\"), estFundingFee)}\n <Divider my={4} className=\"oui-w-full\" intensity={8} />\n {t(\"markets.symbolInfoBar.predFundingRate.tooltip\")}\n </Flex>\n );\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useFundingRateModalScript } from \"./fundingRateModal.script\";\nimport { FundingRateModal } from \"./fundingRateModal.ui\";\n\nexport const FundingRateModalWidget: React.FC<{ symbol: string }> = (props) => {\n const state = useFundingRateModalScript(props);\n return <FundingRateModal {...state} />;\n};\n\nexport const FundingRateDialogId = \"FundingRateDialogId\";\nexport const FundingRateSheetId = \"FundingRateSheetId\";\n\nregisterSimpleDialog(FundingRateDialogId, FundingRateModalWidget, {\n size: \"md\",\n classNames: { content: \"oui-border oui-border-line-6\" },\n title: () => i18n.t(\"funding.fundingRate\"),\n});\n\nregisterSimpleSheet(FundingRateSheetId, FundingRateModalWidget, {\n classNames: { content: \"oui-text-sm\" },\n title: () => i18n.t(\"funding.fundingRate\"),\n});\n","import { useCallback } from \"react\";\nimport { useFundingRate } from \"@orderly.network/hooks\";\nimport { modal } from \"@orderly.network/ui\";\nimport { FundingRateSheetId } from \"../fundingRateModal/fundingRateModal.widget\";\n\nexport const useFundingRateScript = (symbol: string) => {\n const data = useFundingRate(symbol);\n const onClick = useCallback<React.MouseEventHandler<HTMLElement>>(() => {\n modal.show(FundingRateSheetId, { symbol });\n }, [symbol]);\n return {\n data,\n onClick,\n };\n};\n\nexport type FundingRateState = ReturnType<typeof useFundingRateScript>;\n","import React from \"react\";\nimport { useFundingRateScript } from \"./fundingRate.script\";\nimport { FundingRate } from \"./fundingRate.ui\";\n\nexport const FundingRateWidget: React.FC<{ symbol: string }> = (props) => {\n const state = useFundingRateScript(props.symbol);\n return <FundingRate {...state} />;\n};\n","export { FundingRate } from \"./fundingRate.ui\";\nexport { FundingRateWidget } from \"./fundingRate.widget\";\nexport { useFundingRateScript } from \"./fundingRate.script\";\n","import { FC, useContext, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { CellBar } from \"../../base/orderBook/cellBar\";\nimport {\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n OrderBookContext,\n} from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType, QtyMode } from \"../../base/orderBook/types\";\n\nexport interface OrderBookCellProps {\n background: string;\n price: number;\n quantity: number;\n accumulatedAmount: number;\n // size: number;\n count: number;\n accumulated: number;\n type: OrderBookCellType;\n mode: QtyMode;\n}\n\nexport const OrderBookCell: FC<OrderBookCellProps> = (props) => {\n const { accumulated, count, quantity, price, type, accumulatedAmount } =\n props;\n\n const width = (accumulated / count) * 100;\n\n const { cellHeight, onItemClick, depth, symbolInfo } =\n useContext(OrderBookContext);\n\n const { base_dp, quote_dp, base, quote } = symbolInfo;\n\n const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n \"qty\",\n );\n\n const totalAmount = Number.isNaN(accumulated)\n ? \"-\"\n : accumulatedAmount?.toString();\n\n const dp = useMemo(() => {\n return getPrecisionByNumber(depth || `${quote_dp}`);\n }, [depth, quote_dp]);\n\n const renderCell = () => {\n switch (coinUnit) {\n case \"base\":\n return (\n <Text.numeral className=\"oui-text-base-contrast-80\" dp={base_dp}>\n {accumulated}\n </Text.numeral>\n );\n case \"quote\":\n return (\n <Text.numeral className=\"oui-text-base-contrast-80\" dp={0}>\n {totalAmount}\n </Text.numeral>\n );\n default:\n return (\n <Text.numeral className=\"oui-text-base-contrast-80\" dp={base_dp}>\n {Number.isNaN(quantity) ? \"-\" : quantity}\n </Text.numeral>\n );\n }\n };\n\n return (\n <Box\n className={cn(\n \"oui-relative oui-w-full oui-cursor-pointer oui-overflow-hidden oui-text-2xs oui-tabular-nums\",\n )}\n style={{ height: `${cellHeight}px` }}\n onClick={() => {\n if (Number.isNaN(price) || Number.isNaN(quantity)) {\n return;\n }\n onItemClick?.([price, quantity]);\n }}\n >\n <Flex itemAlign=\"center\" justify={\"between\"}>\n <Text.numeral\n color={type === OrderBookCellType.BID ? \"buy\" : \"sell\"}\n dp={dp}\n >\n {price}\n </Text.numeral>\n {renderCell()}\n </Flex>\n {Number.isNaN(width) ? null : (\n <CellBar\n width={width}\n className={cn(\n type === OrderBookCellType.ASK\n ? \"oui-bg-trade-loss/20\"\n : \"oui-bg-trade-profit/20\",\n )}\n />\n )}\n </Box>\n );\n};\n","import { FC } from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { OrderBookCell } from \"./cell\";\n\ninterface OrderBookListProps {\n type: OrderBookCellType;\n data: number[][];\n countQty: number;\n}\n\nexport const ListBox: FC<OrderBookListProps> = (props) => {\n const { data } = props;\n const { mode } = useOrderBookContext();\n return (\n <Box className=\"oui-order-book-list oui-flex oui-w-full oui-flex-col oui-gap-px\">\n {data.map((item, index) => {\n return (\n <OrderBookCell\n key={`item-${index}`}\n background={\"\"}\n price={item[0]}\n quantity={item[1]}\n accumulated={item[2]}\n accumulatedAmount={item[3]}\n count={props.countQty}\n type={props.type}\n mode={mode}\n />\n );\n })}\n </Box>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { ListBox } from \"./listBox\";\n\nexport interface Props {\n data: number[][];\n}\nexport const Asks: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n const len = data.length;\n let max = Number.NaN;\n\n let index = 0;\n\n while (Number.isNaN(max) && index < len) {\n max = data[index][2];\n index++;\n }\n\n return max;\n }, [data]);\n return (\n <ListBox type={OrderBookCellType.ASK} data={data} countQty={countQty} />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { ListBox } from \"./listBox\";\n\nexport interface Props {\n data: any[];\n}\n\nexport const Bids: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n let max = Number.NaN;\n // let len = data.length;\n let index = data.length - 1;\n\n while (Number.isNaN(max) && index > 0) {\n max = data[index][2];\n index--;\n }\n\n return max;\n // return data.length > 0 ? data[data.length - 1][2] : 0;\n }, [data]);\n\n return (\n <ListBox type={OrderBookCellType.BID} data={data} countQty={countQty} />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { Box, Picker } from \"@orderly.network/ui\";\n\ninterface DepthSelectProps {\n depth: ReadonlyArray<string> | string[];\n value?: string;\n onChange?: (depth: number) => void;\n}\n\nexport const DepthSelect: FC<DepthSelectProps> = (props) => {\n const options = useMemo(() => {\n return props.depth.map((d) => ({\n value: d,\n label: `${d}`,\n }));\n }, [props.depth]);\n return (\n <Box id=\"oui-order-book-depth\" className=\"oui-w-full oui-pt-2\">\n {/* <Select size={\"small\"} value={\"0.001\"} /> */}\n <Picker\n options={options}\n fullWidth\n size={\"sm\"}\n value={props.value}\n className=\"oui-text-2xs oui-text-base-contrast-54\"\n onValueChange={(value) => {\n //\n props.onChange?.(value);\n }}\n />\n </Box>\n );\n};\n","import React, { FC, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n CaretDownIcon,\n CaretUpIcon,\n Flex,\n Picker,\n Text,\n} from \"@orderly.network/ui\";\nimport { SelectOption } from \"@orderly.network/ui/src/select/withOptions\";\nimport { ORDERBOOK_MOBILE_COIN_TYPE_KEY } from \"../../base/orderBook/orderContext\";\n\ninterface Props {\n quote: string;\n base: string;\n}\n\nexport const Header: FC<Props> = (props) => {\n const { t } = useTranslation();\n\n const { base, quote } = props;\n\n const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n \"qty\",\n );\n\n const options = useMemo<SelectOption[]>(() => {\n return [\n {\n value: \"qty\",\n label: `${t(\"common.quantity\")}(${base})`,\n data: [t(\"common.quantity\"), base],\n },\n {\n value: \"base\",\n label: `${t(\"common.total\")}(${base})`,\n data: [t(\"common.total\"), base],\n },\n {\n value: \"quote\",\n label: `${t(\"common.total\")}(${quote})`,\n data: [t(\"common.total\"), quote],\n },\n ];\n }, [t, base, quote]);\n\n return (\n <Flex\n justify={\"between\"}\n width={\"100%\"}\n className=\"oui-py-[5px] oui-text-2xs oui-text-base-contrast-36\"\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n id=\"oui-order-book-header-price\"\n >\n <Text>{t(\"common.price\")}</Text>\n <Text>{`(${quote})`}</Text>\n </Flex>\n <Picker\n size=\"sm\"\n value={coinUnit}\n onValueChange={setCoinUnit}\n options={options}\n valueRenderer={(_, { open, data }) => {\n return (\n <Flex justify=\"between\" itemAlign=\"center\" gap={1}>\n {Array.isArray(data) && (\n <Flex direction={\"column\"} itemAlign={\"end\"}>\n {data[0] && <Text>{data[0]}</Text>}\n {data[1] && <Text>({data[1]})</Text>}\n </Flex>\n )}\n {open ? (\n <CaretUpIcon size={14} color=\"inherit\" />\n ) : (\n <CaretDownIcon size={14} color=\"inherit\" />\n )}\n </Flex>\n );\n }}\n />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { MarkPriceView } from \"../../base/orderBook/markPrice\";\nimport { MiddlePriceView } from \"../../base/orderBook/midPriceView\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\n\ninterface MarkPriceProps {\n markPrice: number;\n lastPrice: number[];\n}\n\nexport const MarkPrice: FC<MarkPriceProps> = (props) => {\n const { symbolInfo } = useOrderBookContext();\n\n const { quote_dp } = symbolInfo;\n\n return (\n <Flex\n id=\"oui-order-book-mark-price\"\n className=\"oui-py-[6px]\"\n width={\"100%\"}\n justify={\"between\"}\n >\n <MiddlePriceView\n markPrice={props.markPrice}\n lastPrice={props.lastPrice}\n quote_dp={quote_dp}\n className=\"oui-text-sm\"\n iconSize={14}\n />\n <MarkPriceView\n markPrice={props.markPrice}\n quote_dp={quote_dp}\n className=\"oui-text-2xs\"\n iconSize={12}\n />\n </Flex>\n );\n};\n","import { FC, useEffect } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { cn, Flex, Spinner } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport {\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n OrderBookProvider,\n} from \"../../base/orderBook/orderContext\";\nimport { FundingRateWidget } from \"../fundingRate\";\nimport { Asks } from \"./asks\";\nimport { Bids } from \"./bids\";\nimport { DepthSelect } from \"./depthSelect\";\nimport { Header } from \"./header\";\nimport { MarkPrice } from \"./markPrice\";\n\nexport interface OrderBookProps {\n asks: any[];\n bids: any[];\n markPrice: number;\n lastPrice: number[];\n onItemClick?: (item: number[]) => void;\n depths?: string[];\n activeDepth?: string;\n onDepthChange?: (depth: number) => void;\n //\n autoSize?: boolean;\n level?: number;\n base: string;\n quote: string;\n\n isLoading?: boolean;\n\n cellHeight?: number;\n\n className?: string;\n symbolInfo: BasicSymbolInfo;\n}\n\nexport const OrderBook: FC<OrderBookProps> = (props) => {\n const { lastPrice, markPrice, quote, base, isLoading, onDepthChange } = props;\n\n const symbol = `PERP_${props.symbolInfo.base}_${props.symbolInfo.quote}`;\n\n const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n \"qty\",\n );\n\n return (\n <OrderBookProvider\n cellHeight={props.cellHeight ?? 20}\n onItemClick={props.onItemClick}\n depth={props.activeDepth}\n pendingOrders={EMPTY_LIST}\n showTotal={false}\n symbolInfo={props.symbolInfo}\n >\n <Flex\n direction={\"column\"}\n p={2}\n id=\"oui-orderbook-mobile\"\n className={cn(\"oui-relative oui-size-full\", props.className)}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <FundingRateWidget symbol={symbol} />\n <Header quote={quote} base={base} />\n <Asks data={props.asks} />\n <MarkPrice lastPrice={lastPrice} markPrice={markPrice} />\n <Bids data={props.bids} />\n <DepthSelect\n depth={props.depths || EMPTY_LIST}\n value={props.activeDepth}\n onChange={onDepthChange}\n />\n {isLoading && (\n <div className=\"oui-bg-base-800/70 oui-absolute oui-inset-0 oui-z-10 oui-flex oui-h-full oui-min-h-[420px] oui-items-center oui-justify-center\">\n <Spinner />\n </div>\n )}\n </Flex>\n </OrderBookProvider>\n );\n};\n","import React from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { DesktopOrderBook } from \"../../desktop/orderBook/index.desktop\";\nimport { OrderBook as MWebOrderBook } from \"../../mobile/orderBook\";\nimport type { OrderBookState } from \"./orderBook.script\";\n\nexport const OrderBook: React.FC<OrderBookState & { className?: string }> = (\n props,\n) => {\n return (\n <Box className=\"oui-font-semibold\" width={\"100%\"} height={\"100%\"}>\n {props.isMobile ? (\n <MWebOrderBook\n level={props.level}\n asks={props.asks!}\n bids={props.bids!}\n markPrice={props.markPrice!}\n lastPrice={props.lastPrice!}\n depths={props.depths}\n activeDepth={props.selDepth}\n base={props.base}\n quote={props.quote}\n isLoading={props.isLoading}\n onItemClick={props.onItemClick}\n cellHeight={props.cellHeight}\n onDepthChange={props.onDepthChange}\n className={props.className}\n symbolInfo={props.symbolInfo}\n />\n ) : (\n <DesktopOrderBook\n level={props.level}\n asks={props.asks!}\n bids={props.bids!}\n markPrice={props.markPrice!}\n lastPrice={props.lastPrice!}\n depths={props.depths}\n activeDepth={props.selDepth}\n base={props.base}\n quote={props.quote}\n isLoading={props.isLoading}\n onItemClick={props.onItemClick}\n cellHeight={props.cellHeight}\n onDepthChange={props.onDepthChange}\n className={props.className}\n pendingOrders={props.pendingOrders}\n symbolInfo={props.symbolInfo}\n />\n )}\n </Box>\n );\n};\n","import type { API } from \"@orderly.network/types\";\nimport type { BasicSymbolInfo } from \"../types/types\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport const getBasicSymbolInfo = (\n symbolInfo: (\n key?: keyof API.SymbolExt,\n defaultValue?: ValueOf<API.SymbolExt>,\n ) => any,\n): BasicSymbolInfo => {\n return {\n base_dp: symbolInfo(\"base_dp\"),\n quote_dp: symbolInfo(\"quote_dp\"),\n base_tick: symbolInfo(\"base_tick\"),\n base: symbolInfo(\"base\"),\n quote: symbolInfo(\"quote\"),\n };\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport {\n useOrderbookStream,\n useOrderStream,\n useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { removeTrailingZeros } from \"@orderly.network/utils\";\nimport { getBasicSymbolInfo } from \"../../../utils/utils\";\n\nconst CELL_MAX = 30;\n\nconst DEFAULT_CELL_HEIGHT = 20;\n\nconst SPACE = 104;\n\nexport const useOrderBookScript = (props: {\n symbol: string;\n height?: number;\n}) => {\n const { symbol, height } = props;\n const symbolInfo = useSymbolsInfo()[symbol];\n\n const [cellHeight, setCellHeight] = useState(DEFAULT_CELL_HEIGHT);\n\n const [level, setLevel] = useState(10);\n const { base, quote, quote_dp } = getBasicSymbolInfo(symbolInfo);\n // const counter = useRef(0);\n\n const [data, { onDepthChange, isLoading, onItemClick, depth, allDepths }] =\n useOrderbookStream(symbol, undefined, { level });\n\n // useEffect(() => {\n // counter.current = 0;\n // }, [symbol]);\n\n const pendingOrders = usePendingOrderStream(symbol);\n useEffect(() => {\n if (height) {\n // setCellHeight(height.content / level);\n const level = Math.floor(\n (height - SPACE) / ((DEFAULT_CELL_HEIGHT + 1) * 2),\n );\n\n const cellsHeight = (DEFAULT_CELL_HEIGHT + 1) * 2 * level;\n\n const restSpace = height - SPACE - cellsHeight;\n\n if (restSpace > 10) {\n setCellHeight(DEFAULT_CELL_HEIGHT + restSpace / level / 2);\n } else {\n setCellHeight(DEFAULT_CELL_HEIGHT);\n }\n\n setLevel(level);\n }\n }, [height]);\n\n const selDepth = useMemo(() => {\n if (typeof depth === \"undefined\" || typeof quote_dp === \"undefined\") {\n return undefined;\n }\n // // FIXME: hardcode for now, need to optimize it\n // counter.current++;\n // if (counter.current === 1 && DEFAULT_DEPTH[symbol]) {\n // return DEFAULT_DEPTH[symbol];\n // }\n\n return removeTrailingZeros(depth);\n }, [depth, quote_dp, symbol]);\n\n const depths = useMemo(() => {\n return allDepths?.map((e) => removeTrailingZeros(e)) || [];\n }, [allDepths, quote_dp]);\n\n const { isMobile } = useScreen();\n\n return {\n level,\n asks: data?.asks,\n bids: data?.bids,\n markPrice: data?.markPrice,\n lastPrice: data?.middlePrice,\n depths,\n selDepth,\n base,\n quote,\n isLoading,\n onItemClick,\n cellHeight,\n onDepthChange,\n pendingOrders,\n symbolInfo: getBasicSymbolInfo(symbolInfo),\n isMobile,\n };\n};\n\nexport const usePendingOrderStream = (symbol: string): number[] => {\n const [data] = useOrderStream({\n status: OrderStatus.INCOMPLETE,\n symbol: symbol,\n });\n\n const pendingOrders = useMemo(() => {\n const info = data\n ?.filter((item) => item.symbol === symbol)\n .reduce((a, b) => {\n // TODO: check if this is the correct price, when the data is from WS, it crashes\n const price = b.price || b.trigger_price || 0;\n return [...a, price];\n }, []);\n\n return info;\n }, [data, symbol]);\n\n return pendingOrders;\n};\n\nexport type OrderBookState = ReturnType<typeof useOrderBookScript>;\n","import React from \"react\";\nimport { useOrderBookScript } from \"./orderBook.script\";\nimport { OrderBook } from \"./orderBook.ui\";\n\ninterface OrderBookWidgetProps {\n className?: string;\n symbol: string;\n height?: number;\n}\n\nexport const OrderBookWidget: React.FC<OrderBookWidgetProps> = (props) => {\n const { className, symbol, height } = props;\n const state = useOrderBookScript({ symbol, height });\n return <OrderBook {...state} className={className} />;\n};\n","export { OrderBook } from \"./orderBook.ui\";\nexport { OrderBookWidget } from \"./orderBook.widget\";\nexport { useOrderBookScript } from \"./orderBook.script\";\n","import React, { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n Flex,\n Text,\n Box,\n Tooltip,\n modal,\n gradientTextVariants,\n cn,\n EditIcon,\n} from \"@orderly.network/ui\";\nimport { LeverageWidgetWithDialogId } from \"@orderly.network/ui-leverage\";\nimport { TooltipContent } from \"../assetView/assetView.ui\";\nimport { RiskRateState } from \"./riskRate.script\";\n\nexport const RiskRate: FC<RiskRateState> = (props) => {\n const { riskRate, riskRateColor, currentLeverage, maxLeverage } = props;\n const { isHigh, isMedium, isLow } = riskRateColor;\n const { wrongNetwork } = useAppContext();\n const { t } = useTranslation();\n\n const textColor = wrongNetwork\n ? \"\"\n : isHigh\n ? \"oui-text-danger\"\n : isMedium\n ? \"oui-text-warning-darken\"\n : isLow\n ? gradientTextVariants({ color: \"brand\" })\n : \"\";\n\n const boxClsName = wrongNetwork\n ? \"oui-bg-gradient-to-r oui-opacity-20 oui-from-[#26fefe] oui-via-[#ff7d00] oui-to-[#d92d6b] oui-h-1.5 oui-rounded-full\"\n : isHigh\n ? \"oui-bg-gradient-to-tr oui-from-[#791438] oui-to-[#ff447c] oui-h-1.5 oui-rounded-full\"\n : isMedium\n ? \"oui-bg-gradient-to-tr oui-from-[#792e00] oui-to-[#ffb65d] oui-h-1.5 oui-rounded-full\"\n : isLow\n ? \"oui-bg-gradient-to-tr oui-from-[#59b0fe] oui-to-[#26fefe] oui-h-1.5 oui-rounded-full\"\n : \"oui-bg-gradient-to-r oui-opacity-20 oui-from-[#26fefe] oui-via-[#ff7d00] oui-to-[#d92d6b] oui-h-1.5 oui-rounded-full\";\n\n return (\n <Box data-risk={\"\"} className=\"oui-space-y-2\">\n <Flex\n itemAlign=\"center\"\n justify=\"start\"\n className=\"oui-w-full oui-bg-base-6 oui-rounded-full oui-h-2 oui-px-[1px]\"\n >\n <Box\n className={boxClsName}\n style={\n riskRate && riskRate !== \"--\"\n ? { width: riskRate }\n : { width: \"100%\" }\n }\n />\n </Flex>\n\n <Flex direction=\"row\" justify=\"between\">\n <Tooltip\n content={\n <TooltipContent\n description={t(\"trading.riskRate.tooltip\")}\n formula={t(\"trading.riskRate.formula\")}\n />\n }\n >\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className={cn(\n \"oui-cursor-pointer\",\n \"oui-border-b oui-border-dashed oui-border-b-white/10\",\n )}\n >\n {t(\"trading.riskRate\")}\n </Text>\n </Tooltip>\n <Text\n size=\"xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className={cn(textColor)}\n >\n {riskRate ?? \"--\"}\n </Text>\n </Flex>\n </Box>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useAccount,\n useLeverage,\n useMarginRatio,\n} from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nconst getRiskRateColor = (riskRate: null | number) => {\n if (riskRate === null) {\n return { isHigh: false, isMedium: false, isLow: false, isDefault: true };\n }\n\n const isLow = riskRate < 40;\n const isMedium = riskRate >= 40 && riskRate < 80;\n const isHigh = riskRate >= 80;\n const isDefault = !isLow && !isMedium && !isHigh;\n\n return { isHigh, isMedium, isLow, isDefault };\n};\n\nexport const useRiskRateScript = () => {\n const { state } = useAccount();\n\n const isConnected =\n state.status >= AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected;\n const { marginRatio, currentLeverage, mmr } = useMarginRatio();\n\n const { curLeverage } = useLeverage();\n\n const riskRate = useMemo(() => {\n if (!isConnected || marginRatio === null || mmr === null) {\n return \"--\";\n }\n\n if (marginRatio === 0 || mmr === 0) {\n return \"0%\";\n }\n\n const calculatedRiskRate = new Decimal(mmr)\n .div(marginRatio)\n .mul(100)\n .todp(2, Decimal.ROUND_UP);\n\n // Remove trailing zeroes and add percentage sign\n return `${calculatedRiskRate.toString().replace(/\\.?0+$/, \"\")}%`;\n }, [isConnected, marginRatio, mmr]);\n\n const riskRateNumber = riskRate === \"--\" ? null : parseFloat(riskRate);\n\n const riskRateColor = useMemo(() => {\n return getRiskRateColor(riskRateNumber);\n }, [riskRateNumber]);\n\n const _curLeverage = useDataTap(currentLeverage);\n const _maxLeverage = useDataTap(curLeverage);\n const _riskRate = useDataTap(riskRate);\n\n return {\n riskRate: _riskRate,\n riskRateColor,\n isConnected,\n currentLeverage: _curLeverage,\n maxLeverage: _maxLeverage,\n };\n};\n\nexport type RiskRateState = ReturnType<typeof useRiskRateScript>;\n","import React from \"react\";\nimport { useRiskRateScript } from \"./riskRate.script\";\nimport { RiskRate } from \"./riskRate.ui\";\n\nexport const RiskRateWidget: React.FC = () => {\n const state = useRiskRateScript();\n return <RiskRate {...state} />;\n};\n","export { RiskRate } from \"./riskRate.ui\";\nexport { RiskRateWidget } from \"./riskRate.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Grid, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport type { OrderBookAndTradesState } from \"./orderBookAndTrades.script\";\n\nconst LazyLastTradesWidget = React.lazy(() =>\n import(\"../../base/lastTrades\").then((mod) => {\n return {\n default: mod.LastTradesWidget,\n };\n }),\n);\n\nconst LazyOrderBookWidget = React.lazy(() =>\n import(\"../../base/orderBook\").then((mod) => {\n return {\n default: mod.OrderBookWidget,\n };\n }),\n);\n\nconst TwoColLayout: React.FC<OrderBookAndTradesState> = (props) => {\n const { t } = useTranslation();\n return (\n <Grid\n cols={2}\n width={\"100%\"}\n gap={3}\n className=\"oui-auto-rows-fr\"\n style={{\n height: props.containerSize?.height,\n }}\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n // pl={3}\n pt={3}\n pb={3}\n r=\"2xl\"\n className=\"oui-bg-base-9\"\n >\n <Title\n title={t(\"trading.orderBook\")}\n className=\"oui-pl-3 oui-text-sm\"\n />\n <React.Suspense fallback={null}>\n <LazyOrderBookWidget\n symbol={props.symbol}\n height={\n props.containerSize\n ? props.containerSize.height - 29 - 24\n : undefined\n }\n />\n </React.Suspense>\n </Flex>\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n py={3}\n r=\"2xl\"\n className=\"oui-bg-base-9 oui-h-full\"\n >\n <Title\n title={t(\"trading.lastTrades\")}\n className=\"oui-text-sm oui-px-3\"\n />\n <React.Suspense fallback={null}>\n <LazyLastTradesWidget\n symbol={props.symbol}\n style={{\n height:\n props.containerSize && props.containerSize.height - 29 - 24,\n }}\n classNames={{ listHeader: \"oui-px-3\", list: \"oui-px-3\" }}\n />\n </React.Suspense>\n </Flex>\n </Grid>\n );\n};\n\nconst TabLayout: React.FC<OrderBookAndTradesState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Box\n // pl={3}\n pt={3}\n pb={3}\n pr={0}\n r=\"2xl\"\n className=\"oui-bg-base-9\"\n style={{ maxHeight: props.containerSize?.height }}\n >\n <Tabs\n value={props.tab}\n variant=\"contained\"\n onValueChange={(tab) => {\n props.setTab(tab as any);\n }}\n classNames={{\n tabsList: \"oui-pl-3\",\n // tabsContent: props.tab === \"lastTrades\" ? 'oui-pl-3' : ''\n }}\n size=\"lg\"\n >\n <TabPanel value=\"orderBook\" title={t(\"trading.orderBook\")}>\n <React.Suspense fallback={null}>\n <LazyOrderBookWidget\n symbol={props.symbol}\n height={\n props.containerSize\n ? props.containerSize.height - 29 - 18\n : undefined\n }\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value=\"lastTrades\" title={t(\"trading.lastTrades\")}>\n <React.Suspense fallback={null}>\n <LazyLastTradesWidget\n symbol={props.symbol}\n style={{\n height:\n props.containerSize && props.containerSize.height - 29 - 18,\n }}\n classNames={{\n root: \"oui-pt-[6px]\",\n listHeader: \"oui-px-3\",\n list: \"oui-px-3\",\n }}\n />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n\nconst Title: React.FC<{ title: string; className?: string }> = (props) => {\n return (\n <Text\n size=\"base\"\n intensity={80}\n className={cn(\"oui-pb-[5px]\", props.className)}\n >\n {props.title}\n </Text>\n );\n};\n\nexport const OrderBookAndTrades: React.FC<OrderBookAndTradesState> = (\n props,\n) => {\n const { containerRef, containerSize } = props;\n return (\n <div ref={containerRef} className=\"oui-h-full\">\n {(containerSize?.width ?? 0) >= 572 ? (\n <TwoColLayout {...props} />\n ) : (\n <TabLayout {...props} />\n )}\n </div>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nexport const useOrderBookAndTradesScript = (symbol: string) => {\n const [containerSize, setContainerSize] = useState<\n | {\n width: number;\n height: number;\n }\n | undefined\n >(undefined);\n\n const [tab, setTab] = useState<\"orderBook\" | \"lastTrades\">(\"orderBook\");\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setContainerSize({\n width,\n height,\n });\n }\n });\n\n const targetDiv = containerRef.current;\n\n if (targetDiv) {\n resizeObserver.observe(targetDiv);\n }\n\n return () => {\n if (targetDiv) {\n resizeObserver.unobserve(targetDiv);\n }\n };\n }, []);\n\n return {\n symbol,\n containerSize,\n containerRef: containerRef,\n tab,\n setTab,\n };\n};\n\nexport type OrderBookAndTradesState = ReturnType<\n typeof useOrderBookAndTradesScript\n>;\n","import React from \"react\";\nimport { useOrderBookAndTradesScript } from \"./orderBookAndTrades.script\";\nimport { OrderBookAndTrades } from \"./orderBookAndTrades.ui\";\n\nexport const OrderBookAndTradesWidget: React.FC<{ symbol: string }> = (\n props,\n) => {\n const state = useOrderBookAndTradesScript(props.symbol);\n return <OrderBookAndTrades {...state} />;\n};\n","export { OrderBookAndTrades } from \"./orderBookAndTrades.ui\";\nexport { OrderBookAndTradesWidget } from \"./orderBookAndTrades.widget\";\nexport { useOrderBookAndTradesScript } from \"./orderBookAndTrades.script\";\n","import { FC, PropsWithChildren, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CloseIcon,\n cn,\n Divider,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n Flex,\n Text,\n} from \"@orderly.network/ui\";\nimport type { MarketLayoutPosition } from \"../../../pages/trading/trading.script\";\n\nexport type LayoutPosition = \"left\" | \"right\";\n\nexport type SwitchLayoutProps = {\n layout?: LayoutPosition;\n onLayout?: (layout: LayoutPosition) => void;\n marketLayout?: MarketLayoutPosition;\n onMarketLayout?: (layout: MarketLayoutPosition) => void;\n};\n\nexport const SwitchLayout: FC<SwitchLayoutProps> = (props) => {\n const { t } = useTranslation();\n return (\n <SwitchLayoutDropDown {...props}>\n <Flex\n px={3}\n className={cn(\n \"oui-rounded-md\",\n \"oui-h-[28px]\",\n \"oui-cursor-pointer oui-transition-all\",\n \"oui-bg-base-6 hover:oui-bg-base-4\",\n \"oui-text-base-contrast-54 hover:oui-text-base-contrast-80\",\n )}\n gapX={1}\n ml={3}\n justify=\"center\"\n itemAlign=\"center\"\n >\n <LayoutIcon />\n <Text size=\"2xs\" weight=\"semibold\">\n {t(\"trading.layout\")}\n </Text>\n </Flex>\n </SwitchLayoutDropDown>\n );\n};\n\nexport const SwitchLayoutDropDown: FC<PropsWithChildren<SwitchLayoutProps>> = (\n props,\n) => {\n const [open, setOpen] = useState(false);\n const [hoveredMarket, setHoveredMarket] =\n useState<MarketLayoutPosition | null>(null);\n const { t } = useTranslation();\n const renderItem = (position: LayoutPosition) => {\n return (\n <Flex\n direction=\"column\"\n gapY={2}\n onClick={() => {\n props.onLayout?.(position);\n setOpen(false);\n }}\n className=\"oui-group\"\n >\n <Flex\n justify={position === \"right\" ? \"end\" : \"start\"}\n className={cn(\n \"oui-w-[148px] oui-h-[100px]\",\n \"oui-bg-base-10 oui-rounded-[10px]\",\n \"oui-border-[4px] oui-border-base-5 group-hover:oui-border-primary-light\",\n props.layout === position && \"!oui-border-primary-light\",\n )}\n >\n <Box p={1}>\n <OrderEntryIcon />\n </Box>\n </Flex>\n <Text\n size=\"2xs\"\n intensity={54}\n className={cn(\n \"oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80\",\n props.layout === position && \"oui-text-base-contrast-80\",\n )}\n >\n {String(\n position === \"right\"\n ? t(\"trading.layout.advanced.right\")\n : t(\"trading.layout.advanced.left\"),\n )}\n </Text>\n </Flex>\n );\n };\n\n const renderMarketItem = (position: MarketLayoutPosition) => {\n const getIcon = (isHovered: boolean) => {\n const isSelected = props.marketLayout === position;\n switch (position) {\n case \"left\":\n return (\n <MarketLeftIcon isSelected={isSelected} isHovered={isHovered} />\n );\n case \"top\":\n return (\n <MarketTopIcon isSelected={isSelected} isHovered={isHovered} />\n );\n case \"bottom\":\n return (\n <MarketBottomIcon isSelected={isSelected} isHovered={isHovered} />\n );\n case \"hide\":\n return (\n <MarketHideIcon isSelected={isSelected} isHovered={isHovered} />\n );\n default:\n return (\n <MarketLeftIcon isSelected={isSelected} isHovered={isHovered} />\n );\n }\n };\n\n const getLabel = () => {\n switch (position) {\n case \"left\":\n return t(\"trading.layout.markets.left\");\n case \"top\":\n return t(\"trading.layout.markets.top\");\n case \"bottom\":\n return t(\"trading.layout.markets.bottom\");\n case \"hide\":\n return t(\"trading.layout.markets.hide\");\n default:\n return t(\"trading.layout.markets.left\");\n }\n };\n\n return (\n <Flex\n direction=\"column\"\n gapY={2}\n onClick={() => {\n props.onMarketLayout?.(position);\n setOpen(false);\n }}\n onMouseEnter={() => setHoveredMarket(position)}\n onMouseLeave={() => setHoveredMarket(null)}\n className=\"oui-group\"\n >\n <Flex justify=\"center\" className=\"oui-w-[148px] oui-h-[100px]\">\n {getIcon(hoveredMarket === position)}\n </Flex>\n <Text\n size=\"2xs\"\n intensity={54}\n className={cn(\n \"oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80\",\n props.marketLayout === position && \"oui-text-base-contrast-80\",\n )}\n >\n {String(getLabel())}\n </Text>\n </Flex>\n );\n };\n\n const content = (\n <>\n <Flex\n itemAlign=\"center\"\n justify=\"between\"\n mt={3}\n className=\"oui-mb-[10px] oui-min-w-[500px]\"\n >\n <Text size=\"base\" intensity={98}>\n {t(\"trading.layout\")}\n </Text>\n <CloseIcon\n size={16}\n className=\"oui-text-base-contrast-80 oui-cursor-pointer\"\n opacity={0.98}\n onClick={() => {\n setOpen(false);\n }}\n />\n </Flex>\n <Divider />\n <Flex direction=\"column\" gapY={2} mt={5} itemAlign=\"start\">\n <Text size=\"xs\" intensity={98}>\n {String(t(\"trading.layout.advanced\"))}\n </Text>\n <Flex gapX={6}>\n {renderItem(\"right\")}\n {renderItem(\"left\")}\n </Flex>\n </Flex>\n <Flex direction=\"column\" gapY={2} mt={5} itemAlign=\"start\">\n <Text size=\"xs\" intensity={98}>\n {String(t(\"trading.layout.markets\"))}\n </Text>\n <Flex gapX={6}>\n {renderMarketItem(\"left\")}\n {renderMarketItem(\"top\")}\n {renderMarketItem(\"bottom\")}\n {renderMarketItem(\"hide\")}\n </Flex>\n </Flex>\n </>\n );\n\n return (\n <DropdownMenuRoot open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(e) => e.preventDefault()}\n onClick={(e) => e.stopPropagation()}\n align=\"end\"\n className={cn(\"oui-bg-base-8 oui-p-5 oui-pt-0 oui-font-semibold\")}\n >\n {content}\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n\nexport const LayoutIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M3.832 1.994c-.736 0-1.333.597-1.333 1.333v9.334c0 .737.597 1.333 1.333 1.333H6.5c.737 0 1.333-.596 1.333-1.333V3.327c0-.736-.596-1.333-1.333-1.333zm6.667 0c-.737 0-1.333.597-1.333 1.333v2.667c0 .737.596 1.333 1.333 1.333h2.667c.736 0 1.333-.596 1.333-1.333V3.327c0-.736-.597-1.333-1.333-1.333zm.437 6.679a2.7 2.7 0 0 0-1.033.607.284.284 0 0 0-.061.339c.222.411-.01.851-.512.876a.29.29 0 0 0-.26.217c-.05.207-.07.38-.07.608 0 .19.02.407.06.599a.28.28 0 0 0 .252.217c.506.044.756.429.53.92a.28.28 0 0 0 .06.321c.296.273.635.466 1.034.59a.285.285 0 0 0 .312-.104c.31-.427.757-.428 1.05 0a.28.28 0 0 0 .313.113 2.8 2.8 0 0 0 1.042-.599.28.28 0 0 0 .06-.33c-.23-.466.035-.894.513-.902a.28.28 0 0 0 .269-.209c.048-.199.06-.372.06-.616q0-.316-.069-.616a.276.276 0 0 0-.27-.217c-.469-.001-.732-.463-.502-.868a.27.27 0 0 0-.053-.339 2.8 2.8 0 0 0-1.059-.607.274.274 0 0 0-.312.112c-.268.417-.77.425-1.033.009a.284.284 0 0 0-.321-.121m.842 1.536a1.111 1.111 0 1 1 0 2.222 1.111 1.111 0 0 1 0-2.222\" />\n </svg>\n);\n\nexport const OrderEntryIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"36\"\n height=\"84\"\n viewBox=\"0 0 36 84\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"36\" height=\"17\" rx=\"2\" fill=\"#181C23\" />\n <rect y=\"19\" width=\"36\" height=\"54\" rx=\"2\" fill=\"#181C23\" />\n <rect y=\"75\" width=\"36\" height=\"9\" rx=\"2\" fill=\"#181C23\" />\n <rect\n x=\"3\"\n y=\"79\"\n width=\"30\"\n height=\"1\"\n rx=\"0.5\"\n fill=\"url(#paint0_linear_17647_26849)\"\n />\n <rect x=\"3\" y=\"22\" width=\"14\" height=\"6\" rx=\"2\" fill=\"#008676\" />\n <rect x=\"19\" y=\"22\" width=\"14\" height=\"6\" rx=\"2\" fill=\"#D92D6B\" />\n <rect x=\"3\" y=\"11\" width=\"14\" height=\"3\" rx=\"1.5\" fill=\"#333948\" />\n <rect x=\"19\" y=\"11\" width=\"14\" height=\"3\" rx=\"1.5\" fill=\"#335FFC\" />\n <rect x=\"3\" y=\"62\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#008676\" />\n <defs>\n <linearGradient\n id=\"paint0_linear_17647_26849\"\n x1=\"33\"\n y1=\"79.5\"\n x2=\"3\"\n y2=\"79.5\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#779eff\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport const MarketLeftIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <rect x=\"8\" y=\"8\" width=\"24\" height=\"84\" rx=\"2\" fill=\"#181C23\" />\n <rect x=\"16\" y=\"10\" width=\"4\" height=\"2\" rx=\"1\" fill=\"#333948\" />\n <rect x=\"21\" y=\"10\" width=\"4\" height=\"2\" rx=\"1\" fill=\"#333948\" />\n <rect x=\"26\" y=\"10\" width=\"4\" height=\"2\" rx=\"1\" fill=\"#333948\" />\n <rect x=\"10\" y=\"10\" width=\"5\" height=\"2\" rx=\"1\" fill=\"#335FFC\" />\n <rect x=\"10\" y=\"14\" width=\"20\" height=\"76\" rx=\"2\" fill=\"#282E3A\" />\n </svg>\n );\n};\n\nexport const MarketTopIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <rect x=\"8\" y=\"8\" width=\"132\" height=\"8\" rx=\"2\" fill=\"#181C23\" />\n <g clipPath=\"url(#clip0_31319_74729)\">\n <rect x=\"10\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#335FFC\" />\n <rect x=\"28\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"46\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"64\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"82\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"100\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"118\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"136\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n </g>\n <defs>\n <clipPath id=\"clip0_31319_74729\">\n <rect\n width=\"130\"\n height=\"4\"\n fill=\"white\"\n transform=\"translate(10 10)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const MarketBottomIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <rect x=\"8\" y=\"84\" width=\"132\" height=\"8\" rx=\"2\" fill=\"#181C23\" />\n <g clipPath=\"url(#clip0_31319_74743)\">\n <rect x=\"10\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#335FFC\" />\n <rect x=\"28\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"46\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"64\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"82\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"100\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"118\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"136\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n </g>\n <defs>\n <clipPath id=\"clip0_31319_74743\">\n <rect\n width=\"130\"\n height=\"4\"\n fill=\"white\"\n transform=\"translate(10 86)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const MarketHideIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <g clipPath=\"url(#clip0_31319_74757)\">\n <rect x=\"8\" y=\"8\" width=\"132\" height=\"84\" rx=\"2\" fill=\"#181C23\" />\n <rect\n x=\"66.8789\"\n y=\"-76\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 66.8789 -76)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"73.9492\"\n y=\"-68.929\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 73.9492 -68.929)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"81.0195\"\n y=\"-61.8579\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 81.0195 -61.8579)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"88.0938\"\n y=\"-54.7867\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 88.0938 -54.7867)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"95.1641\"\n y=\"-47.7157\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 95.1641 -47.7157)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"102.234\"\n y=\"-40.6447\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 102.234 -40.6447)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"109.305\"\n y=\"-33.5736\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 109.305 -33.5736)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"116.375\"\n y=\"-26.5026\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 116.375 -26.5026)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"123.449\"\n y=\"-19.4315\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 123.449 -19.4315)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"130.52\"\n y=\"-12.3604\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 130.52 -12.3604)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"137.59\"\n y=\"-5.28931\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 137.59 -5.28931)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"144.66\"\n y=\"1.78174\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 144.66 1.78174)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"151.73\"\n y=\"8.85278\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 151.73 8.85278)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"158.805\"\n y=\"15.9238\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 158.805 15.9238)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"165.875\"\n y=\"22.995\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 165.875 22.995)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"172.945\"\n y=\"30.066\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 172.945 30.066)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"180.016\"\n y=\"37.1371\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 180.016 37.1371)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"187.086\"\n y=\"44.2081\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 187.086 44.2081)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"194.156\"\n y=\"51.2792\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 194.156 51.2792)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"201.23\"\n y=\"58.3503\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 201.23 58.3503)\"\n fill=\"#20252F\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_31319_74757\">\n <rect\n width=\"132\"\n height=\"84\"\n fill=\"white\"\n transform=\"translate(8 8)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { useState } from \"react\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum TopTabType {\n chart = \"chart\",\n trades = \"trades\",\n data = \"data\",\n}\n\nexport const useTopTabScript = () => {\n const [tab, setTab] = useState<TopTabType>(TopTabType.chart);\n const { symbol } = useTradingPageContext();\n const [visible, setVisible] = useState(true);\n\n const toggleContentVisible = () => {\n setVisible((e) => !e);\n };\n\n return {\n tab,\n setTab,\n symbol,\n toggleContentVisible,\n setVisible,\n visible,\n };\n};\n\nexport type TopTabState = ReturnType<typeof useTopTabScript>;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { TradingviewWidgetProps } from \"./tradingview.widget\";\n\nconst MaxHeight = 354;\nconst MinHeight = 234;\nconst Key = \"TRADINGVIEW_MOBILE_HEIGHT\";\n\nexport function useTradingviewScript(props: TradingviewWidgetProps) {\n const [height, setHeight] = useLocalStorage(Key, MaxHeight);\n const [dragging, setDragging] = useState(false);\n const dragRef = useRef<HTMLDivElement>(null);\n const boxRef = useRef<HTMLDivElement>(null);\n const [offsetY, setOffsetY] = useState(0);\n const topRef = useRef<number>(0);\n\n const handleTouchStart = useCallback((e: TouchEvent) => {\n if (!boxRef.current) {\n return;\n }\n setDragging(true);\n const event = e.touches[0];\n const rect = boxRef.current.getBoundingClientRect();\n e.stopPropagation();\n e.preventDefault();\n\n const offsetY = event.clientY - rect.bottom;\n topRef.current = rect.top;\n setOffsetY(offsetY);\n }, []);\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (!boxRef.current) {\n return;\n }\n if (dragging) {\n e.stopPropagation();\n e.preventDefault();\n\n const event = e.touches[0];\n\n const newHeight = event.clientY - topRef.current - offsetY;\n setHeight(\n Math.min(Math.max(Math.round(newHeight), MinHeight), MaxHeight),\n );\n return false;\n }\n },\n [dragging, offsetY],\n );\n\n const handleTouchEnd = useCallback(() => {\n setDragging(false);\n }, []);\n\n useEffect(() => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n\n drag.addEventListener(\"touchstart\", handleTouchStart);\n\n return () => {\n drag.removeEventListener(\"touchstart\", handleTouchStart);\n };\n }, [handleTouchStart]);\n\n useEffect(() => {\n document.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n document.addEventListener(\"touchend\", handleTouchEnd);\n\n return () => {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", handleTouchEnd);\n };\n }, [dragging, handleTouchMove, handleTouchEnd]);\n return {\n ...props,\n\n height,\n dragging,\n dragRef,\n boxRef,\n };\n}\n\nexport type TradingviewState = ReturnType<typeof useTradingviewScript>;\n","import React, { FC, SVGProps } from \"react\";\n\nexport const KlineDragIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g id=\"Arrows-expand\">\n <path\n id=\"Vector\"\n d=\"M5.9989 1.00708C5.8709 1.00708 5.7369 1.05008 5.6394 1.14758L3.7959 3.00708L4.4989 3.71008L5.4989 2.72607V4.50708C5.4989 4.78308 5.7229 5.00708 5.9989 5.00708C6.2749 5.00708 6.4989 4.78308 6.4989 4.50708V2.72607L7.4989 3.71008L8.2019 3.00708L6.3584 1.14758C6.2604 1.05008 6.1269 1.00708 5.9989 1.00708ZM5.9989 7.00707C5.7229 7.00707 5.4989 7.23107 5.4989 7.50707V9.28808L4.4989 8.30407L3.7959 9.00707L5.6394 10.8666C5.8349 11.0616 6.1629 11.0616 6.3584 10.8666L8.2019 9.00707L7.4989 8.30407L6.4989 9.28808V7.50707C6.4989 7.23107 6.2749 7.00707 5.9989 7.00707Z\"\n />\n </g>\n </svg>\n);\n","import React from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { TradingviewWidget } from \"@orderly.network/ui-tradingview\";\nimport { KlineDragIcon } from \"../../base/icons\";\nimport type { TradingviewState } from \"./tradingview.script\";\n\nexport const TradingviewUI: React.FC<TradingviewState> = (props) => {\n return (\n <div\n className=\"oui-pb-1 oui-flex oui-flex-col oui-gap-1\"\n style={{ height: props.height }}\n ref={props.boxRef}\n >\n <div className=\"oui-w-full oui-h-full\">\n <TradingviewWidget\n symbol={props.symbol}\n libraryPath={props.tradingViewConfig?.library_path}\n mode={3}\n scriptSRC={props.tradingViewConfig?.scriptSRC}\n customCssUrl={props.tradingViewConfig?.customCssUrl}\n {...props.tradingViewConfig}\n />\n </div>\n <div className=\"oui-relative oui-w-full\">\n <div\n ref={props.dragRef}\n className={cn(\n \"oui-h-[1px] oui-absolute oui-left-0 oui-right-0 oui-bottom-0 oui-top-0 oui-z-10 oui-mt-[7px] oui-bg-base-contrast-12\",\n props.dragging && \"oui-bg-primary \",\n )}\n >\n <KlineDragIcon\n className={cn(\n \"oui-w-3 oui-h-3 oui-absolute oui-left-1/2 -oui-top-[5px] -oui-translate-y-[0.5px] oui-text-base-contrast-12\",\n props.dragging && \" oui-text-primary\",\n )}\n />\n </div>\n </div>\n </div>\n );\n};\n","import React from \"react\";\nimport { TradingViewConfigInterface } from \"../../../types/types\";\nimport { useTradingviewScript } from \"./tradingview.script\";\nimport { TradingviewUI } from \"./tradingview.ui\";\n\nexport interface TradingviewWidgetProps {\n symbol: string;\n tradingViewConfig: TradingViewConfigInterface;\n}\n\nexport const TradingviewWidget: React.FC<TradingviewWidgetProps> = (props) => {\n const state = useTradingviewScript(props);\n return <TradingviewUI {...state} />;\n};\n","import React from \"react\";\nimport { LastTradesWidget } from \"../../base/lastTrades\";\n\nexport const MWebLastTrades: React.FC<{ symbol: string }> = (props) => {\n return (\n <LastTradesWidget\n symbol={props.symbol}\n classNames={{\n root: \"oui-px-3 \",\n list: \"oui-min-h-[141px] oui-max-h-[202px] oui-w-full\",\n listHeader: \"oui-text-xs oui-text-base-contrast-36\",\n listItem: {\n left: \"oui-text-xs\",\n mid: \"oui-text-xs\",\n right: \"oui-text-xs\",\n },\n }}\n />\n );\n};\n","import { FC } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { TradeDataState } from \"./tradeData.script\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const TradeData: FC<TradeDataState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"column\"} gap={2}>\n <Row\n title={t(\"common.markPrice\")}\n value={props.ticker?.mark_price}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"common.indexPrice\")}\n value={props.ticker?.index_price}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"markets.column.24hVolume\")}\n value={props.vol_24h}\n dp={props.symbolInfo.quote_dp}\n rule=\"human\"\n showUSDC\n />\n <Row\n title={t(\"trading.column.24High\")}\n value={props.ticker?.[\"24h_high\"]}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"trading.column.24Low\")}\n value={props.ticker?.[\"24h_low\"]}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"markets.openInterest\")}\n value={props.openInterest}\n dp={props.symbolInfo.quote_dp}\n rule=\"human\"\n showUSDC\n />\n </Flex>\n );\n};\n\nconst Row = (props: {\n title: string;\n value: any;\n dp?: number;\n rule?: \"percentages\" | \"price\" | \"human\";\n showUSDC?: boolean;\n}) => {\n const { title, value, showUSDC, dp, rule = \"price\" } = props;\n return (\n <Flex justify={\"between\"} width={\"100%\"} className=\"oui-text-xs\">\n <Text intensity={36}>{title}</Text>\n <Flex gap={1}>\n <Text.numeral rule={rule} dp={dp} intensity={80}>\n {value}\n </Text.numeral>\n {showUSDC && <Text intensity={36}>USDC</Text>}\n </Flex>\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport { useTickerStream } from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport const useTradeDataScript = (props: { symbol: string }) => {\n const { symbol } = props;\n const ticker = useTickerStream(symbol);\n const { symbolInfo } = useTradingPageContext();\n const vol_24h = useMemo(() => {\n const close = ticker?.[\"24h_close\"];\n const volume = ticker?.[\"24h_volume\"];\n if (close && volume && !isNaN(close) && !isNaN(volume)) {\n return new Decimal(close)\n .mul(volume)\n .toFixed(symbolInfo.quote_dp, Decimal.ROUND_DOWN);\n }\n return undefined;\n }, [ticker]);\n\n const openInterest = useMemo(() => {\n const markPrice = ticker?.[\"mark_price\"];\n const openInterest = ticker?.[\"open_interest\"];\n if (markPrice && openInterest && !isNaN(markPrice)) {\n return new Decimal(markPrice)\n .mul(Number(openInterest))\n .toFixed(symbolInfo.quote_dp, Decimal.ROUND_DOWN);\n }\n return undefined;\n }, [ticker]);\n return {\n ticker,\n symbolInfo,\n vol_24h,\n openInterest,\n };\n};\n\nexport type TradeDataState = ReturnType<typeof useTradeDataScript>;\n","import React from \"react\";\nimport { useTradeDataScript } from \"./tradeData.script\";\nimport { TradeData } from \"./tradeData.ui\";\n\nexport const TradeDataWidget: React.FC<{ symbol: string }> = (props) => {\n const state = useTradeDataScript(props);\n return <TradeData {...state} />;\n};\n","export { TradeData } from \"./tradeData.ui\";\nexport { TradeDataWidget } from \"./tradeData.widget\";\nexport { useTradeDataScript } from \"./tradeData.script\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\nimport { TopTabState, TopTabType } from \"./topTab.script\";\n\nconst LazyTradingviewWidget = React.lazy(() =>\n import(\"../tradingview/tradingview.widget\").then((mod) => {\n return { default: mod.TradingviewWidget };\n }),\n);\n\nconst LazyMWebLastTrades = React.lazy(() =>\n import(\"../lastTrades/lastTrades.widget\").then((mod) => {\n return { default: mod.MWebLastTrades };\n }),\n);\n\nconst LazyTradeDataWidget = React.lazy(() =>\n import(\"../tradeData\").then((mod) => {\n return { default: mod.TradeDataWidget };\n }),\n);\n\nexport const TopTab: React.FC<TopTabState & { className?: string }> = (\n props,\n) => {\n const { t } = useTranslation();\n const { tradingViewConfig } = useTradingPageContext();\n\n return (\n <Tabs\n variant=\"contained\"\n value={props.tab}\n contentVisible={props.visible}\n onValueChange={(e) => {\n props.setTab(e as TopTabType);\n props.setVisible(true);\n }}\n className={props.className}\n classNames={{\n tabsList: \"oui-p-2\",\n tabsContent: \"oui-min-h-[176px] oui-max-h-[396px]\",\n }}\n style={{\n marginBottom: props.tab === TopTabType.chart ? \"8px\" : 0,\n }}\n trailing={\n <button className=\"oui-px-5\" onClick={props.toggleContentVisible}>\n <ChevronIcon\n className={props.visible ? \"oui-rotate-0\" : \"oui-rotate-180\"}\n />\n </button>\n }\n >\n <TabPanel title={t(\"trading.tabs.chart\")} value={TopTabType.chart}>\n <React.Suspense fallback={null}>\n <LazyTradingviewWidget\n symbol={props.symbol}\n tradingViewConfig={tradingViewConfig}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel title={t(\"trading.tabs.trades\")} value={TopTabType.trades}>\n <React.Suspense fallback={null}>\n <LazyMWebLastTrades symbol={props.symbol} />\n </React.Suspense>\n </TabPanel>\n <TabPanel title={t(\"trading.tabs.data\")} value={TopTabType.data}>\n <Box px={3}>\n <React.Suspense fallback={null}>\n <LazyTradeDataWidget symbol={props.symbol} />\n </React.Suspense>\n </Box>\n </TabPanel>\n </Tabs>\n );\n};\n\nconst ChevronIcon: React.FC<{ className?: string }> = (props) => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn(\n \"oui-fill-base-contrast-54 hover:oui-fill-base-contrast-80\",\n props.className,\n )}\n >\n <path\n d=\"M5.721 4.585 2.726 6.578a.51.51 0 0 0-.14.7.51.51 0 0 0 .702.14l2.714-1.806 2.715 1.806c.23.153.549.089.702-.14a.51.51 0 0 0-.14-.7L6.283 4.585a.51.51 0 0 0-.562 0\"\n // fill=\"url(#a)\"\n />\n <defs>\n {/* <linearGradient\n id=\"a\"\n x1=\"9.502\"\n y1=\"6.001\"\n x2=\"2.502\"\n y2=\"6.001\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient> */}\n </defs>\n </svg>\n );\n};\n","import React from \"react\";\nimport { useTopTabScript } from \"./topTab.script\";\nimport { TopTab } from \"./topTab.ui\";\n\nexport const TopTabWidget: React.FC<{ className?: string }> = (props) => {\n const state = useTopTabScript();\n return <TopTab className={props.className} {...state} />;\n};\n","export { TopTab } from \"./topTab.ui\";\nexport { TopTabWidget } from \"./topTab.widget\";\nexport { useTopTabScript } from \"./topTab.script\";\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { OrderEntryWidget } from \"@orderly.network/ui-order-entry\";\nimport type { OrderBookAndEntryState } from \"./orderBookAndEntry.script\";\n\nconst LazyOrderBookWidget = React.lazy(() =>\n import(\"../../base/orderBook\").then((mod) => {\n return { default: mod.OrderBookWidget };\n }),\n);\n\nexport const OrderBookAndEntry: React.FC<\n OrderBookAndEntryState & { className?: string }\n> = (props) => {\n const [height, setHeight] = useState(0);\n const divRef = useRef(null);\n\n useEffect(() => {\n const div = divRef.current;\n if (!div) {\n return;\n }\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setHeight(entry.contentRect.height);\n }\n });\n resizeObserver.observe(div);\n return () => {\n resizeObserver.unobserve(div);\n };\n }, []);\n return (\n <div\n className={cn(\n \"oui-mx-1 oui-grid oui-grid-cols-[4fr,6fr] oui-gap-1 \",\n props.className,\n )}\n >\n <div\n className=\"oui-rounded-xl oui-bg-base-9\"\n style={{ height: `${height + 16}px` }}\n >\n <React.Suspense fallback={null}>\n <LazyOrderBookWidget\n symbol={props.symbol}\n height={height ? height - 44 : undefined}\n />\n </React.Suspense>\n </div>\n <div className=\"oui-rounded-xl oui-bg-base-9 oui-p-2\">\n <OrderEntryWidget symbol={props.symbol} containerRef={divRef} />\n </div>\n </div>\n );\n};\n","import { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport const useOrderBookAndEntryScript = () => {\n const { symbol } = useTradingPageContext();\n return {\n symbol,\n };\n};\n\nexport type OrderBookAndEntryState = ReturnType<\n typeof useOrderBookAndEntryScript\n>;\n","import React from \"react\";\nimport { useOrderBookAndEntryScript } from \"./orderBookAndEntry.script\";\nimport { OrderBookAndEntry } from \"./orderBookAndEntry.ui\";\n\nexport const OrderBookAndEntryWidget: React.FC<{ className?: string }> = (\n props,\n) => {\n const state = useOrderBookAndEntryScript();\n return <OrderBookAndEntry className={props.className} {...state} />;\n};\n","export { OrderBookAndEntry } from \"./orderBookAndEntry.ui\";\nexport { OrderBookAndEntryWidget } from \"./orderBookAndEntry.widget\";\nexport { useOrderBookAndEntryScript } from \"./orderBookAndEntry.script\";\n","import { useState } from \"react\";\nimport { useOrderStream } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal, Text } from \"@orderly.network/ui\";\nimport { TabType } from \"@orderly.network/ui-orders\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport {\n usePendingOrderCount,\n usePositionsCount,\n useTradingLocalStorage,\n} from \"../../../hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum DataListTabType {\n position = \"Position\",\n pending = \"Pending\",\n tp_sl = \"TP/SL\",\n history = \"History\",\n liquidation = \"Liquidation\",\n assets = \"Assets\",\n}\n\nexport enum DataListTabSubType {\n positionHistory = \"Position history\",\n orderHistory = \"Order history\",\n}\n\nexport const useDataListScript = (props: {\n symbol: string;\n className?: string;\n sharePnLConfig?: SharePnLConfig;\n}) => {\n const { symbol, sharePnLConfig } = props;\n const [tab, setTab] = useState<DataListTabType>(DataListTabType.position);\n const [subTab, setSubTab] = useState<DataListTabSubType>(\n DataListTabSubType.positionHistory,\n );\n const { t } = useTranslation();\n\n const { onSymbolChange } = useTradingPageContext();\n const localStorage = useTradingLocalStorage();\n\n const [_, { cancelAllPendingOrders, cancelAllTPSLOrders }] = useOrderStream(\n {},\n );\n const { positionCount } = usePositionsCount(symbol);\n const { pendingOrderCount, tpSlOrderCount } = usePendingOrderCount(symbol);\n\n const onCloseAll = (type: TabType) => {\n const { title, content } = getDialogInfo(\n type,\n t,\n localStorage.showAllSymbol ? undefined : symbol,\n );\n modal.confirm({\n title: title,\n content: <Text size=\"2xs\">{content}</Text>,\n\n onOk: async () => {\n try {\n // await cancelAll(null, { source_type: \"ALL\" });\n if (tab === DataListTabType.tp_sl) {\n await cancelAllTPSLOrders(\n localStorage.showAllSymbol ? undefined : symbol,\n );\n } else {\n await cancelAllPendingOrders(\n localStorage.showAllSymbol ? undefined : symbol,\n );\n }\n return Promise.resolve(true);\n } catch (error) {\n // @ts-ignore\n if (error?.message !== undefined) {\n // @ts-ignore\n toast.error(error.message);\n }\n return Promise.resolve(false);\n } finally {\n Promise.resolve();\n }\n },\n });\n };\n\n return {\n tab,\n setTab,\n subTab,\n setSubTab,\n sharePnLConfig,\n symbol,\n positionCount,\n pendingOrderCount,\n tpSlOrderCount,\n ...localStorage,\n onCloseAll,\n onSymbolChange,\n };\n};\n\nexport type DataListState = ReturnType<typeof useDataListScript>;\n\ntype TranslationFn = (...args: any[]) => string;\n\nconst getDialogInfo = (type: TabType, t: TranslationFn, symbol?: string) => {\n // symbol like this: PERP_BTC_USDC, but i want to show BTC, pls help me to format the symbol\n const formattedSymbol = symbol ? formatSymbol(symbol, \"base\") : symbol;\n switch (type) {\n case TabType.pending:\n if (symbol !== undefined) {\n return {\n title: t(\"orders.pending.cancelAll.forSymbol\", {\n symbol: formattedSymbol,\n }),\n content: t(\"orders.pending.cancelAll.forSymbol.description\", {\n symbol: formattedSymbol,\n }),\n };\n }\n return {\n title: t(\"orders.pending.cancelAll\"),\n content: t(\"orders.pending.cancelAll.description\"),\n };\n case TabType.tp_sl:\n if (symbol !== undefined) {\n return {\n title: t(\"orders.tpsl.cancelAll.forSymbol\", {\n symbol: formattedSymbol,\n }),\n content: t(\"orders.tpsl.cancelAll.forSymbol.description\", {\n symbol: formattedSymbol,\n }),\n };\n }\n return {\n title: t(\"orders.tpsl.cancelAll\"),\n content: t(\"orders.tpsl.cancelAll.description\"),\n };\n default:\n return {\n title: \"\",\n content: \"\",\n };\n }\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AssetsModule } from \"@orderly.network/portfolio\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport {\n Button,\n Checkbox,\n Divider,\n Flex,\n TabPanel,\n Tabs,\n Text,\n} from \"@orderly.network/ui\";\nimport type { TabPanelProps } from \"@orderly.network/ui\";\nimport { MobileOrderListWidget, TabType } from \"@orderly.network/ui-orders\";\nimport {\n MobileLiquidationWidget,\n MobilePositionHistoryWidget,\n MobilePositionsWidget,\n} from \"@orderly.network/ui-positions\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport {\n type DataListState,\n DataListTabSubType,\n DataListTabType,\n} from \"./dataList.script\";\n\nconst LazyPositionHeaderWidget = React.lazy(() =>\n import(\"../../base/positionHeader\").then((mod) => {\n return { default: mod.PositionHeaderWidget };\n }),\n);\n\nconst SymbolControlHeader: React.FC<\n DataListState & { type: TabType; ordersStatus?: OrderStatus }\n> = (props) => {\n const { pendingOrderCount, tpSlOrderCount, type, symbol } = props;\n const { t } = useTranslation();\n const cancelAllDisabled = useMemo(() => {\n if (type === TabType.pending) {\n return pendingOrderCount === 0;\n }\n if (type === TabType.tp_sl) {\n return tpSlOrderCount === 0;\n }\n return false;\n }, [pendingOrderCount, tpSlOrderCount, type]);\n const formattedSymbol = props.showAllSymbol\n ? undefined\n : symbol\n ? formatSymbol(symbol, \"base\")\n : symbol;\n return (\n <Flex\n px={2}\n py={2}\n width={\"100%\"}\n justify={\"between\"}\n gap={2}\n className=\"oui-rounded-b-xl oui-bg-base-9\"\n >\n <Flex className=\"oui-cursor-pointer oui-gap-[2px]\">\n <Checkbox\n color=\"white\"\n checked={!props.showAllSymbol}\n onCheckedChange={(checked: boolean) => {\n props.setShowAllSymbol(!checked);\n }}\n />\n <Text\n size=\"2xs\"\n intensity={54}\n onClick={() => {\n props.setShowAllSymbol(!props.showAllSymbol);\n }}\n >\n {t(\"trading.hideOtherSymbols\")}\n </Text>\n </Flex>\n <Button\n variant=\"outlined\"\n size=\"xs\"\n color=\"secondary\"\n onClick={() => props.onCloseAll(props.type)}\n disabled={cancelAllDisabled}\n >\n {!props.showAllSymbol\n ? t(\"orders.cancelAll.ofSymbol\", { symbol: formattedSymbol })\n : t(\"orders.cancelAll\")}\n </Button>\n </Flex>\n );\n};\n\nconst OrdersView: React.FC<\n DataListState & { type: TabType; ordersStatus?: OrderStatus }\n> = (props) => {\n return (\n <Flex direction={\"column\"} pb={2} width={\"100%\"}>\n <Divider className=\"oui-w-full\" />\n {props.type !== TabType.orderHistory && (\n <SymbolControlHeader {...props} />\n )}\n <MobileOrderListWidget\n symbol={props.showAllSymbol ? undefined : props.symbol}\n onSymbolChange={props.onSymbolChange}\n type={props.type}\n ordersStatus={props.ordersStatus}\n classNames={{\n root: \"oui-w-full oui-hide-scrollbar oui-overflow-y-hidden\",\n content: \"!oui-space-y-1\",\n cell: \"oui-py-2 oui-bg-base-9 oui-p-2 oui-rounded-xl\",\n }}\n sharePnLConfig={props.sharePnLConfig}\n showFilter={props.type === TabType.orderHistory}\n filterConfig={{ range: { from: undefined, to: undefined } }}\n />\n </Flex>\n );\n};\n\nconst PositionsView: React.FC<DataListState> = (props) => {\n return (\n <Flex direction={\"column\"} gap={2}>\n <React.Suspense fallback={null}>\n <LazyPositionHeaderWidget\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n setPnlNotionalDecimalPrecision={props.setPnlNotionalDecimalPrecision}\n symbol={props.showAllSymbol ? undefined : props.symbol}\n unPnlPriceBasis={props.unPnlPriceBasis}\n setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <MobilePositionsWidget\n symbol={props.showAllSymbol ? undefined : props.symbol}\n onSymbolChange={props.onSymbolChange}\n sharePnLConfig={props.sharePnLConfig}\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n />\n </React.Suspense>\n </Flex>\n );\n};\n\nconst HistoryTab: React.FC<DataListState> = (props) => {\n const { t } = useTranslation();\n return (\n <div className=\"oui-min-h-[300px]\">\n <Tabs\n value={props.subTab}\n onValueChange={(e: any) => props.setSubTab(e)}\n size=\"md\"\n classNames={{ tabsList: \"oui-bg-base-9 oui-rounded-t-xl oui-p-2\" }}\n >\n <TabPanel\n title={t(\"positions.positionHistory\")}\n value={DataListTabSubType.positionHistory}\n >\n <MobilePositionHistoryWidget\n symbol={props.showAllSymbol ? undefined : props.symbol}\n onSymbolChange={props.onSymbolChange}\n classNames={{ cell: \"oui-p-2 oui-bg-base-9 oui-rounded-xl\" }}\n sharePnLConfig={props.sharePnLConfig}\n />\n </TabPanel>\n <TabPanel\n title={t(\"orders.orderHistory\")}\n value={DataListTabSubType.orderHistory}\n >\n <OrdersView type={TabType.orderHistory} {...props} />\n </TabPanel>\n </Tabs>\n </div>\n );\n};\n\nexport const DataList: React.FC<DataListState & { className?: string }> = (\n props,\n) => {\n const { t } = useTranslation();\n const {\n positionCount = 0,\n pendingOrderCount = 0,\n tpSlOrderCount = 0,\n showAllSymbol,\n symbol,\n tab,\n setTab,\n className,\n } = props;\n\n const tabPanelItems: (TabPanelProps & { content?: React.ReactNode })[] = [\n {\n title: `${t(\"common.positions\")} ${positionCount > 0 ? `(${positionCount})` : \"\"}`,\n value: DataListTabType.position,\n content: <PositionsView {...props} />,\n },\n {\n title: `${t(\"orders.status.pending\")} ${pendingOrderCount > 0 ? `(${pendingOrderCount})` : \"\"}`,\n value: DataListTabType.pending,\n content: (\n <OrdersView\n type={TabType.pending}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...props}\n />\n ),\n },\n {\n title: `${t(\"common.tpsl\")} ${tpSlOrderCount > 0 ? `(${tpSlOrderCount})` : \"\"}`,\n value: DataListTabType.tp_sl,\n content: (\n <OrdersView\n type={TabType.tp_sl}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...props}\n />\n ),\n },\n {\n title: t(\"trading.history\"),\n value: DataListTabType.history,\n content: <HistoryTab {...props} />,\n },\n {\n title: t(\"positions.liquidation\"),\n value: DataListTabType.liquidation,\n content: (\n <MobileLiquidationWidget\n enableLoadMore\n symbol={showAllSymbol ? undefined : symbol}\n classNames={{ cell: \"oui-p-2 oui-bg-base-9 oui-rounded-xl\" }}\n />\n ),\n },\n {\n title: t(\"common.assets\"),\n value: DataListTabType.assets,\n content: <AssetsModule.AssetsWidget />,\n },\n ];\n\n return (\n <Tabs\n value={tab}\n defaultValue={DataListTabType.position}\n onValueChange={(e) => setTab(e as DataListTabType)}\n size=\"lg\"\n className={className}\n classNames={{\n tabsList:\n \"oui-bg-base-9 oui-rounded-t-xl oui-p-2 oui-overflow-x-scroll oui-hide-scrollbar\",\n }}\n >\n {tabPanelItems.map((item) => {\n const { content, ...rest } = item;\n return (\n <TabPanel {...rest} key={`item-${rest.value}`}>\n {content}\n </TabPanel>\n );\n })}\n </Tabs>\n );\n};\n","import React from \"react\";\nimport type { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { useDataListScript } from \"./dataList.script\";\nimport { DataList } from \"./dataList.ui\";\n\nexport const DataListWidget: React.FC<{\n symbol: string;\n className?: string;\n sharePnLConfig?: SharePnLConfig;\n}> = (props) => {\n const state = useDataListScript(props);\n return <DataList {...state} className={props.className} />;\n};\n","export { DataList } from \"./dataList.ui\";\nexport { DataListWidget } from \"./dataList.widget\";\nexport { useDataListScript } from \"./dataList.script\";\n","export type {\n ShareOptions,\n TradingPageProps,\n ReferralProps,\n TradingRewardsProps,\n} from \"./types/types\";\n\nexport * from \"./components/desktop/dataList\";\nexport * from \"./components/base/lastTrades\";\nexport * from \"./components/desktop/assetView\";\nexport * from \"./components/base/orderBook\";\nexport * from \"./components/desktop/riskRate\";\nexport * from \"./components/desktop/orderBookAndTrades\";\nexport * from \"./components/desktop/layout/splitLayout/splitLayout\";\nexport * from \"./components/mobile/bottomNavBar\";\nexport * from \"./components/mobile/portfolioSheet\";\nexport * from \"./components/mobile/fundingRate\";\nexport * from \"./components/mobile/fundingRateModal\";\nexport * from \"./pages/trading\";\nexport * from \"./provider/tradingPageContext\";\nexport * from \"./provider/tradingPageProvider\";\nexport * from \"./hooks\";\n","import React, { PropsWithChildren, forwardRef } from \"react\";\nimport Split, { SplitProps } from \"@uiw/react-split\";\nimport { SplitLineBar } from \"./splitLineBar\";\n\ntype SplitLayoutProps = PropsWithChildren<SplitProps> & {\n onSizeChange?: (size: string) => void;\n};\n\nexport const SplitLayout = forwardRef<Split, SplitLayoutProps>((props, ref) => {\n const { onSizeChange, ...rest } = props;\n return (\n <Split\n ref={ref}\n {...rest}\n lineBar\n renderBar={(barProps) => <SplitLineBar {...barProps} mode={props.mode} />}\n onDragEnd={(_, width) => onSizeChange?.(`${width}`)}\n />\n );\n});\n","import React, { HTMLAttributes, useMemo } from \"react\";\nimport { SplitProps } from \"@uiw/react-split\";\nimport { cn } from \"@orderly.network/ui\";\n\nexport type SplitLineBarProps = Pick<SplitProps, \"mode\"> &\n HTMLAttributes<HTMLDivElement>;\n\nexport const SplitLineBar: React.FC<SplitLineBarProps> = (props) => {\n const { onMouseDown, mode = \"horizontal\", ...rest } = props;\n\n const disable = useMemo(\n () => props.className?.split(\" \").includes(\"disable\"),\n [props.className],\n );\n\n const filterCls = useMemo(\n () => props.className?.split(\" \").filter((cls) => cls !== \"disable\"),\n [props.className],\n );\n\n return (\n <div\n {...rest}\n className={cn(\n filterCls,\n \"!oui-transition-none\",\n \"!oui-shadow-none !oui-bg-transparent\",\n \"hover:!oui-bg-primary-light hover:!oui-shadow-[0px_0px_4px_0px] hover:!oui-shadow-primary-light/80\",\n \"active:!oui-bg-primary-light active:!oui-shadow-[0px_0px_4px_0px] active:!oui-shadow-primary-light/80\",\n \"focus:!oui-bg-primary-light focus:!oui-shadow-[0px_0px_4px_0px] focus:!oui-shadow-primary-light/80\",\n mode === \"horizontal\"\n ? \"!oui-w-[2px] !oui-min-w-[2px] !oui-mx-[3px]\"\n : \"!oui-h-[2px] !oui-min-h-[2px] !oui-my-[3px]\",\n disable && \"oui-pointer-events-none\",\n )}\n >\n <div\n onMouseDown={onMouseDown}\n className={cn(\n \"!oui-transition-none\",\n mode === \"horizontal\" ? \"after:!oui-w-[2px]\" : \"after:!oui-h-[2px]\",\n \"after:!oui-bg-transparent after:!oui-shadow-transparent\",\n )}\n />\n </div>\n );\n};\n","import { FC, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Flex, SimpleDialog, Text } from \"@orderly.network/ui\";\nimport { ScanQRCodeWidget } from \"@orderly.network/ui-scaffold\";\nimport { MobileAccountMenuExtension } from \"./account/account.widget\";\nimport { BalanceWidget } from \"./balance\";\nimport { BottomNavBarState } from \"./bottomNavBar.script\";\nimport { ChainWidget } from \"./chain\";\n\nexport const BottomNavBar: FC<BottomNavBarState> = (props) => {\n const renderContent = () => {\n if (props.wrongNetwork) {\n return null;\n }\n\n if (\n !props.disabledConnect &&\n props.status === AccountStatusEnum.EnableTradingWithoutConnected\n ) {\n return <LinkDevice onDisconnect={props.onDisconnect} />;\n }\n\n return <ChainWidget />;\n };\n\n const showScanQRCode =\n !props.disabledConnect &&\n props.status !== AccountStatusEnum.EnableTradingWithoutConnected &&\n props.status < AccountStatusEnum.EnableTrading;\n\n return (\n <div className=\"oui-bg-base-9 oui-border-t oui-border-line-4\">\n <Flex\n height={64}\n gap={1}\n justify={\"end\"}\n itemAlign={\"center\"}\n className=\"oui-px-[14px]\"\n // style={{\n // height: \"calc(64px + env(safe-area-inset-bottom))\"\n // }}\n >\n <BalanceWidget />\n <Flex gap={2}>\n {showScanQRCode && <ScanQRCodeWidget />}\n {renderContent()}\n <MobileAccountMenuExtension />\n </Flex>\n </Flex>\n <div className=\"oui-h-[env(safe-area-inset-bottom)]\" />\n </div>\n );\n};\n\ntype LinkDeviceProps = {\n onDisconnect: () => void;\n};\n\nconst LinkDevice: FC<LinkDeviceProps> = (props) => {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n\n const showDialog = () => {\n setOpen(true);\n };\n\n const hideDialog = () => {\n setOpen(false);\n };\n\n return (\n <>\n <SimpleDialog\n open={open}\n onOpenChange={setOpen}\n title={t(\"common.tips\")}\n size=\"xs\"\n actions={{\n secondary: {\n label: t(\"common.cancel\"),\n onClick: hideDialog,\n size: \"md\",\n fullWidth: true,\n },\n primary: {\n label: t(\"connector.disconnect\"),\n onClick: async () => {\n await props.onDisconnect();\n hideDialog();\n },\n size: \"md\",\n variant: \"outlined\",\n color: \"danger\",\n },\n }}\n >\n <Text intensity={54} size=\"sm\">\n {t(\"linkDevice.scanQRCode.connected.description\")}\n </Text>\n </SimpleDialog>\n <Flex\n className=\"oui-text-base-contrast oui-px-[6px]\"\n intensity={500}\n height={28}\n r=\"md\"\n onClick={showDialog}\n >\n <DesktopIcon />\n <Dot />\n <LinkIcon />\n <Dot />\n <MobileIcon />\n </Flex>\n </>\n );\n};\n\nconst Dot = () => {\n return (\n <Flex className=\"oui-gap-x-[1px] oui-px-[1px]\">\n <DotIcon />\n <DotIcon />\n <DotIcon />\n </Flex>\n );\n};\n\nconst DesktopIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M4.5 2.93a2.25 2.25 0 0 0-2.25 2.25v5.25a.75.75 0 0 0-.75.75v1.5c0 1.272.93 2.25 2.25 2.25h10.5c1.318 0 2.25-.978 2.25-2.25v-1.5a.75.75 0 0 0-.75-.75V5.18a2.25 2.25 0 0 0-2.25-2.25zm0 1.5h9a.75.75 0 0 1 .75.75v5.25H3.75V5.18a.75.75 0 0 1 .75-.75M3 11.93h12v.75c0 .46-.277.75-.75.75H3.75c-.474 0-.75-.29-.75-.75z\" />\n </svg>\n);\n\nconst MobileIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M13.498 3.715a2.25 2.25 0 0 0-2.25-2.25h-4.5a2.25 2.25 0 0 0-2.25 2.25v10.5a2.25 2.25 0 0 0 2.25 2.25h4.5a2.25 2.25 0 0 0 2.25-2.25zm-1.5 0v9.75h-6v-9.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 .75.75m-2.25 11.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0\" />\n </svg>\n);\n\nconst LinkIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.007 6a5 5 0 1 1 10 0 5 5 0 0 1-10 0m7.486-2.344A.6.6 0 0 1 8.91 3.5c.15 0 .305.048.418.156a.55.55 0 0 1 0 .798L5.254 8.337a.62.62 0 0 1-.837 0L2.67 6.673a.55.55 0 0 1 0-.798.62.62 0 0 1 .837 0l1.329 1.266z\"\n fill=\"url(#a)\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"11.007\"\n y1=\"5.999\"\n x2=\"1.007\"\n y2=\"5.999\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nconst DotIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"2\"\n height=\"2\"\n viewBox=\"0 0 2 2\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M.667.334a.667.667 0 1 1 0 1.333.667.667 0 0 1 0-1.333\"\n fill=\"url(#a)\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"1.333\"\n y1=\"1.001\"\n x2=\"0\"\n y2=\"1.001\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n);\n","import { ExtensionPositionEnum, ExtensionSlot, installExtension } from \"@orderly.network/ui\";\nimport { useAccountScript } from \"./account.script\";\nimport { Account } from \"./account.ui\";\n\nexport const AccountWidget = () => {\n const state = useAccountScript();\n return (<Account {...state} />);\n};\ninstallExtension<any>({\n name: \"mobile-account-menu\",\n scope: [\"*\"],\n positions: [ExtensionPositionEnum.MobileAccountMenu],\n builder: useAccountScript,\n __isInternal: true,\n })((props:any) => {\n return <Account {...props} />;\n });\n \n export const MobileAccountMenuExtension = () => {\n return <ExtensionSlot position={ExtensionPositionEnum.MobileAccountMenu} />;\n };\n ","import { AccountState as AccountStateType } from \"@orderly.network/core\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { useTradingPageContext } from \"../../../../provider/tradingPageContext\";\nimport { AccountSheetWidget } from \"../../accountSheet\";\n\nexport const useAccountScript = () => {\n const { t } = useTranslation();\n const { referral, tradingRewards, bottomSheetLeading } =\n useTradingPageContext();\n const { account, state } = useAccount();\n\n const onShowAccountSheet = () => {\n modal.sheet({\n title: t(\"common.account\"),\n leading: bottomSheetLeading,\n content: <AccountSheetWidget {...referral} {...tradingRewards} />,\n });\n };\n\n return {\n onShowAccountSheet,\n address: account.address,\n state: state as AccountStateType,\n };\n};\n\nexport type AccountState = ReturnType<typeof useAccountScript>;\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { ArrowRightShortIcon, Button, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { AccountSheetState } from \"./accountSheet.script\";\nimport { CopyIcon, HeadIcon, OrderlyIcon, USDCIcon } from \"./icons\";\n\nexport const AccountSheet: FC<AccountSheetState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"column\"} gap={4}>\n <AccountInfo {...props} />\n <ReferralInfo {...props} />\n <TradingRewardsInfo {...props} />\n <Flex gap={3} width={\"100%\"} justify={\"center\"}>\n {props.showGetTestUSDC && (\n <Button\n variant=\"outlined\"\n // color=\"primary\"\n size=\"md\"\n onClick={props.onGetTestUSDC}\n fullWidth\n loading={props.gettingTestUSDC}\n className=\"oui-border-primary-light oui-text-primary-light\"\n >\n {t(\"trading.faucet.getTestUSDC\")}\n </Button>\n )}\n <Button\n variant=\"outlined\"\n color=\"danger\"\n size=\"md\"\n onClick={props.onDisconnect}\n className={props.showGetTestUSDC ? \"oui-w-full\" : \"oui-w-[50%]\"}\n >\n {t(\"connector.disconnect\")}\n </Button>\n </Flex>\n </Flex>\n );\n};\nexport const AccountInfo: FC<AccountSheetState> = (props) => {\n return (\n <Flex width={\"100%\"} justify={\"between\"}>\n <Flex gap={3}>\n <HeadIcon />\n <Flex\n direction={\"column\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n className=\"oui-gap-[2px]\"\n >\n <Text.formatted rule={\"address\"}>{props.address}</Text.formatted>\n <Text.formatted\n size=\"2xs\"\n intensity={80}\n // @ts-ignore\n prefix={\n <div className=\"oui-h-1 oui-w-1 oui-rounded-full oui-bg-success oui-pr-1\" />\n }\n >\n {props.chainName}\n </Text.formatted>\n </Flex>\n </Flex>\n <button\n className=\"oui-cursor-pointer\"\n onClick={() => {\n props.onCopyAddress();\n }}\n >\n <CopyIcon />\n </button>\n </Flex>\n );\n};\n\nexport const ReferralInfo: FC<AccountSheetState> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n direction={\"column\"}\n gap={3}\n r=\"lg\"\n p={3}\n className=\"oui-bg-base-6\"\n width={\"100%\"}\n >\n <button\n onClick={props.onClickReferral}\n className=\"oui-cursor-pointer oui-w-full\"\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Text size=\"2xs\">{t(\"affiliate.referral\")}</Text>\n <ArrowRightShortIcon color=\"white\" opacity={0.98} size={16} />\n </Flex>\n </button>\n {props.isAffiliate && (\n <Flex\n gradient=\"primary\"\n p={4}\n r=\"lg\"\n width={\"100%\"}\n angle={180}\n justify={\"between\"}\n >\n <Flex direction={\"column\"} itemAlign={\"start\"}>\n <Text size=\"xs\">{t(\"common.affiliate\")}</Text>\n <Text size=\"2xs\" intensity={54}>\n ({t(\"affiliate.commission.30d\")})\n </Text>\n </Flex>\n <Flex className=\"oui-gap-[6px]\">\n <USDCIcon />\n <Text.numeral\n dp={2}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n rule=\"price\"\n >\n {props.affiliateCommission30D ?? \"--\"}\n </Text.numeral>\n </Flex>\n </Flex>\n )}\n {props.isTrader && (\n <Flex\n gradient=\"success\"\n p={4}\n r=\"lg\"\n width={\"100%\"}\n angle={180}\n justify={\"between\"}\n >\n <Flex direction={\"column\"} itemAlign={\"start\"}>\n <Text size=\"xs\">{t(\"affiliate.trader\")}</Text>\n <Text size=\"2xs\" intensity={54}>\n ({t(\"affiliate.commission.30d\")})\n </Text>\n </Flex>\n <Flex className=\"oui-gap-[6px]\">\n <USDCIcon />\n <Text.numeral\n dp={2}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n rule=\"price\"\n >\n {props.traderCommission30D ?? \"--\"}\n </Text.numeral>\n </Flex>\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport const TradingRewardsInfo: FC<AccountSheetState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n direction={\"column\"}\n gap={3}\n r=\"lg\"\n p={3}\n className=\"oui-bg-base-6\"\n width={\"100%\"}\n >\n <button\n onClick={props.onClickTradingRewards}\n className=\"oui-cursor-pointer oui-w-full\"\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex gap={1} className=\"oui-text-base-contrast oui-text-2xs\">\n <Text>{t(\"common.tradingRewards\")}</Text>\n <Text intensity={54}>\n (\n <Text>{`${(\n t(\"tradingRewards.epoch\") as string\n )?.toLowerCase()} `}</Text>\n <Text intensity={98}>{props.curEpochId}</Text> )\n </Text>\n </Flex>\n <ArrowRightShortIcon color=\"white\" opacity={0.98} size={16} />\n </Flex>\n </button>\n <Flex\n p={4}\n r=\"lg\"\n width={\"100%\"}\n angle={180}\n justify={\"between\"}\n className=\"oui-bg-gradient-to-t oui-from-[#2d0061] oui-to-[#bd6bed]\"\n >\n <Text size=\"2xs\" intensity={80}>\n {t(\"tradingRewards.myEstRewards\")}\n </Text>\n\n <Flex className=\"oui-gap-[6px]\">\n <OrderlyIcon />\n <Text.numeral\n dp={2}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n rule=\"price\"\n >\n {props.estRewards}\n </Text.numeral>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n","export const HeadIcon = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-rounded-full\"\n >\n <g clipPath=\"url(#a)\">\n <path\n d=\"m31.002 14.493-8.326-22.51L.166.31l8.327 22.51z\"\n fill=\"#03435D\"\n />\n <path\n d=\"m4.456-8.716-18.03 15.84 15.84 18.03 18.03-15.84z\"\n fill=\"#157CF2\"\n />\n <path\n d=\"m17.548 38.67 22.825-7.416-7.416-22.825-22.826 7.416z\"\n fill=\"#F3E200\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#fff\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const CopyIcon = () => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.832 2.492A3.333 3.333 0 0 0 2.5 5.826v5a3.333 3.333 0 0 0 3.333 3.333 3.333 3.333 0 0 0 3.334 3.333h5a3.333 3.333 0 0 0 3.333-3.333v-5a3.333 3.333 0 0 0-3.333-3.333 3.333 3.333 0 0 0-3.334-3.334zm8.334 5c.92 0 1.666.746 1.666 1.667v5c0 .92-.746 1.666-1.666 1.666h-5c-.92 0-1.667-.745-1.667-1.666h3.333a3.333 3.333 0 0 0 3.334-3.334z\"\n fill=\"rgb(var(--oui-color-primary))\"\n />\n </svg>\n );\n};\n\nexport const USDCIcon = (props: { size?: number }) => {\n const { size = 20 } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#a)\">\n <path\n d=\"M10 20c5.542 0 10-4.458 10-10S15.542 0 10 0 0 4.458 0 10s4.458 10 10 10\"\n fill=\"#2775CA\"\n />\n <path\n d=\"M13 11.473c0-1.452-.94-1.95-2.82-2.158-1.344-.166-1.613-.498-1.613-1.078s.448-.955 1.343-.955c.806 0 1.254.25 1.478.872.045.124.18.207.313.207h.717c.179 0 .313-.125.313-.29v-.042c-.179-.913-.985-1.618-2.015-1.701v-.996c0-.166-.134-.29-.358-.332h-.671c-.18 0-.314.124-.359.332v.954c-1.343.166-2.194.996-2.194 2.034 0 1.369.896 1.908 2.776 2.116 1.254.207 1.657.456 1.657 1.12s-.627 1.12-1.477 1.12c-1.165 0-1.568-.456-1.702-1.078a.32.32 0 0 0-.313-.25h-.762c-.179 0-.313.125-.313.291v.042c.179 1.037.895 1.784 2.373 1.991v.996c0 .166.134.29.358.332h.672c.18 0 .313-.124.358-.332v-.996C12.105 13.465 13 12.593 13 11.473\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n d=\"M7.74 16.57c-3.458-1.215-5.23-4.986-3.945-8.324.665-1.821 2.127-3.208 3.944-3.859.178-.086.266-.216.266-.433v-.607c0-.174-.088-.304-.266-.347-.044 0-.133 0-.177.043-4.21 1.3-6.516 5.68-5.186 9.798.798 2.428 2.704 4.292 5.186 5.072.177.087.355 0 .399-.173.044-.043.044-.087.044-.173v-.608c0-.13-.133-.303-.266-.39m4.698-13.527c-.178-.086-.355 0-.4.174-.043.043-.043.086-.043.173v.607c0 .174.133.347.266.434 3.457 1.213 5.23 4.985 3.944 8.323-.664 1.821-2.127 3.209-3.944 3.859-.178.086-.266.216-.266.433v.607c0 .174.088.304.266.347.044 0 .133 0 .177-.043 4.21-1.3 6.515-5.68 5.186-9.798-.798-2.471-2.748-4.335-5.186-5.116\"\n fill=\"#fff\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h20v20H0z\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const OrderlyIcon = (props: { size?: number }) => {\n const { size = 20 } = props;\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_6403_64483)\">\n <path\n d=\"M10.0245 19.9493C15.5198 19.9493 19.9747 15.4944 19.9747 9.99908C19.9747 4.50371 15.5198 0.0488281 10.0245 0.0488281C4.5291 0.0488281 0.0742188 4.50371 0.0742188 9.99908C0.0742188 15.4944 4.5291 19.9493 10.0245 19.9493Z\"\n fill=\"url(#paint0_linear_6403_64483)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1553 4.89304C14.2199 4.94541 14.1821 5.04758 14.0989 5.04758H5.95035C5.86716 5.04758 5.82936 4.94541 5.894 4.89304C7.0223 3.97912 8.45953 3.43164 10.0246 3.43164C11.5898 3.43164 13.0269 3.97912 14.1553 4.89304Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.47013 11.7869C7.42315 11.7199 7.34748 11.6777 7.26565 11.6777H3.82985C3.75113 11.6777 3.69375 11.7525 3.71563 11.8281C4.5078 14.565 7.0326 16.566 10.0247 16.566C13.017 16.566 15.5417 14.565 16.3339 11.8281C16.3558 11.7525 16.2984 11.6777 16.2197 11.6777H12.7839C12.702 11.6777 12.6264 11.7199 12.5795 11.7869C12.0155 12.5911 11.0815 13.1167 10.0248 13.1167C8.96803 13.1167 8.03406 12.5911 7.47013 11.7869Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.3347 7.90519C12.3822 7.95756 12.449 7.9891 12.5196 7.9891H16.1137C16.1952 7.9891 16.253 7.90983 16.2261 7.83301C15.9724 7.10689 15.5948 6.43893 15.1187 5.85447C15.074 5.79961 15.0067 5.76855 14.9358 5.76855H5.11323C5.04247 5.76855 4.97512 5.79961 4.93044 5.85447C4.45429 6.43893 4.0767 7.10689 3.82306 7.83301C3.79622 7.90983 3.85398 7.9891 3.93536 7.9891H7.52952C7.60022 7.9891 7.66694 7.95756 7.71445 7.90519C8.28491 7.2763 9.10861 6.88136 10.0246 6.88136C10.9405 6.88136 11.7643 7.2763 12.3347 7.90519Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.1164 10.9586C13.0553 10.9586 13.0118 10.899 13.0284 10.8401C13.1033 10.5722 13.1433 10.2898 13.1433 9.9981C13.1433 9.58758 13.064 9.19556 12.9199 8.83657C12.8954 8.77581 12.9392 8.70801 13.0046 8.70801H16.392C16.4349 8.70801 16.472 8.73831 16.4799 8.78052C16.5538 9.17511 16.5925 9.58216 16.5925 9.9982C16.5925 10.2978 16.5724 10.5926 16.5337 10.8815C16.5277 10.9258 16.4897 10.9586 16.4451 10.9586H13.1164ZM7.02223 10.8401C7.03868 10.899 6.99532 10.9586 6.93421 10.9586H3.60551C3.56084 10.9586 3.52285 10.9258 3.5169 10.8815C3.47807 10.5926 3.45801 10.2978 3.45801 9.9982C3.45801 9.58216 3.4967 9.17511 3.57069 8.78052C3.57859 8.73831 3.61563 8.70801 3.65856 8.70801H7.04593C7.11141 8.70801 7.15516 8.77581 7.13076 8.83657C6.98657 9.19556 6.90722 9.58758 6.90722 9.9981C6.90722 10.2898 6.94728 10.5722 7.02223 10.8401Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_6403_64483\"\n x1=\"10.0245\"\n y1=\"0.0488561\"\n x2=\"10.0245\"\n y2=\"19.9493\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C750FF\" />\n <stop offset=\"1\" stopColor=\"#5800E8\" />\n </linearGradient>\n <clipPath id=\"clip0_6403_64483\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n TWType,\n useAccount,\n useChains,\n useConfig,\n useCurEpochEstimate,\n useEpochInfo,\n useLocalStorage,\n useMutation,\n useReferralInfo,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum, ChainNamespace } from \"@orderly.network/types\";\nimport { modal, toast, useModal } from \"@orderly.network/ui\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { ReferralProps, TradingRewardsProps } from \"../../../types/types\";\n\nexport const useAccountSheetScript = (\n props: ReferralProps & TradingRewardsProps,\n) => {\n const { t } = useTranslation();\n const [linkDeviceStorage] = useLocalStorage(\"orderly_link_device\", {});\n const { account, state } = useAccount();\n const accountId = account.accountId;\n const address = account.address;\n const { hide } = useModal();\n\n const config = useConfig();\n\n const { connectedChain, disconnect, namespace } = useWalletConnector();\n\n const chainId =\n account.chainId || connectedChain?.id || linkDeviceStorage?.chainId;\n\n const showGetTestUSDC = useMemo(() => {\n if (chainId) {\n return (\n (state.status === AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected) &&\n // @ts-ignore\n isTestnet(parseInt(chainId))\n );\n }\n\n return false;\n }, [state.status, chainId]);\n\n const chainName = useGetChains(chainId);\n\n const operatorUrl = config.get<string>(\"operatorUrl\");\n\n const onCopyAddress = () => {\n navigator.clipboard.writeText(address ?? \"\");\n toast.success(t(\"common.copy.copied\"));\n };\n\n const {\n affiliateCommission30D,\n traderCommission30D,\n isAffiliate,\n isTrader,\n onClickReferral,\n } = useReferral(props.onClickReferral);\n\n const { curEpochId, estRewards, onClickTradingRewards } = useTradingRewards(\n props.onClickTradingRewards,\n );\n\n const onDisconnect = async () => {\n // The cache must be cleared first, otherwise it will be possible entered link device mode\n localStorage.removeItem(\"orderly_link_device\");\n await disconnect({\n label: state.connectWallet?.name,\n });\n await account.disconnect();\n hide();\n };\n\n const [getTestUSDC, { isMutating: gettingTestUSDC }] = useMutation(\n `${operatorUrl}/v1/faucet/usdc`,\n );\n\n const onGetTestUSDC = () => {\n if (\n state.status < AccountStatusEnum.EnableTrading &&\n state.status !== AccountStatusEnum.EnableTradingWithoutConnected\n ) {\n // return modal.show(WalletConnectSheet, {\n // status: state.status,\n // });\n return;\n }\n\n const message = t(\"trading.faucet.getTestUSDC.success\", {\n quantity: namespace === ChainNamespace.solana ? \"100\" : \"1,000\",\n });\n\n return getTestUSDC({\n chain_id: chainId?.toString(),\n user_address: state.address,\n broker_id: config.get(\"brokerId\"),\n }).then(\n (res: any) => {\n if (res.success) {\n return modal.alert({\n title: t(\"trading.faucet.getTestUSDC\"),\n message,\n onOk: () => {\n return Promise.resolve(true);\n },\n });\n }\n res.message && toast.error(res.message);\n // return Promise.reject(res);\n },\n (error: Error) => {\n toast.error(error.message);\n },\n );\n };\n return {\n accountId,\n address,\n chainId,\n chainName,\n onCopyAddress,\n\n affiliateCommission30D,\n onClickReferral,\n isAffiliate,\n isTrader,\n traderCommission30D,\n\n curEpochId,\n onClickTradingRewards,\n estRewards,\n\n onDisconnect,\n showGetTestUSDC,\n onGetTestUSDC,\n gettingTestUSDC,\n };\n};\n\nconst useReferral = (_onClickReferral?: () => void) => {\n const { data, isLoading, isAffiliate, isTrader } = useReferralInfo();\n\n const affiliateCommission30D = useMemo(() => {\n if (isAffiliate) {\n return data?.referrer_info?.[\"30d_referrer_rebate\"];\n }\n return undefined;\n }, [data, isAffiliate]);\n\n const traderCommission30D = useMemo(() => {\n if (isTrader) {\n return data?.referee_info?.[\"30d_referee_rebate\"];\n }\n return undefined;\n }, [data, isTrader]);\n\n const onClickReferral = () => {\n _onClickReferral?.();\n };\n\n return {\n onClickReferral,\n affiliateCommission30D,\n traderCommission30D,\n isAffiliate,\n isTrader,\n\n // WARNING: test data\n // affiliateCommission30D: 1234.43,\n // traderCommission30D:44343.33,\n // isAffiliate: true,\n // isTrader: true,\n };\n};\n\nconst useTradingRewards = (_onClick?: () => void) => {\n const [curEpochEstimate] = useCurEpochEstimate(TWType.normal);\n const [list, curEpoch] = useEpochInfo(TWType.normal);\n const curEpochId = useMemo(() => {\n return curEpoch.curEpochInfo?.epoch_id ?? \"--\";\n }, [curEpoch]);\n\n const estRewards = useMemo(() => {\n if (typeof curEpochEstimate?.est_r_wallet === \"undefined\") {\n return \"--\";\n }\n return curEpochEstimate?.est_r_wallet;\n }, [curEpochEstimate]);\n\n const onClickTradingRewards = () => {\n _onClick?.();\n };\n\n return {\n curEpochId,\n estRewards,\n onClickTradingRewards,\n };\n};\n\nfunction useGetChains(chainId: number) {\n const [mainChains, { findByChainId }] = useChains(\"mainnet\", {\n pick: \"network_infos\",\n filter: (chain: any) =>\n chain.network_infos?.bridge_enable || chain.network_infos?.bridgeless,\n });\n\n const chainName = useMemo(() => {\n // @ts-ignore\n const chain = findByChainId(parseInt(chainId), \"network_infos\");\n\n if (!chain) {\n return \"Unknown\";\n }\n // // @ts-ignore\n // if (isTestnet(chain.chain_id)) {\n // return \"Testnet\";\n // }\n // @ts-ignore\n return chain.name;\n }, [chainId, findByChainId]);\n\n return chainName;\n}\n\nexport type AccountSheetState = ReturnType<typeof useAccountSheetScript>;\n","import { ReferralProps, TradingRewardsProps } from \"../../../types/types\";\nimport { useAccountSheetScript } from \"./accountSheet.script\";\nimport { AccountSheet } from \"./accountSheet.ui\";\n\nexport const AccountSheetWidget = (\n props: ReferralProps & TradingRewardsProps\n) => {\n const state = useAccountSheetScript(props);\n return <AccountSheet {...state} />;\n};\n","import { FC } from \"react\";\nimport { Button, formatAddress } from \"@orderly.network/ui\";\nimport { AccountState } from \"./account.script\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\n\nexport const Account: FC<AccountState> = (props) => {\n return (\n <AuthGuard\n buttonProps={{\n size: \"sm\",\n }}\n >\n <Button\n variant=\"gradient\"\n size={\"sm\"}\n className=\"oui-max-w-[83px]\"\n onClick={(e) => {\n props.onShowAccountSheet();\n }}\n >\n {formatAddress(props.address!, [4, 4])}\n </Button>\n </AuthGuard>\n );\n};\n","import { FC } from \"react\";\nimport { BalanceState } from \"./balance.script\";\n\nexport const Balance: FC<BalanceState> = () => {\n return null;\n};\n","export const useBalanceScript = () => {\n return {};\n};\n\nexport type BalanceState = ReturnType<typeof useBalanceScript>;\n","import { useBalanceScript } from \"./balance.script\";\nimport { Balance } from \"./balance.ui\";\n\nexport const BalanceWidget = () => {\n const state = useBalanceScript();\n return <Balance {...state} />;\n};\n","import { FC } from \"react\";\nimport { Box, ChainIcon, modal, toast } from \"@orderly.network/ui\";\nimport { ChainState } from \"./chain.script\";\nimport { ChainSelectorSheetId } from \"@orderly.network/ui-chain-selector\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Chain: FC<ChainState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <button\n onClick={(e) => {\n modal\n .show<{\n wrongNetwork: boolean;\n }>(ChainSelectorSheetId, {\n // networkId: props.networkId,\n bridgeLessOnly: false,\n isWrongNetwork: props.wrongNetwork,\n })\n .then(\n (r: any) => {\n if (r?.chainId) {\n props.setCurrentChainId(r?.chainId);\n }\n toast.success(t(\"connector.networkSwitched\"));\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n }}\n >\n <Box className=\"oui-relative oui-rounded-t-[6px] oui-rounded-bl-[6px] oui-rounded-br-[3px] oui-bg-base-5 oui-px-2 oui-h-7 oui-flex oui-items-center\">\n <ChainIcon chainId={props.currentChainId!} size=\"2xs\" />\n <div className=\"oui-absolute oui-right-0 oui-bottom-0\">\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 9 9\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6V0L0 9h6a3 3 0 0 0 3-3\" fill=\"url(#a)\" />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"9\"\n y1=\"4.5\"\n x2=\"0\"\n y2=\"4.5\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop\n offset=\"1\"\n stopColor=\"rgb(var(--oui-gradient-brand-start))\"\n />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </Box>\n </button>\n );\n};\n","import { useConfig } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useChainScript = () => {\n const config = useConfig();\n const { wrongNetwork, currentChainId, setCurrentChainId } = useAppContext();\n\n const networkId = config.get(\"networkId\");\n\n return {\n currentChainId,\n setCurrentChainId,\n networkId,\n wrongNetwork,\n };\n};\n\nexport type ChainState = ReturnType<typeof useChainScript>;\n","import React from \"react\";\nimport { useChainScript } from \"./chain.script\";\nimport { Chain } from \"./chain.ui\";\n\nexport const ChainWidget: React.FC = () => {\n const state = useChainScript();\n return <Chain {...state} />;\n};\n","import { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useBottomNavBarScript = () => {\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { account, state } = useAccount();\n\n /** link device, acally wallet not connect */\n const onDisconnect = async () => {\n localStorage.removeItem(\"orderly_link_device\");\n await account.disconnect();\n };\n\n return {\n wrongNetwork,\n disabledConnect,\n status: state.status,\n onDisconnect,\n };\n};\n\nexport type BottomNavBarState = ReturnType<typeof useBottomNavBarScript>;\n","import React from \"react\";\nimport { useBottomNavBarScript } from \"./bottomNavBar.script\";\nimport { BottomNavBar } from \"./bottomNavBar.ui\";\n\nexport const BottomNavBarWidget: React.FC = () => {\n const state = useBottomNavBarScript();\n return <BottomNavBar {...state} />;\n};\n","import { FC, useCallback, useId } from \"react\";\nimport React from \"react\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\nimport {\n ArrowDownShortIcon,\n ArrowLeftRightIcon,\n ArrowUpShortIcon,\n Button,\n cn,\n Divider,\n EyeCloseIcon,\n EyeIcon,\n Flex,\n Grid,\n Input,\n inputFormatter,\n InputFormatter,\n modal,\n PlusIcon,\n ReduceIcon,\n RefreshIcon,\n Statistic,\n Text,\n} from \"@orderly.network/ui\";\nimport { LeverageProps, LeverageSlider } from \"@orderly.network/ui-leverage\";\nimport { USDCIcon } from \"../accountSheet/icons\";\nimport {\n getMarginRatioColor,\n PortfolioSheetState,\n} from \"./portfolioSheet.script\";\nimport { RiskIndicator } from \"./riskIndicator\";\n\nexport const PortfolioSheet: FC<PortfolioSheetState> = (props) => {\n return (\n <Flex direction={\"column\"} gap={4} width={\"100%\"}>\n <Asset {...props} />\n <Divider className=\"oui-w-full\" />\n <MarginRatio {...props} />\n {/* <Leverage {...props} /> */}\n {/* <Divider className=\"oui-w-full\" /> */}\n {/* <AvailableBalance {...props} /> */}\n <Buttons {...props} />\n </Flex>\n );\n};\n\nconst Asset: FC<PortfolioSheetState> = (props) => {\n const { t } = useTranslation();\n\n const onUnsettleClick = useCallback(() => {\n return modal.confirm({\n title: t(\"settle.settlePnl\"),\n // maxWidth: \"xs\",\n content: (\n <Text intensity={54} size=\"xs\">\n {/* @ts-ignore */}\n <Trans i18nKey=\"settle.settlePnl.description\" />\n </Text>\n ),\n onCancel: () => {\n return Promise.reject();\n },\n onOk: () => {\n if (typeof props.onSettlePnL !== \"function\") {\n return Promise.resolve();\n }\n return props.onSettlePnL().catch((e) => {});\n },\n });\n }, [t]);\n\n const clsName =\n props.totalUnrealizedROI > 0\n ? \"oui-text-success-darken\"\n : \"oui-text-danger-darken\";\n\n return (\n <Flex direction={\"column\"} gap={3} width={\"100%\"}>\n <Flex direction={\"column\"} itemAlign={\"start\"} width={\"100%\"}>\n <Text.formatted\n size=\"2xs\"\n intensity={36}\n suffix={\n props.hideAssets ? (\n <EyeIcon\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n ) : (\n <EyeCloseIcon\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n )\n }\n onClick={() => {\n props.toggleHideAssets();\n }}\n className=\"oui-cursor-pointer\"\n >\n {`${t(\"common.totalValue\")} (USDC)`}\n </Text.formatted>\n <Text.numeral\n size=\"base\"\n // coloring\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.totalValue ?? \"--\"}\n </Text.numeral>\n </Flex>\n <Grid cols={2} rows={1} width={\"100%\"}>\n <Statistic\n label={`${t(\"common.unrealizedPnl\")} (USDC)`}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex gap={1}>\n <Text.pnl\n size=\"xs\"\n coloring\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.aggregated.total_unreal_pnl}\n </Text.pnl>\n {!props.hideAssets && (\n <Text.roi\n size=\"xs\"\n dp={2}\n padding={false}\n rule=\"percentages\"\n prefix={\"(\"}\n suffix={\")\"}\n className={clsName}\n >\n {props.totalUnrealizedROI}\n </Text.roi>\n )}\n </Flex>\n </Statistic>\n <Statistic\n label={`${t(\"trading.asset.unsettledPnl\")} (USDC)`}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Text.pnl\n size=\"xs\"\n coloring\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.aggregated.total_unsettled_pnl}\n </Text.pnl>\n <button\n className=\"oui-flex oui-gap-1 oui-items-center\"\n onClick={onUnsettleClick}\n >\n <RefreshIcon\n opacity={1}\n size={12}\n className=\"oui-text-primary-light\"\n />\n <Text size=\"2xs\" color=\"primary\">\n {t(\"settle.settlePnl\")}\n </Text>\n </button>\n </Flex>\n </Statistic>\n </Grid>\n </Flex>\n );\n};\nconst MarginRatio: FC<PortfolioSheetState> = (props) => {\n const { t } = useTranslation();\n\n const { high, mid, low } = getMarginRatioColor(\n props.marginRatioVal,\n props.mmr,\n );\n\n return (\n <Grid cols={2} rows={1} width={\"100%\"}>\n <Statistic\n label={t(\"trading.asset.marginRatio\")}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex gap={2}>\n <Text.numeral\n size=\"xs\"\n rule=\"percentages\"\n color=\"primary\"\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.marginRatioVal}\n </Text.numeral>\n {!props.hideAssets && (\n <RiskIndicator\n className={\n low\n ? \"oui-rotate-0\"\n : mid\n ? \"oui-rotate-90\"\n : high\n ? \"oui-rotate-180\"\n : \"\"\n }\n />\n )}\n </Flex>\n </Statistic>\n <Statistic\n label={`${t(\"trading.asset.free&TotalCollateral\")} (USDC)`}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex justify={\"start\"} width={\"100%\"} gap={1}>\n <Text.collateral\n size=\"xs\"\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.freeCollateral}\n </Text.collateral>\n <Text size=\"xs\">/</Text>\n <Text.collateral\n size=\"xs\"\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.totalCollateral}\n </Text.collateral>\n </Flex>\n </Statistic>\n </Grid>\n );\n};\n\nconst IconButton: React.FC<{\n Icon: React.ComponentType<any>;\n onClick: React.MouseEventHandler<SVGSVGElement>;\n disabled: boolean;\n}> = (props) => {\n const { Icon, onClick, disabled } = props;\n return (\n <Icon\n onClick={disabled ? undefined : onClick}\n className={cn(\n \"oui-text-white oui-m-2 oui-transition-all\",\n disabled\n ? \"oui-cursor-not-allowed oui-opacity-20\"\n : \"oui-cursor-pointer oui-opacity-100\",\n )}\n />\n );\n};\n\nconst LeverageInput: React.FC<PortfolioSheetState> = (props) => {\n const formatters = React.useMemo<InputFormatter[]>(\n () => [\n inputFormatter.numberFormatter,\n inputFormatter.currencyFormatter,\n inputFormatter.decimalPointFormatter,\n ],\n [],\n );\n const id = useId();\n return (\n <label\n htmlFor={id}\n className={cn(\n \"oui-w-full\",\n \"oui-rounded\",\n \"oui-bg-base-6\",\n \"oui-flex\",\n \"oui-items-center\",\n \"oui-justify-between\",\n \"oui-outline\",\n \"oui-outline-offset-0\",\n \"oui-outline-1\",\n \"oui-outline-transparent\",\n \"focus-within:oui-outline-primary-light\",\n \"oui-input-root\",\n )}\n >\n <IconButton\n Icon={ReduceIcon}\n onClick={props.onLeverageReduce}\n disabled={props.isReduceDisabled}\n />\n <Flex itemAlign=\"center\" justify=\"center\">\n <Input\n // {...props}\n value={props.value}\n id={id}\n autoComplete=\"off\"\n classNames={{\n input: cn(\"oui-text-center\"),\n root: cn(\n \"oui-text-center\",\n \"oui-w-6\",\n \"oui-px-0\",\n \"oui-outline\",\n \"oui-outline-offset-0\",\n \"oui-outline-1\",\n \"oui-outline-transparent\",\n \"focus-within:oui-outline-primary-none\",\n ),\n }}\n formatters={formatters}\n onChange={props.onInputChange}\n />\n <div className=\"oui-select-none\">x</div>\n </Flex>\n <IconButton\n Icon={PlusIcon}\n onClick={props.onLeverageIncrease}\n disabled={props.isIncreaseDisabled}\n />\n </label>\n );\n};\n\nexport const LeverageSelector: React.FC<PortfolioSheetState> = (props) => {\n const { value, onLeverageChange, onValueCommit } = props;\n return (\n <Flex itemAlign=\"center\" justify=\"between\" width={\"100%\"} mt={2}>\n {[1, 5, 10, 20, 50].map((option) => (\n <Flex\n key={option}\n itemAlign=\"center\"\n justify=\"center\"\n className={cn(\n `oui-transition-all oui-cursor-pointer oui-box-border oui-bg-clip-padding oui-px-3 oui-py-2.5 oui-rounded-md oui-border oui-border-solid`,\n value === option\n ? \"oui-border-primary oui-bg-base-6\"\n : \"oui-border-line-12\",\n )}\n onClick={() => {\n onLeverageChange(option);\n onValueCommit(option);\n }}\n >\n <Flex\n itemAlign=\"center\"\n justify=\"center\"\n className={cn(`oui-h-3 oui-w-9 oui-select-none`)}\n >\n {option}x\n </Flex>\n </Flex>\n ))}\n </Flex>\n );\n};\n\nconst Buttons: FC<PortfolioSheetState> = (props) => {\n const { t } = useTranslation();\n\n if (props.isMainAccount) {\n return (\n <Grid\n cols={props.hasSubAccount ? 3 : 2}\n rows={1}\n gap={3}\n className=\"oui-grid-row-[1fr,1fr]\"\n width={\"100%\"}\n pt={2}\n pb={4}\n >\n <Button\n icon={<ArrowDownShortIcon color=\"white\" opacity={0.8} />}\n size=\"md\"\n fullWidth\n onClick={props.onDeposit}\n >\n {t(\"common.deposit\")}\n </Button>\n {props.hasSubAccount && (\n <Button\n icon={<ArrowLeftRightIcon color=\"white\" opacity={0.8} />}\n color=\"gray\"\n size=\"md\"\n onClick={props.onTransfer}\n data-testid=\"oui-testid-assetView-transfer-button\"\n >\n <Text>{t(\"common.transfer\")}</Text>\n </Button>\n )}\n <Button\n icon={<ArrowUpShortIcon color=\"white\" opacity={0.8} />}\n size=\"md\"\n fullWidth\n className=\"oui-bg-base-2 hover:oui-bg-base-2/50\"\n onClick={props.onWithdraw}\n >\n {t(\"common.withdraw\")}\n </Button>\n </Grid>\n );\n }\n\n return (\n <Button\n fullWidth\n color=\"secondary\"\n size=\"md\"\n onClick={props.onTransfer}\n data-testid=\"oui-testid-assetView-transfer-button\"\n >\n <Text>{t(\"common.transfer\")}</Text>\n </Button>\n );\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport {\n useAccount,\n useCollateral,\n useDebouncedCallback,\n useEventEmitter,\n useLeverage,\n useMarginRatio,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal, SliderMarks, toast } from \"@orderly.network/ui\";\nimport {\n DepositAndWithdrawWithSheetId,\n TransferSheetId,\n} from \"@orderly.network/ui-transfer\";\nimport { useTradingLocalStorage } from \"../../../hooks\";\n\nexport const usePortfolioSheetScript = () => {\n const { state, account, isMainAccount } = useAccount();\n const assets = useAssets();\n const marginRatio = useMarginRatioAndLeverage();\n const ee = useEventEmitter();\n const { t } = useTranslation();\n const subAccounts = state.subAccounts ?? [];\n\n const [showSliderTip, setShowSliderTip] = useState(false);\n\n const onSettlePnL = useCallback(async () => {\n return account\n .settle()\n .catch((e) => {\n if (e.code == -1104) {\n toast.error(t(\"settle.settlement.error\"));\n return Promise.reject(e);\n }\n if (\n e.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: e.message,\n userAddress: account.address,\n });\n return Promise.reject(e);\n }\n\n if (e?.code === \"ACTION_REJECTED\") {\n toast.error(t(\"connector.userRejected\"));\n return Promise.reject(e);\n }\n })\n .then((res) => {\n toast.success(t(\"settle.settlement.requested\"));\n return Promise.resolve(res);\n });\n }, [account, t]);\n\n const onDeposit = useCallback(() => {\n modal.show(DepositAndWithdrawWithSheetId, {\n activeTab: \"deposit\",\n });\n }, []);\n\n const onWithdraw = useCallback(() => {\n modal.show(DepositAndWithdrawWithSheetId, {\n activeTab: \"withdraw\",\n });\n }, []);\n\n const onTransfer = useCallback(() => {\n modal.show(TransferSheetId);\n }, []);\n\n return {\n ...assets,\n ...marginRatio,\n onSettlePnL,\n onDeposit,\n onWithdraw,\n showSliderTip,\n setShowSliderTip,\n isMainAccount,\n onTransfer,\n hasSubAccount: subAccounts?.length > 0,\n };\n};\n\nconst useAssets = () => {\n const { hideAssets, setHideAssets } = useTradingLocalStorage();\n const toggleHideAssets = () => {\n setHideAssets(!hideAssets);\n };\n const { totalCollateral, freeCollateral, totalValue, availableBalance } =\n useCollateral({\n dp: 2,\n });\n return {\n hideAssets,\n toggleHideAssets,\n totalCollateral,\n freeCollateral,\n totalValue,\n availableBalance,\n };\n};\n\nconst useMarginRatioAndLeverage = () => {\n const { t } = useTranslation();\n const [{ aggregated, totalUnrealizedROI }, positionsInfo] =\n usePositionStream();\n const { marginRatio, currentLeverage, mmr } = useMarginRatio();\n\n const marginRatioVal = useMemo(() => {\n return Math.min(\n 10,\n aggregated.notional === 0\n ? positionsInfo[\"margin_ratio\"](10)!\n : marginRatio,\n );\n }, [marginRatio, aggregated]);\n\n const { update, curLeverage, maxLeverage, leverageLevers } = useLeverage();\n\n const marks = useMemo<SliderMarks>(() => {\n return leverageLevers?.map((e) => ({\n label: `${e}x`,\n value: e,\n }));\n }, [leverageLevers]);\n\n const [leverage, setLeverage] = useState<number>(curLeverage ?? 0);\n\n const step = 100 / ((marks?.length || 0) - 1);\n\n // const leverageValue = useMemo(() => {\n // const index = leverageLevers.findIndex((item: any) => item === leverage);\n\n // return index * step;\n // }, [leverageLevers, leverage, step]);\n\n const onLeverageChange = (leverage: number) => {\n // maxLeverage / 100 * leverage;\n setLeverage(leverage);\n // updateLeverage(leverage);\n };\n\n const onSave = async (leverage: number) => {\n try {\n update({ leverage }).then(\n () => {\n toast.success(t(\"leverage.updated\"));\n },\n (err: Error) => {\n toast.error(err.message);\n },\n );\n } catch {\n //\n }\n };\n\n const onValueCommit = useCallback((value: number | number[]) => {\n onSave(Array.isArray(value) ? value[0] : value);\n }, []);\n\n const debouncedCommit = useDebouncedCallback(onValueCommit, 500);\n\n const onInputChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n (e) => {\n const parsed = Number.parseInt(e.target.value, 10);\n const raw = Number.isNaN(parsed) ? 0 : parsed;\n const clamped = Math.min(Math.max(raw, 1), maxLeverage);\n setLeverage(clamped);\n debouncedCommit(clamped);\n },\n [debouncedCommit, maxLeverage],\n );\n\n const onLeverageIncrease: React.MouseEventHandler<SVGSVGElement> = () => {\n setLeverage((prev) => {\n onSave(prev + 1);\n return prev + 1;\n });\n };\n\n const onLeverageReduce: React.MouseEventHandler<SVGSVGElement> = () => {\n setLeverage((prev) => {\n onSave(prev - 1);\n return prev - 1;\n });\n };\n\n return {\n aggregated,\n totalUnrealizedROI,\n positionsInfo,\n marginRatio,\n marginRatioVal,\n mmr,\n currentLeverage,\n step,\n marks,\n onLeverageChange,\n onLeverageIncrease,\n onLeverageReduce,\n onInputChange,\n isReduceDisabled: leverage <= 1,\n isIncreaseDisabled: leverage >= maxLeverage,\n onValueCommit,\n value: leverage,\n maxLeverage,\n onSaveLeverage: onSave,\n };\n};\n\nexport function getMarginRatioColor(marginRatio: number, mmr: number | null) {\n if (mmr === null) {\n return { isRed: false, isYellow: false, isGreen: true };\n }\n const imr = mmr * 2;\n\n const high = marginRatio <= imr;\n const mid = marginRatio > imr && marginRatio < 1;\n const low = marginRatio >= 1;\n return { high, mid, low };\n}\n\nexport type PortfolioSheetState = ReturnType<typeof usePortfolioSheetScript>;\n","import { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\n\ninterface RiskIndicatorProps {\n size?: number;\n className?: string;\n}\n\nexport const RiskIndicator: FC<RiskIndicatorProps> = (props) => {\n const { size = 20, className } = props;\n\n return (\n <div\n className=\"oui-flex oui-justify-center oui-items-end\"\n style={{\n background: \"url(/images/riskLevelBg.png)\",\n backgroundSize: \"contain\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center bottom\",\n width: `${size}px`,\n height: `14px`,\n }}\n >\n <div\n className={cn(\n \"oui-relative oui-w-[2px] oui-h-[2px] oui-rounded-full oui-bg-white after:oui-block after:oui-content-[''] after:oui-absolute after:oui-right-0 after:oui-w-[10px] after:oui-h-[2px] after:oui-bg-white/50\",\n className\n // {\n // \"oui-rotate-0\": value > 1,\n // \"oui-rotate-90\": value >= 0.05 && value <= 1,\n // \"oui-rotate-180\": value < 0.05,\n // }\n )}\n ></div>\n </div>\n );\n};\n","import { usePortfolioSheetScript } from \"./portfolioSheet.script\";\nimport { PortfolioSheet } from \"./portfolioSheet.ui\";\n\nexport const PortfolioSheetWidget = () => {\n const state = usePortfolioSheetScript();\n return <PortfolioSheet {...state} />;\n};\n","export {\n useFundingRateModalScript,\n type FundingRateModalState,\n} from \"./fundingRateModal.script\";\nexport { FundingRateModal } from \"./fundingRateModal.ui\";\nexport {\n FundingRateModalWidget,\n FundingRateDialogId,\n FundingRateSheetId,\n} from \"./fundingRateModal.widget\";\n","import { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport type { TradingState } from \"./trading.script\";\nimport { DesktopLayout } from \"./trading.ui.desktop\";\nimport { MobileLayout } from \"./trading.ui.mobile\";\n\nexport const Trading: FC<TradingState> = (props) => {\n const { isMobile } = useScreen();\n\n if (isMobile) {\n return <MobileLayout {...props} />;\n }\n\n return (\n <DesktopLayout\n className=\"oui-h-[calc(100vh_-_48px_-_29px)] oui-bg-base-10\"\n {...props}\n />\n );\n};\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragOverlay,\n DragStartEvent,\n DragEndEvent,\n Modifier,\n type ClientRect,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS, Transform } from \"@dnd-kit/utilities\";\nimport {\n useGetRwaSymbolOpenStatus,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport {\n SideMarketsWidget,\n SymbolInfoBarFullWidget,\n HorizontalMarketsWidget,\n} from \"@orderly.network/markets\";\nimport {\n OrderEntrySortKeys,\n TradingviewFullscreenKey,\n} from \"@orderly.network/types\";\nimport { Box, cn, Flex } from \"@orderly.network/ui\";\nimport { OrderEntryWidget } from \"@orderly.network/ui-order-entry\";\nimport { TradingviewWidget } from \"@orderly.network/ui-tradingview\";\nimport { DepositStatusWidget } from \"@orderly.network/ui-transfer\";\nimport { SortablePanel } from \"../../components/desktop/layout/sortablePanel\";\nimport { SplitLayout } from \"../../components/desktop/layout/splitLayout\";\nimport { showRwaOutsideMarketHoursNotify } from \"../../components/desktop/notify/rwaNotification\";\nimport { useShowRwaCountdown } from \"../../hooks/useShowRwaCountdown\";\nimport {\n dataListInitialHeight,\n getOffsetSizeNum,\n TradingState,\n} from \"./trading.script\";\nimport {\n scrollBarWidth,\n topBarHeight,\n bottomBarHeight,\n space,\n orderEntryMinWidth,\n orderEntryMaxWidth,\n orderbookMinWidth,\n orderbookMaxWidth,\n orderbookMinHeight,\n orderbookMaxHeight,\n tradindviewMinHeight,\n tradingViewMinWidth,\n dataListMaxHeight,\n} from \"./trading.script\";\n\nconst LazyRiskRateWidget = React.lazy(() =>\n import(\"../../components/desktop/riskRate\").then((mod) => {\n return {\n default: mod.RiskRateWidget,\n };\n }),\n);\n\nconst LazyAssetViewWidget = React.lazy(() =>\n import(\"../../components/desktop/assetView\").then((mod) => {\n return {\n default: mod.AssetViewWidget,\n };\n }),\n);\n\nconst LazyDataListWidget = React.lazy(() =>\n import(\"../../components/desktop/dataList\").then((mod) => {\n return {\n default: mod.DataListWidget,\n };\n }),\n);\n\nconst LazySwitchLayout = React.lazy(() =>\n import(\"../../components/desktop/layout/switchLayout\").then((mod) => {\n return {\n default: mod.SwitchLayout,\n };\n }),\n);\n\nconst LazyOrderBookAndTradesWidget = React.lazy(() =>\n import(\"../../components/desktop/orderBookAndTrades\").then((mod) => {\n return {\n default: mod.OrderBookAndTradesWidget,\n };\n }),\n);\n\nexport type DesktopLayoutProps = TradingState & {\n className?: string;\n};\n\nconst scaleModifier: Modifier = ({\n transform,\n draggingNodeRect,\n}: {\n transform: Transform;\n draggingNodeRect: ClientRect | null;\n}) => {\n if (draggingNodeRect) {\n return {\n ...transform,\n scaleX: 2.05,\n scaleY: 2.05,\n };\n }\n return transform;\n};\n\nexport const DesktopLayout: React.FC<DesktopLayoutProps> = (props) => {\n const {\n resizeable,\n panelSize,\n onPanelSizeChange,\n layout,\n onLayout,\n marketLayout,\n onMarketLayout,\n orderBookSplitSize,\n setOrderbookSplitSize,\n dataListSplitSize,\n setDataListSplitSize,\n mainSplitSize,\n setMainSplitSize,\n dataListSplitHeightSM,\n setDataListSplitHeightSM,\n orderBookSplitHeightSM,\n setOrderbookSplitHeightSM,\n max2XL,\n max4XL,\n animating,\n setAnimating,\n updatePositions,\n showPositionIcon,\n horizontalDraggable,\n marketsWidth,\n tradindviewMaxHeight,\n dataListMinHeight,\n } = props;\n\n const { showCountdown, closeCountdown } = useShowRwaCountdown(props.symbol);\n const symbolInfoBarHeight = useMemo(() => {\n return showCountdown ? 104 : 56;\n }, [showCountdown]);\n\n const { isRwa, open } = useGetRwaSymbolOpenStatus(props.symbol);\n\n useEffect(() => {\n if (isRwa && !open) {\n showRwaOutsideMarketHoursNotify();\n }\n }, [isRwa, open, props.symbol]);\n\n const [tradingViewFullScreen] = useLocalStorage(\n TradingviewFullscreenKey,\n false,\n );\n\n const [sortableItems, setSortableItems] = useLocalStorage<string[]>(\n OrderEntrySortKeys,\n [\"margin\", \"assets\", \"orderEntry\"],\n );\n\n const dropAnimationConfig = useMemo(() => {\n return {\n keyframes({\n transform,\n }: {\n transform: {\n initial: Transform;\n final: Transform;\n };\n }) {\n return [\n {\n transform: CSS.Transform.toString({\n ...transform.initial,\n scaleX: 1.05,\n scaleY: 1.05,\n }),\n },\n {\n transform: CSS.Transform.toString({\n ...transform.final,\n scaleX: 1,\n scaleY: 1,\n // scaleX: 0.85,\n // scaleY: 0.85,\n }),\n },\n ];\n },\n sideEffects: ({ active, dragOverlay }) => {\n // console.log(active.node);\n active.node.style.opacity = \"0\";\n const innerElement = dragOverlay.node.querySelector(\".inner-content\");\n if (innerElement) {\n // innerElement.animate(\n // [{ transform: \"scale(1.05)\" }, { transform: \"scale(1)\" }],\n // {\n // duration: 200,\n // easing: \"ease-out\",\n // },\n // );\n innerElement.classList.add(\"oui-animate-shake\");\n }\n return () => {\n active.node.style.opacity = \"\";\n };\n },\n };\n }, []);\n\n // Configure sensors for drag and drop interactions\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n // State for drag overlay management\n const [activeId, setActiveId] = useState<string | null>(null);\n\n /**\n * Handle drag start event for sortable panels\n * Sets the active dragging item for overlay rendering\n */\n function handleDragStart(event: DragStartEvent) {\n setActiveId(event.active.id as string);\n }\n\n /**\n * Handle drag end event for sortable panels\n * Updates the order of sortable items and corresponding positions\n */\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event;\n\n if (active.id !== over?.id && over) {\n const oldIndex = sortableItems.indexOf(active.id as string);\n const newIndex = sortableItems.indexOf(over.id as string);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n // Update sortableItems order\n const newItems = arrayMove(sortableItems, oldIndex, newIndex);\n setSortableItems(newItems as string[]);\n\n // Also update positions to keep them in sync\n // updatePositions(oldIndex, newIndex);\n }\n }\n\n // Reset active id after drag ends\n setActiveId(null);\n }\n\n const minScreenHeight = useMemo(() => {\n return tradingViewFullScreen\n ? 0\n : symbolInfoBarHeight +\n orderbookMaxHeight +\n dataListInitialHeight +\n space * 4;\n }, [tradingViewFullScreen]);\n\n const minScreenHeightSM =\n topBarHeight +\n bottomBarHeight +\n symbolInfoBarHeight +\n tradindviewMinHeight +\n orderbookMinHeight +\n dataListMinHeight +\n space * 4;\n\n const horizontalMarketsView = (\n <HorizontalMarketsWidget\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n maxItems={-1} // show all markets\n dropdownPos={marketLayout === \"bottom\" ? \"top\" : \"bottom\"}\n />\n );\n\n const containerPaddingX = useMemo(() => (max2XL ? 12 : 8), [max2XL]);\n\n const stickyHorizontalMarketsView = (\n <Box\n className={cn(\n \"oui-bg-base-10\",\n // -8 is for reducing the container's padding\n \"oui-sticky oui-z-30 oui-mb-[-8px] oui-py-2\",\n // Split line disabled for > 2xl screens\n !max2XL && \"oui-mt-[-8px]\",\n )}\n style={{\n bottom: 0,\n minWidth:\n (max2XL ? 1024 : 1440) - scrollBarWidth - containerPaddingX * 2,\n }}\n >\n {horizontalMarketsView}\n </Box>\n );\n\n const marketsWidget = (\n <SideMarketsWidget\n resizeable={resizeable}\n panelSize={panelSize}\n onPanelSizeChange={onPanelSizeChange as any}\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n />\n );\n\n const marketsView = (\n <Box\n intensity={900}\n pt={3}\n r=\"2xl\"\n height=\"100%\"\n width={marketsWidth}\n style={{ minWidth: marketsWidth }}\n className=\"oui-transition-all oui-duration-150\"\n onTransitionEnd={() => setAnimating(false)}\n >\n {!animating && marketLayout === \"left\" && marketsWidget}\n </Box>\n );\n\n const symbolInfoBarView = (\n <Box\n intensity={900}\n r=\"2xl\"\n px={3}\n width=\"100%\"\n style={{\n minHeight: symbolInfoBarHeight,\n height: symbolInfoBarHeight,\n }}\n >\n <SymbolInfoBarFullWidget\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n closeCountdown={closeCountdown}\n showCountdown={showCountdown}\n trailing={\n <React.Suspense fallback={null}>\n <LazySwitchLayout\n layout={layout}\n onLayout={onLayout}\n marketLayout={marketLayout}\n onMarketLayout={onMarketLayout}\n />\n </React.Suspense>\n }\n />\n </Box>\n );\n\n const { library_path, ...restTradingViewConfig } = props.tradingViewConfig;\n\n const tradingviewWidget = (\n <TradingviewWidget\n classNames={{\n root: cn(\n tradingViewFullScreen\n ? \"!oui-absolute oui-top-0 oui-left-0 oui-right-0 oui-bottom-0 oui-z-[40] oui-bg-base-10\"\n : \"oui-z-1\",\n ),\n content: cn(\n tradingViewFullScreen\n ? \"oui-top-3 oui-bottom-3 oui-left-3 oui-right-3 oui-bg-base-9 oui-rounded-[16px] oui-overflow-hidden\"\n : \"\",\n ),\n }}\n symbol={props.symbol}\n {...restTradingViewConfig}\n libraryPath={library_path}\n />\n );\n\n const tradingView = (\n <Box\n width=\"100%\"\n height=\"100%\"\n intensity={900}\n r=\"2xl\"\n style={{ flex: 1, minWidth: tradingViewMinWidth }}\n className=\"oui-overflow-hidden\"\n >\n {tradingviewWidget}\n </Box>\n );\n\n const orderbookWidget = (\n <React.Suspense fallback={null}>\n <LazyOrderBookAndTradesWidget symbol={props.symbol} />\n </React.Suspense>\n );\n\n const orderbookView = (\n <Box\n r=\"2xl\"\n height=\"100%\"\n style={{\n minWidth: orderbookMinWidth,\n maxWidth: horizontalDraggable ? orderbookMaxWidth : orderbookMinWidth,\n width: orderBookSplitSize,\n }}\n className=\"oui-overflow-hidden\"\n >\n {orderbookWidget}\n </Box>\n );\n\n const dataListWidget = (\n <React.Suspense fallback={null}>\n <LazyDataListWidget\n current={undefined}\n symbol={props.symbol}\n sharePnLConfig={props.sharePnLConfig}\n />\n </React.Suspense>\n );\n\n const dataListView = (\n <Box\n intensity={900}\n r=\"2xl\"\n p={2}\n style={{\n height: dataListSplitSize,\n // height: `calc(100% - ${symbolInfoBarHeight}px - ${orderbookMaxHeight}px - ${space}px)`,\n minHeight: dataListInitialHeight,\n // minHeight: `max(${dataListMinHeight}px, calc(100vh - ${symbolInfoBarHeight}px - ${orderbookMaxHeight}px - ${space}px))`,\n }}\n className=\"oui-overflow-hidden\"\n >\n {dataListWidget}\n </Box>\n );\n\n const orderInteractionWidgets = useMemo(() => {\n return {\n margin: {\n className: \"\",\n element: (\n <React.Suspense fallback={null}>\n <LazyRiskRateWidget />\n </React.Suspense>\n ),\n },\n assets: {\n className: \"oui-border oui-border-line-12\",\n element: (\n <>\n <React.Suspense fallback={null}>\n <LazyAssetViewWidget\n isFirstTimeDeposit={props.isFirstTimeDeposit}\n />\n </React.Suspense>\n <DepositStatusWidget\n className=\"oui-mt-3 oui-gap-y-2\"\n onClick={props.navigateToPortfolio}\n />\n </>\n ),\n },\n orderEntry: {\n className: \"\",\n element: (\n <OrderEntryWidget\n symbol={props.symbol}\n disableFeatures={\n props.disableFeatures as unknown as (\n | \"slippageSetting\"\n | \"feesInfo\"\n )[]\n }\n />\n ),\n },\n };\n }, [\n props.isFirstTimeDeposit,\n props.disableFeatures,\n props.navigateToPortfolio,\n props.symbol,\n ]);\n\n const orderEntryView = (\n <Flex\n gapY={2}\n direction=\"column\"\n height=\"100%\"\n style={{\n minWidth: orderEntryMinWidth,\n maxWidth: horizontalDraggable ? orderEntryMaxWidth : orderEntryMinWidth,\n width: mainSplitSize,\n }}\n >\n {sortableItems.map((key: string) => {\n return (\n <SortablePanel\n key={key}\n id={key}\n showIndicator={showPositionIcon}\n className={\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].className\n }\n >\n {\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n );\n })}\n </Flex>\n );\n\n const renderTradingView = () => {\n if (max4XL && layout === \"right\") {\n return (\n <Flex\n gap={2}\n className=\"oui-flex-1 oui-overflow-hidden\"\n style={{ minWidth: marketsWidth + tradingViewMinWidth + space }}\n >\n {marketLayout === \"left\" && marketsView}\n {tradingView}\n </Flex>\n );\n }\n\n return tradingView;\n };\n\n const tradingViewAndOrderbookView = (\n <SplitLayout\n style={{\n // the style width is not set, and a child node style needs to be set to flex: 1 to adapt\n flex: 1,\n minHeight: orderbookMinHeight,\n // maxHeight: orderbookMaxHeight,\n }}\n onSizeChange={setOrderbookSplitSize}\n disable={!horizontalDraggable}\n >\n {renderTradingView()}\n {orderbookView}\n </SplitLayout>\n );\n\n const renderTradingViewAndOrderbookView = () => {\n if (max4XL && layout === \"left\") {\n return (\n <Flex gapX={2} style={{ minHeight: orderbookMinHeight }} height=\"100%\">\n {tradingViewAndOrderbookView}\n {marketLayout === \"left\" && marketsView}\n </Flex>\n );\n }\n return tradingViewAndOrderbookView;\n };\n\n const mainView = (\n <Flex\n direction=\"column\"\n className=\"oui-flex-1 oui-overflow-hidden\"\n gap={2}\n style={{\n minWidth: max4XL\n ? marketsWidth + tradingViewMinWidth + orderbookMinWidth + space * 2\n : tradingViewMinWidth + orderbookMinWidth + space,\n }}\n >\n {symbolInfoBarView}\n <SplitLayout\n style={{\n // height: orderbookMaxHeight + dataListInitialHeight + space,\n maxHeight: `calc(100% - ${symbolInfoBarHeight}px - ${space}px)`,\n }}\n className=\"oui-w-full\"\n mode=\"vertical\"\n onSizeChange={setDataListSplitSize}\n >\n {renderTradingViewAndOrderbookView()}\n {dataListView}\n </SplitLayout>\n </Flex>\n );\n\n const onSizeChange = (width: string) =>\n layout === \"left\"\n ? setMainSplitSize(getOffsetSizeNum(width))\n : setMainSplitSize(width);\n\n if (max2XL) {\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n items={sortableItems}\n strategy={verticalListSortingStrategy}\n >\n <Box height=\"100%\">\n {marketLayout === \"top\" && (\n <Box\n className={cn(\"oui-mt-2 oui-max-h-8 oui-px-3\", props.className)}\n >\n {horizontalMarketsView}\n </Box>\n )}\n\n <SplitLayout\n ref={props.max2XLSplitRef}\n style={{\n minHeight: minScreenHeightSM,\n minWidth: 1024 - scrollBarWidth,\n // height: props.extraHeight ? props.extraHeight : undefined,\n }}\n className={cn(\n \"oui-flex oui-flex-1\",\n \"oui-size-full oui-min-w-[1018px]\",\n \"oui-px-3 oui-py-2\",\n props.className,\n )}\n onSizeChange={setDataListSplitHeightSM}\n onDragging={props.onDataListSplitHeightDragging}\n mode=\"vertical\"\n >\n <Flex\n gapX={2}\n itemAlign=\"stretch\"\n className={cn(\n \"oui-flex-1\",\n layout === \"left\" && \"oui-flex-row-reverse\",\n )}\n style={{\n minHeight: Math.max(\n symbolInfoBarHeight +\n tradindviewMinHeight +\n orderbookMinHeight +\n space * 2,\n props.orderEntryHeight,\n ),\n maxHeight:\n symbolInfoBarHeight +\n tradindviewMaxHeight +\n orderbookMaxHeight +\n space * 2,\n }}\n >\n <Flex\n height=\"100%\"\n className=\"oui-w-[calc(100%_-_280px_-_12px)] oui-flex-1\"\n direction=\"column\"\n gapY={2}\n >\n {symbolInfoBarView}\n <Flex\n width=\"100%\"\n height=\"100%\"\n gapX={2}\n itemAlign=\"stretch\"\n style={{\n minHeight:\n tradindviewMinHeight + orderbookMinHeight + space,\n maxHeight:\n tradindviewMaxHeight + orderbookMaxHeight + space,\n }}\n className={cn(\n \"oui-flex-1\",\n layout === \"left\" && \"oui-flex-row-reverse\",\n )}\n >\n {marketLayout === \"left\" && (\n <Box\n intensity={900}\n pt={3}\n r=\"2xl\"\n width={marketsWidth}\n style={{\n minHeight:\n tradindviewMinHeight + orderbookMinHeight + space,\n maxHeight:\n tradindviewMaxHeight + orderbookMaxHeight + space,\n }}\n >\n {marketsWidget}\n </Box>\n )}\n <SplitLayout\n ref={props.tradingviewAndOrderbookSplitRef}\n mode=\"vertical\"\n style={{ width: `calc(100% - ${marketsWidth}px)` }}\n className=\"oui-flex-1\"\n onSizeChange={setOrderbookSplitHeightSM}\n onDragging={props.onTradingviewAndOrderbookDragging}\n >\n <Box\n width=\"100%\"\n intensity={900}\n r=\"2xl\"\n style={{\n minHeight: tradindviewMinHeight,\n maxHeight: tradindviewMaxHeight,\n height: 1200,\n }}\n >\n {tradingviewWidget}\n </Box>\n\n <Box\n r=\"2xl\"\n height=\"100%\"\n width=\"100%\"\n style={{\n minHeight: orderbookMinHeight,\n maxHeight: orderbookMaxHeight,\n height: orderBookSplitHeightSM,\n }}\n className=\"oui-flex-1\"\n >\n {orderbookWidget}\n </Box>\n </SplitLayout>\n </Flex>\n </Flex>\n <Flex\n ref={props.orderEntryViewRef}\n id=\"orderEntryView\"\n gapY={3}\n direction=\"column\"\n className=\"oui-relative\"\n style={{\n width: orderEntryMinWidth,\n // force order entry render actual content height\n height: \"max-content\",\n // height:\n // props.extraHeight && props.extraHeight > 100\n // ? undefined\n // : \"max-content\",\n }}\n >\n <Flex\n gapY={2}\n direction=\"column\"\n height=\"100%\"\n style={{\n minWidth: orderEntryMinWidth,\n maxWidth: horizontalDraggable\n ? orderEntryMaxWidth\n : orderEntryMinWidth,\n width: mainSplitSize,\n }}\n >\n {sortableItems.map((key: string) => {\n return (\n <SortablePanel\n key={key}\n id={key}\n showIndicator={showPositionIcon}\n className={\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].className\n }\n >\n {\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n );\n })}\n </Flex>\n <Box height={props.extraHeight} />\n </Flex>\n </Flex>\n\n <Box\n intensity={900}\n r=\"2xl\"\n p={2}\n style={{\n height: dataListSplitHeightSM,\n minHeight: Math.max(dataListMinHeight, props.dataListHeight),\n maxHeight: dataListMaxHeight,\n }}\n className=\"oui-overflow-hidden\"\n >\n {dataListWidget}\n </Box>\n\n {marketLayout === \"bottom\" && stickyHorizontalMarketsView}\n </SplitLayout>\n </Box>\n </SortableContext>\n <DragOverlay dropAnimation={dropAnimationConfig}>\n {activeId ? (\n <SortablePanel\n id={activeId}\n showIndicator={showPositionIcon}\n dragOverlay\n className={`${\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].className\n } oui-shadow-lg oui-shadow-base-9`}\n >\n {\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n items={sortableItems}\n strategy={verticalListSortingStrategy}\n >\n <Flex\n style={{\n minHeight: minScreenHeight,\n minWidth: 1440 - scrollBarWidth,\n }}\n className={cn(\n props.className,\n \"oui-justify-start\",\n tradingViewFullScreen &&\n \"oui-relative oui-h-[calc(100vh-80px)] oui-w-screen oui-overflow-hidden !oui-p-0\",\n )}\n width=\"100%\"\n p={2}\n gap={2}\n itemAlign=\"stretch\"\n direction=\"column\"\n >\n {/* Horizontal Markets View on top for !=2xl screens */}\n {marketLayout === \"top\" && horizontalMarketsView}\n\n {/* Main Content Group */}\n <Flex\n className={cn(\n \"oui-flex-1 oui-overflow-hidden\",\n layout === \"left\" && \"oui-flex-row-reverse\",\n )}\n gap={2}\n >\n {!max4XL && marketLayout === \"left\" && marketsView}\n <SplitLayout\n className={cn(\"oui-flex oui-flex-1 oui-overflow-hidden\")}\n onSizeChange={onSizeChange}\n disable={!horizontalDraggable}\n >\n {layout === \"left\" && orderEntryView}\n {mainView}\n {layout === \"right\" && orderEntryView}\n </SplitLayout>\n </Flex>\n\n {marketLayout === \"bottom\" && stickyHorizontalMarketsView}\n </Flex>\n </SortableContext>\n <DragOverlay\n dropAnimation={dropAnimationConfig}\n\n // style={{\n // transform: \"scale(1.05)\",\n // }}\n // transition=\"transform 200ms ease\"\n // className=\"oui-animate-pop\"\n >\n {activeId ? (\n <SortablePanel\n id={activeId}\n showIndicator={showPositionIcon}\n dragOverlay\n className={`${\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].className\n } oui-shadow-lg oui-shadow-base-9`}\n >\n {\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n};\n","import React, { type FC, PropsWithChildren, SVGProps } from \"react\";\nimport { useRef, useEffect } from \"react\";\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Box, cn } from \"@orderly.network/ui\";\n\ntype SortablePanelProps = {\n id: string;\n className?: string;\n showIndicator: boolean;\n dragOverlay?: boolean;\n};\n\nexport const SortablePanel: FC<PropsWithChildren<SortablePanelProps>> = (\n props,\n) => {\n const { showIndicator, dragOverlay } = props;\n const nodeRef = useRef<HTMLDivElement>(null);\n const [dimensions, setDimensions] = React.useState<{\n width: number;\n height: number;\n } | null>(null);\n\n // useSortable hook with custom configuration to prevent dimension changes\n const sortableResult = useSortable({\n id: props.id,\n });\n\n const {\n setNodeRef,\n attributes,\n listeners,\n transform,\n transition,\n isDragging,\n setActivatorNodeRef,\n } = sortableResult;\n\n // Store original dimensions when dragging starts\n useEffect(() => {\n if (isDragging && nodeRef.current && !dimensions) {\n const rect = nodeRef.current.getBoundingClientRect();\n // Store dimensions for placeholder\n setDimensions({\n width: rect.width,\n height: rect.height,\n });\n } else if (!isDragging && dimensions) {\n // Reset dimensions when dragging ends\n setDimensions(null);\n }\n }, [isDragging, dimensions]);\n\n // Combine refs to use both sortable ref and our dimension ref\n const combinedRef = (node: HTMLDivElement | null) => {\n setNodeRef(node);\n // Use a callback ref to properly set the node reference\n (nodeRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n // Ensure the item maintains its box model during drag\n // boxSizing: \"border-box\" as const,\n };\n\n // When dragging, render a placeholder with fixed dimensions\n if (isDragging && dimensions && !dragOverlay) {\n return (\n <Box\n intensity={900}\n r=\"2xl\"\n p={3}\n className={cn(\"oui-relative\")}\n // ref={combinedRef}\n style={{\n ...style,\n width: dimensions.width,\n height: dimensions.height,\n minWidth: dimensions.width,\n minHeight: dimensions.height,\n maxWidth: dimensions.width,\n maxHeight: dimensions.height,\n // Placeholder styling with subtle visual feedback\n border: \"1px solid rgb(var(--oui-color-primary))\",\n backgroundImage: `repeating-linear-gradient(135deg, rgb(var(--oui-color-base-6)) 0px, rgb(var(--oui-color-base-6)) 4px, transparent 4px, transparent 8px)`,\n }}\n ></Box>\n );\n }\n\n return (\n <Box\n intensity={900}\n r=\"2xl\"\n p={3}\n width=\"100%\"\n className={cn(\n \"oui-relative\",\n props.className,\n // dragOverlay && \"oui-scale-105\",\n )}\n ref={combinedRef}\n style={style}\n >\n <div\n className={cn(\n \"inner-content oui-transition-transform\",\n dragOverlay && \"oui-scale-95\",\n )}\n >\n {props.children}\n </div>\n {showIndicator && (\n <button\n {...attributes}\n {...listeners}\n className=\"oui-absolute oui-right-0 oui-top-4 oui-cursor-move oui-py-1\"\n style={{ touchAction: \"none\" }}\n ref={setActivatorNodeRef}\n >\n <IndicatorIcon\n className={cn(\n \"oui-text-base-contrast-20 hover:oui-text-base-contrast-80\",\n )}\n />\n </button>\n )}\n </Box>\n );\n};\n\nconst IndicatorIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"10\"\n height=\"16\"\n viewBox=\"0 0 10 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"6\" height=\"2\" rx=\"1\" />\n <rect x=\"2\" y=\"7\" width=\"6\" height=\"2\" rx=\"1\" />\n <rect x=\"2\" y=\"12\" width=\"6\" height=\"2\" rx=\"1\" />\n </svg>\n);\n","import { useEffect } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n toast,\n Flex,\n CloseIcon,\n ExclamationFillIcon,\n Text,\n useScreen,\n} from \"@orderly.network/ui\";\n\nconst toastId = \"rwaOutsideMarketHoursNotify\";\n\nconst RwaOutsideMarketHoursNotify = () => {\n const { t } = useTranslation();\n\n const closeNotify = () => {\n toast.remove(toastId);\n };\n\n const { isMobile } = useScreen();\n useEffect(() => {\n if (isMobile) {\n setTimeout(() => {\n toast.dismiss(toastId);\n }, 3000);\n }\n }, [isMobile]);\n\n return (\n <Flex r=\"lg\" className=\"oui-bg-base-6 oui-relative oui-max-w-[348px]\">\n <Flex\n direction=\"column\"\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-bg-warning-darken oui-px-[5px] oui-h-full oui-rounded-tl-[10px] oui-rounded-bl-[10px]\"\n >\n <ExclamationFillIcon\n opacity={1}\n className=\"oui-text-base-6\"\n size={18}\n />\n </Flex>\n <Flex p={4} mr={1}>\n <Text size=\"sm\" intensity={80} weight=\"semibold\">\n {t(\"trading.rwa.outsideMarketHours.notify\")}\n </Text>\n </Flex>\n\n <button\n className=\"oui-w-6 oui-h-6 oui-right-0 oui-top-0 oui-absolute oui-bg-base-8 oui-rounded-tr-[10px] oui-rounded-bl-[10px] oui-inline-flex oui-justify-center oui-items-center oui-gap-2.5 oui-cursor-pointer\"\n onClick={closeNotify}\n >\n <CloseIcon opacity={1} className=\"oui-text-base-contrast\" size={16} />\n </button>\n </Flex>\n );\n};\n\nconst showRwaOutsideMarketHoursNotify = () => {\n toast.custom(<RwaOutsideMarketHoursNotify />, {\n id: toastId,\n duration: 3000,\n });\n};\n\nRwaOutsideMarketHoursNotify.displayName = \"RwaOutsideMarketHoursNotify\";\nexport { RwaOutsideMarketHoursNotify, showRwaOutsideMarketHoursNotify };\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useGetRwaSymbolCloseTimeInterval } from \"@orderly.network/hooks\";\n\nexport const useShowRwaCountdown = (symbol: string) => {\n const [showCountdown, setShowCountdown] = useState<boolean | undefined>(\n undefined,\n );\n\n const [manulClose, setManulClose] = useState<boolean>(false);\n\n const { isRwa, open, closeTimeInterval } =\n useGetRwaSymbolCloseTimeInterval(symbol);\n useEffect(() => {\n if (manulClose) {\n return;\n }\n setShowCountdown(isRwa && open && !!closeTimeInterval);\n }, [isRwa, open, closeTimeInterval, manulClose]);\n\n useEffect(() => {\n return () => {\n setShowCountdown(undefined);\n setManulClose(false);\n };\n }, [symbol]);\n\n const closeCountdown = () => {\n setShowCountdown(false);\n setManulClose(true);\n };\n\n return useMemo(() => {\n return {\n showCountdown,\n closeCountdown,\n };\n }, [showCountdown, closeCountdown]);\n};\n","import { RefObject, useEffect, useMemo, useRef, useState } from \"react\";\nimport Split from \"@uiw/react-split\";\nimport {\n useAccount,\n useCollateral,\n useLocalStorage,\n useMediaQuery,\n} 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 { modal } from \"@orderly.network/ui\";\nimport type { LayoutPosition } from \"../../components/desktop/layout/switchLayout\";\nimport { useSplitPersistent } from \"../../components/desktop/layout/useSplitPersistent\";\nimport { PortfolioSheetWidget } from \"../../components/mobile/portfolioSheet\";\nimport { useTradingLocalStorage } from \"../../hooks/\";\nimport { useTradingPageContext } from \"../../provider/tradingPageContext\";\nimport { TradingPageState } from \"../../types/types\";\nimport { useFirstTimeDeposit } from \"./hooks/useFirstTimeDeposit\";\n\nexport type TradingState = ReturnType<typeof useTradingScript>;\n\nexport const scrollBarWidth = 6;\nexport const topBarHeight = 48;\nexport const bottomBarHeight = 29;\nexport const space = 8;\nexport const symbolInfoBarHeight = 54;\n\nexport const orderEntryMinWidth = 280;\nexport const orderEntryMaxWidth = 360;\n\nexport const orderbookMinWidth = 280;\nexport const orderbookMaxWidth = 732;\n\nexport const orderbookMinHeight = 464;\nexport const orderbookMaxHeight = 728;\n\nexport const tradindviewMinHeight = 320;\n\nexport const tradingViewMinWidth = 540;\n\nexport const dataListMaxHeight = 800;\nexport const dataListInitialHeight = 350;\n\nconst ORDERLY_ORDER_ENTRY_SIDE_MARKETS_LAYOUT =\n \"orderly_order_entry_side_markets_layout\";\n\nconst ORDERLY_SIDE_MARKETS_MODE_KEY = \"orderly_side_markets_mode\";\n\nconst ORDERLY_HORIZONTAL_MARKETS_LAYOUT = \"orderly_horizontal_markets_layout\";\n\nexport type MarketLayoutPosition = \"left\" | \"top\" | \"bottom\" | \"hide\";\n\nexport const useTradingScript = () => {\n const [openMarketsSheet, setOpenMarketsSheet] = useState(false);\n const props = useTradingPageContext();\n const { state } = useAccount();\n const { t } = useTranslation();\n const { wrongNetwork, disabledConnect, restrictedInfo, onRouteChange } =\n useAppContext();\n const { hideAssets, setHideAssets } = useTradingLocalStorage();\n\n const isFirstTimeDeposit = useFirstTimeDeposit();\n\n const { totalValue } = useCollateral();\n\n const total = useDataTap(totalValue);\n\n /** max-width: 1279px */\n const max2XL = useMediaQuery(\"(max-width: 1279px)\");\n\n /** min-width: 1440px */\n const min3XL = useMediaQuery(\"(min-width: 1440px)\");\n\n /** max-width: 1680px */\n const max4XL = useMediaQuery(\"(max-width: 1680px)\");\n\n // Order entry and side market list position, default Order entry in right\n const [layout, setLayout] = useLocalStorage<LayoutPosition>(\n ORDERLY_ORDER_ENTRY_SIDE_MARKETS_LAYOUT,\n \"right\",\n );\n\n // Horizontal markets layout position, default left\n const [marketLayout, setMarketLayout] = useLocalStorage<MarketLayoutPosition>(\n ORDERLY_HORIZONTAL_MARKETS_LAYOUT,\n \"left\",\n );\n\n const canTrade = useMemo<boolean>(() => {\n return (\n !wrongNetwork &&\n !disabledConnect &&\n (state.status >= AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected)\n );\n }, [state.status, wrongNetwork, disabledConnect]);\n\n const onShowPortfolioSheet = () => {\n if (canTrade) {\n modal.sheet({\n title: t(\"trading.asset&Margin\"),\n leading: props.bottomSheetLeading,\n content: <PortfolioSheetWidget />,\n });\n }\n };\n\n const horizontalDraggable = useMemo(() => min3XL, [min3XL]);\n\n const positionsState = useOrderEntryPositions({\n canTrade,\n isFirstTimeDeposit,\n });\n\n const marketsCollapseState = useMarketsCollapse({ resizeable: min3XL });\n\n const observerState = useObserverOrderEntry({ max2XL });\n\n const marketsWidth = useMemo(() => {\n switch (marketsCollapseState.panelSize) {\n case \"small\":\n return 0;\n case \"middle\":\n return 70;\n case \"large\":\n return 280;\n default:\n return 0;\n }\n }, [marketsCollapseState.panelSize]);\n\n const tradindviewMaxHeight = max2XL ? 1200 : 600;\n\n const dataListMinHeight = canTrade ? 379 : 277;\n\n const splitSizeState = useSplitSize({ dep: layout });\n\n const tradingViewHeightState = useExtraHeight({\n orderEntryViewRef: observerState.orderEntryViewRef,\n tradindviewMaxHeight,\n dataListMinHeight,\n });\n\n const navigateToPortfolio =\n typeof onRouteChange === \"function\"\n ? () => onRouteChange({ href: \"/portfolio\", name: t(\"common.portfolio\") })\n : undefined;\n\n const map = {\n layout,\n onLayout: setLayout,\n marketLayout,\n onMarketLayout: setMarketLayout,\n max2XL,\n min3XL,\n max4XL,\n canTrade,\n openMarketsSheet,\n onOpenMarketsSheetChange: setOpenMarketsSheet,\n horizontalDraggable,\n ...marketsCollapseState,\n ...positionsState,\n ...splitSizeState,\n ...observerState,\n restrictedInfo,\n ...tradingViewHeightState,\n marketsWidth,\n tradindviewMaxHeight,\n dataListMinHeight,\n total,\n hideAssets,\n setHideAssets,\n onShowPortfolioSheet,\n navigateToPortfolio,\n isFirstTimeDeposit,\n symbolInfoBarHeight,\n };\n\n return { ...props, ...map } as TradingPageState & typeof map;\n};\n\nconst useMarketsCollapse = (options: { resizeable: boolean }) => {\n const { resizeable } = options;\n const [animating, setAnimating] = useState(false);\n\n const [panelSize, setPanelSize] = useLocalStorage<\n \"small\" | \"middle\" | \"large\"\n >(ORDERLY_SIDE_MARKETS_MODE_KEY, \"large\");\n\n const onPanelSizeChange = (collapsed: \"small\" | \"middle\" | \"large\") => {\n setPanelSize(collapsed);\n setAnimating(true);\n };\n\n const memoizedPanelSize = useMemo<\"small\" | \"middle\" | \"large\">(() => {\n // Force only two states\n const normalized = panelSize === \"large\" ? \"large\" : \"middle\";\n // under 1440px markets force collapsed\n return resizeable ? normalized : \"middle\";\n }, [resizeable, panelSize]);\n\n return {\n resizeable: resizeable,\n panelSize: memoizedPanelSize,\n onPanelSizeChange: onPanelSizeChange,\n animating: animating,\n setAnimating: setAnimating,\n } as const;\n};\n\nconst useOrderEntryPositions = (options: {\n canTrade: boolean;\n isFirstTimeDeposit: boolean;\n}) => {\n const { canTrade, isFirstTimeDeposit } = options;\n\n const [positions, setPositions] = useLocalStorage(\n \"orderly_assets_orderEntry_margin_positions\",\n [0, 1, 2],\n );\n\n const updatePositions = (currentIdx: number, targetIdx: number) => {\n const pos = [...positions];\n // [0,1,2] => [1,2,0]\n if (currentIdx === 0 && targetIdx === pos.length - 1) {\n pos[targetIdx] = positions[currentIdx];\n for (let i = 0; i < pos.length - 1; i++) {\n pos[i] = positions[i + 1];\n }\n\n // [0,1,2] => [2,0,1]\n } else if (currentIdx === pos.length - 1 && targetIdx === 0) {\n pos[targetIdx] = positions[currentIdx];\n for (let i = 1; i < pos.length; i++) {\n pos[i] = positions[i - 1];\n }\n } else {\n // [0,1,2] => [1,0,2], [0,1,2] => [0,2,1]\n [pos[currentIdx], pos[targetIdx]] = [pos[targetIdx], pos[currentIdx]];\n }\n setPositions(pos);\n };\n\n const showPositionIcon = useMemo(\n () => canTrade && !isFirstTimeDeposit,\n [canTrade, isFirstTimeDeposit],\n );\n\n const pos = useMemo(() => {\n return showPositionIcon ? (positions as number[]) : [0, 1, 2];\n }, [showPositionIcon, positions]);\n\n return {\n positions: pos,\n showPositionIcon,\n updatePositions,\n };\n};\n\nconst useSplitSize = (options: { dep: any }) => {\n const { dep } = options;\n const [mainSplitSize, setMainSplitSize] = useSplitPersistent(\n \"orderly_main_split_size\",\n `${orderEntryMinWidth}px`,\n dep,\n );\n const [dataListSplitSize, setDataListSplitSize] = useSplitPersistent(\n \"orderly_datalist_split_size\",\n `${dataListInitialHeight}px`,\n // undefined,\n );\n const [orderBookSplitSize, setOrderbookSplitSize] = useSplitPersistent(\n \"orderly_orderbook_split_size\",\n \"280px\",\n dep,\n );\n\n const [dataListSplitHeightSM, setDataListSplitHeightSM] = useSplitPersistent(\n \"orderly_datalist_split_height_sm\",\n \"350px\",\n );\n\n const [orderBookSplitHeightSM, setOrderbookSplitHeightSM] =\n useSplitPersistent(\"orderly_orderbook_split_height_sm\", \"280px\");\n\n return {\n orderBookSplitSize,\n setOrderbookSplitSize,\n dataListSplitSize,\n setDataListSplitSize,\n mainSplitSize,\n setMainSplitSize,\n dataListSplitHeightSM,\n setDataListSplitHeightSM,\n orderBookSplitHeightSM,\n setOrderbookSplitHeightSM,\n };\n};\n\nconst useObserverOrderEntry = (options: { max2XL: boolean }) => {\n const { max2XL } = options;\n const [orderEntryHeight, setOrderEntryHeight] = useState(0);\n const orderEntryViewRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = orderEntryViewRef.current;\n\n if (!element || !max2XL) {\n return;\n }\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const height = entry.contentRect.height;\n if (height) {\n setOrderEntryHeight(height);\n }\n }\n });\n\n resizeObserver.observe(element);\n\n return () => {\n resizeObserver.unobserve(element);\n };\n }, [orderEntryViewRef, max2XL]);\n\n return {\n orderEntryViewRef,\n orderEntryHeight,\n };\n};\n\nexport function getOffsetSizeNum(size: string | null) {\n if (size) {\n return `${100 - Math.min(Number(size), 100)}`;\n }\n return \"\";\n}\n\nfunction useExtraHeight(options: {\n orderEntryViewRef: RefObject<HTMLDivElement>;\n tradindviewMaxHeight: number;\n dataListMinHeight: number;\n}) {\n const { tradindviewMaxHeight, dataListMinHeight } = options;\n const tradingviewAndOrderbookSplitRef = useRef<Split>(null);\n const max2XLSplitRef = useRef<Split>(null);\n\n const [extraHeight, setExtraHeight] = useLocalStorage(\n \"orderly_order_entry_extra_height\",\n 0,\n );\n\n const space = 10 + 12;\n\n const [dataListHeight, setDataListHeight] = useLocalStorage(\n \"orderly_trading_data_list_height\",\n dataListMinHeight,\n );\n\n const onTradingviewAndOrderbookDragging = (\n preSize: number,\n nextSize: number,\n ) => {\n const boxHeight = tradingviewAndOrderbookSplitRef?.current?.boxHeight;\n if (!boxHeight) {\n return;\n }\n\n const splitTradingviewHeight = (boxHeight * preSize) / 100;\n const splitOrderbookHeight = (boxHeight * nextSize) / 100;\n\n const tradingviewHeight = Math.min(\n Math.max(splitTradingviewHeight, tradindviewMinHeight),\n tradindviewMaxHeight,\n );\n\n const orderbookHeight = Math.min(\n Math.max(splitOrderbookHeight, orderbookMinHeight),\n orderbookMaxHeight,\n );\n\n const orderEntryHeight =\n options.orderEntryViewRef.current?.clientHeight || 0;\n\n // console.log(\"tradingviewHeight\", splitTradingviewHeight, tradingviewHeight);\n // console.log(\"orderbookHeight\", splitOrderbookHeight, orderbookHeight);\n\n if (splitOrderbookHeight >= orderbookHeight) {\n const offset = splitOrderbookHeight - orderbookHeight;\n // console.log(\"offset ---\", offset);\n setExtraHeight(Math.max(0, extraHeight - offset));\n } else if (\n tradingviewHeight + orderbookHeight <\n tradindviewMaxHeight + orderbookMaxHeight\n ) {\n const height =\n tradingviewHeight + orderbookHeight + space + symbolInfoBarHeight;\n\n const offset = Math.max(0, height - orderEntryHeight);\n // console.log(\"offset ++++\", height, offset);\n setExtraHeight(extraHeight + offset);\n }\n };\n\n const onDataListSplitHeightDragging = (preSize: number, nextSize: number) => {\n const boxHeight = max2XLSplitRef?.current?.boxHeight;\n if (!boxHeight) {\n return;\n }\n\n // const splitTradingAndOrderbookHeight = (boxHeight * preSize) / 100;\n const splitDataListHeight = (boxHeight * nextSize) / 100;\n\n if (\n splitDataListHeight >= dataListMinHeight &&\n splitDataListHeight <= dataListMaxHeight\n ) {\n setDataListHeight(splitDataListHeight);\n const offset = splitDataListHeight - dataListHeight;\n if (offset > 0) {\n setExtraHeight(Math.max(0, extraHeight - offset));\n }\n }\n };\n\n return {\n max2XLSplitRef,\n tradingviewAndOrderbookSplitRef,\n onTradingviewAndOrderbookDragging,\n onDataListSplitHeightDragging,\n extraHeight,\n dataListHeight,\n };\n}\n","import { useMemo } from \"react\";\n\nexport const useSplitPersistent = (\n key: string,\n defaulValue?: string,\n dep?: any\n): [string | undefined, (size: string) => void] => {\n const size = useMemo(() => {\n const size = localStorage.getItem(key);\n\n if (size) {\n return `${size}%`;\n }\n return defaulValue;\n }, [key, defaulValue, dep]);\n\n const setSize = (size: string) => {\n localStorage.setItem(key, size);\n };\n\n return [size, setSize];\n};\n","import { useMemo } from \"react\";\nimport {\n useAccount,\n useAssetsHistory,\n useCollateral,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n AssetHistorySideEnum,\n AssetHistoryStatusEnum,\n} from \"@orderly.network/types\";\n\nexport const useFirstTimeDeposit = () => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { totalValue } = useCollateral({\n dp: 2,\n });\n\n const unavailable =\n wrongNetwork ||\n disabledConnect ||\n (state.status < AccountStatusEnum.EnableTrading &&\n state.status !== AccountStatusEnum.EnableTradingWithoutConnected);\n\n const { startTime, endTime } = useMemo(() => {\n const d = new Date();\n // must set last second of today, when wallet ws changed, it will get latest data from api\n const today = new Date(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n 23,\n 59,\n 59,\n );\n\n const endTime = today.getTime();\n // 90 days ago timestamp\n const startTime = endTime - 90 * 24 * 60 * 60 * 1000;\n\n return {\n startTime,\n endTime,\n };\n }, []);\n\n const [_, { meta }] = useAssetsHistory(\n {\n startTime,\n endTime,\n page: 1,\n pageSize: 5,\n side: AssetHistorySideEnum.DEPOSIT,\n status: AssetHistoryStatusEnum.COMPLETED,\n },\n {\n shouldUpdateOnWalletChanged: (data) =>\n data.side === AssetHistorySideEnum.DEPOSIT &&\n data.transStatus === AssetHistoryStatusEnum.COMPLETED,\n },\n );\n\n return !unavailable && totalValue === 0 && meta?.total === 0;\n};\n","import React, { useEffect, useMemo } from \"react\";\nimport { useGetRwaSymbolInfo } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n MarketsSheetWidget,\n SymbolInfoBarWidget,\n} from \"@orderly.network/markets\";\nimport {\n Box,\n SimpleSheet,\n EyeCloseIcon,\n EyeIcon,\n Flex,\n Text,\n NewsFillIcon,\n} from \"@orderly.network/ui\";\nimport { Countdown } from \"../../components/base/countdown\";\nimport { showRwaOutsideMarketHoursNotify } from \"../../components/desktop/notify/rwaNotification\";\nimport type { TradingState } from \"./trading.script\";\n\nconst LazyTopTabWidget = React.lazy(() =>\n import(\"../../components/mobile/topTab\").then((mod) => {\n return { default: mod.TopTabWidget };\n }),\n);\n\nconst LazyOrderBookAndEntryWidget = React.lazy(() =>\n import(\"../../components/mobile/orderBookAndEntry\").then((mod) => {\n return { default: mod.OrderBookAndEntryWidget };\n }),\n);\n\nconst LazyDataListWidget = React.lazy(() =>\n import(\"../../components/mobile/dataList\").then((mod) => {\n return { default: mod.DataListWidget };\n }),\n);\n\nconst MaybeEqual: React.FC = () => {\n return (\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.456 3.48a3.5 3.5 0 0 0 .431-.567 9 9 0 0 0 .361-.654l-.648-.66-.107.185q-.071.12-.142.244a3 3 0 0 1-.27.396 1.4 1.4 0 0 1-.318.29.67.67 0 0 1-.38.114q-.307 0-.666-.194t-.742-.42q-.383-.227-.777-.42a1.7 1.7 0 0 0-.771-.194q-.401.001-.72.154a2.1 2.1 0 0 0-.57.404 2.6 2.6 0 0 0-.43.574 5 5 0 0 0-.307.646l.649.66q.165-.437.464-.833.298-.395.742-.396.347 0 .7.194.354.193.721.42.37.227.763.42.396.195.826.195.374.001.665-.155.29-.151.526-.404m.352 2.941a3.5 3.5 0 0 0 .431-.566q.196-.315.361-.654l-.648-.66-.107.184-.142.244a3 3 0 0 1-.27.396 1.4 1.4 0 0 1-.318.29.67.67 0 0 1-.38.115q-.307 0-.666-.195-.36-.193-.742-.42-.383-.226-.778-.42a1.7 1.7 0 0 0-.77-.194q-.401.001-.72.154a2.1 2.1 0 0 0-.57.405 2.6 2.6 0 0 0-.43.574 5 5 0 0 0-.307.646l.649.66q.165-.437.464-.833.297-.395.742-.396.347 0 .7.194.354.193.721.42.369.226.763.42.396.194.826.194.374.001.665-.154.29-.152.526-.404\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n\nexport const MobileLayout: React.FC<TradingState> = (props) => {\n const { t } = useTranslation();\n\n const { isRwa, open, closeTimeInterval } = useGetRwaSymbolInfo(props.symbol);\n\n useEffect(() => {\n if (isRwa && !open) {\n showRwaOutsideMarketHoursNotify();\n }\n }, [isRwa, open, props.symbol]);\n\n const rwaStatusBar = useMemo(() => {\n if (!isRwa) {\n return null;\n }\n\n if (closeTimeInterval === undefined) {\n return null;\n }\n\n const thresholdTime = 30 * 60;\n\n if ((closeTimeInterval ?? 0) > thresholdTime) {\n return null;\n }\n\n return (\n <Flex\n gap={1}\n p={2}\n justify=\"start\"\n itemAlign=\"center\"\n r=\"lg\"\n mt={2}\n className=\"oui-bg-success/15 oui-text-xs oui-text-base-contrast-54\"\n >\n <NewsFillIcon color=\"success\" size={16} className=\"oui-flex-shrink-0\" />\n <Flex className=\"oui-flex-1 oui-text-success\">\n <Text>\n {open\n ? t(\"trading.rwa.mWeb.outsideMarketHours.desc\")\n : t(\"trading.rwa.mWeb.insideMarketHours.desc\")}\n </Text>\n </Flex>\n <Countdown timeInterval={closeTimeInterval} />\n </Flex>\n );\n }, [isRwa, open, closeTimeInterval]);\n\n const symbolInfoBar = (\n <SymbolInfoBarWidget\n symbol={props.symbol}\n onSymbol={() => props.onOpenMarketsSheetChange(true)}\n trailing={\n <Flex\n direction={\"column\"}\n itemAlign={\"end\"}\n className=\"oui-cursor-pointer oui-text-[11px]\"\n onClick={props.onShowPortfolioSheet}\n >\n <Flex>\n <Text intensity={54}>{t(\"common.totalValue\")}</Text>\n <button\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.setHideAssets(!props.hideAssets);\n }}\n className=\"oui-px-1\"\n >\n {props.hideAssets ? (\n <EyeIcon\n color=\"primary\"\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n ) : (\n <EyeCloseIcon\n color=\"primary\"\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n )}\n </button>\n <MaybeEqual />\n </Flex>\n <Text.numeral\n suffix={<Text intensity={20}>&nbsp;USDC</Text>}\n dp={2}\n visible={!props.hideAssets}\n >\n {props.canTrade ? (props.total ?? \"--\") : \"--\"}\n </Text.numeral>\n </Flex>\n }\n />\n );\n\n const topBar = (\n <Box intensity={900} className=\"oui-rounded-xl\" mx={1} px={3} py={2}>\n {symbolInfoBar}\n <SimpleSheet\n open={props.openMarketsSheet}\n onOpenChange={props.onOpenMarketsSheetChange}\n classNames={{\n body: \"oui-h-full oui-pb-0\",\n content: \"oui-w-[280px] !oui-p-0\",\n }}\n contentProps={{ side: \"left\", closeable: false }}\n >\n <MarketsSheetWidget\n symbol={props.symbol}\n onSymbolChange={(symbol) => {\n props.onOpenMarketsSheetChange(false);\n props.onSymbolChange?.(symbol);\n }}\n />\n </SimpleSheet>\n {rwaStatusBar}\n </Box>\n );\n\n return (\n <div className=\"oui-relative oui-grid oui-gap-1 oui-bg-base-10\">\n <main className=\"oui-hide-scrollbar oui-space-y-1 oui-overflow-y-auto\">\n {topBar}\n\n <React.Suspense fallback={null}>\n <LazyTopTabWidget className=\"oui-mx-1 oui-rounded-xl oui-bg-base-9\" />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyOrderBookAndEntryWidget />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataListWidget\n symbol={props.symbol}\n className=\"oui-mx-1 oui-rounded-xl\"\n sharePnLConfig={props.sharePnLConfig}\n />\n </React.Suspense>\n </main>\n </div>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex } from \"@orderly.network/ui\";\n\nexport const Countdown = ({\n timeInterval,\n}: {\n timeInterval: number | undefined;\n}) => {\n const { t } = useTranslation();\n\n if (!timeInterval) {\n return null;\n }\n\n // if timeInterval is greater than 30 minutes, return null\n if (timeInterval >= 1800) {\n return null;\n }\n\n const [days, hours, minutes, seconds] = breakDownSeconds(timeInterval);\n\n const daysStr = days.toString().padStart(2, \"0\");\n const hoursStr = hours.toString().padStart(2, \"0\");\n const minutesStr = minutes.toString().padStart(2, \"0\");\n const secondsStr = seconds.toString().padStart(2, \"0\");\n\n const renderStr = () => {\n if (days > 0) {\n return {\n s1: daysStr,\n s2: hoursStr,\n c1: t(\"common.dayShort\"),\n c2: t(\"common.hourShort\"),\n };\n }\n\n if (hours > 0) {\n return {\n s1: hoursStr,\n s2: minutesStr,\n c1: t(\"common.hourShort\"),\n c2: t(\"common.minuteShort\"),\n };\n }\n\n return {\n s1: minutesStr,\n s2: secondsStr,\n c1: t(\"common.minuteShort\"),\n c2: t(\"common.secondShort\"),\n };\n };\n\n const { s1, s2, c1, c2 } = renderStr();\n\n return (\n <Flex className=\"oui-text-base-contrast-54 oui-text-xs oui-font-normal\">\n <Box\n ml={2}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {s1}\n </Box>\n {c1}\n {\" : \"}\n <Box\n ml={1}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {s2}\n </Box>\n {c2}\n </Flex>\n );\n};\n\nfunction breakDownSeconds(total: number): [number, number, number, number] {\n const SEC_PER_DAY = 86_400;\n const SEC_PER_HOUR = 3_600;\n const SEC_PER_MIN = 60;\n\n const days = Math.floor(total / SEC_PER_DAY);\n const remAfterDays = total % SEC_PER_DAY;\n\n const hours = Math.floor(remAfterDays / SEC_PER_HOUR);\n const remAfterHours = remAfterDays % SEC_PER_HOUR;\n\n const mins = Math.floor(remAfterHours / SEC_PER_MIN);\n const secs = remAfterHours % SEC_PER_MIN;\n\n return [days, hours, mins, secs];\n}\n","import React from \"react\";\nimport { useTradingScript } from \"./trading.script\";\nimport { Trading } from \"./trading.ui\";\n\nexport const TradingWidget: React.FC = () => {\n const state = useTradingScript();\n return <Trading {...state} />;\n};\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { TradingPageState, TradingPageProps } from \"../types/types\";\nimport { getBasicSymbolInfo } from \"../utils/utils\";\nimport { TradingPageContext } from \"./tradingPageContext\";\n\nexport const TradingPageProvider: FC<PropsWithChildren<TradingPageProps>> = (\n props,\n) => {\n const { symbol, children } = props;\n const symbolInfo = useSymbolsInfo()[symbol];\n\n const memoizedValue = useMemo<TradingPageState>(() => {\n const basicSymbol = getBasicSymbolInfo(symbolInfo);\n return {\n ...props,\n symbolInfo: {\n ...basicSymbol,\n symbol: symbol,\n },\n };\n }, [props, symbol, symbolInfo]);\n return (\n <TradingPageContext.Provider value={memoizedValue}>\n {children}\n </TradingPageContext.Provider>\n );\n};\n","import React from \"react\";\nimport { TradingPageProvider } from \"../../provider/tradingPageProvider\";\nimport { TradingPageProps } from \"../../types/types\";\nimport { TradingWidget } from \"./trading.widget\";\n\nexport const TradingPage: React.FC<TradingPageProps> = (props) => {\n return (\n <TradingPageProvider\n symbol={props.symbol}\n tradingViewConfig={props.tradingViewConfig}\n onSymbolChange={props.onSymbolChange}\n disableFeatures={props.disableFeatures}\n overrideFeatures={props.overrideFeatures}\n referral={props.referral}\n tradingRewards={props.tradingRewards}\n bottomSheetLeading={props.bottomSheetLeading}\n sharePnLConfig={props.sharePnLConfig}\n >\n <TradingWidget />\n </TradingPageProvider>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/hooks/useTradingLocalStorage.ts","../src/hooks/usePositionsCount.ts","../src/hooks/usePendingOrderCount.ts","../src/hooks/index.ts","../src/provider/tradingPageContext.tsx","../src/components/desktop/dataList/dataList.script.tsx","../src/components/desktop/dataList/setting/setting.ui.tsx","../src/components/desktop/dataList/setting/setting.script.tsx","../src/components/desktop/dataList/setting/setting.widget.tsx","../src/components/desktop/dataList/setting/index.ts","../src/components/base/positionHeader/positionHeader.ui.tsx","../src/components/base/positionHeader/positionHeader.script.tsx","../src/components/base/positionHeader/positionHeader.widget.tsx","../src/components/base/positionHeader/index.ts","../src/components/desktop/dataList/dataList.ui.tsx","../src/components/desktop/dataList/dataList.widget.tsx","../src/components/desktop/dataList/index.ts","../src/components/base/lastTrades/lastTrades.ui.tsx","../src/components/base/lastTrades/lastTrades.script.tsx","../src/components/base/lastTrades/lastTrades.widget.tsx","../src/components/base/lastTrades/index.ts","../src/components/desktop/assetView/faucet/faucet.ui.tsx","../src/components/desktop/assetView/faucet/faucet.script.tsx","../src/components/desktop/assetView/faucet/faucet.widget.tsx","../src/components/desktop/assetView/assetView.ui.tsx","../src/components/desktop/assetView/assetView.script.tsx","../src/components/desktop/assetView/assetView.widget.tsx","../src/components/desktop/assetView/index.ts","../src/components/base/orderBook/orderContext.tsx","../src/components/base/orderBook/types.ts","../src/components/base/orderBook/cellBar.tsx","../src/components/desktop/orderBook/cell.desktop.tsx","../src/components/desktop/orderBook/listBox.desktop.tsx","../src/components/desktop/orderBook/asks.desktop.tsx","../src/components/desktop/orderBook/bids.desktop.tsx","../src/components/desktop/orderBook/buySellRatio.tsx","../src/components/desktop/orderBook/depthSelect.desktop.tsx","../src/components/desktop/orderBook/header.desktop.tsx","../src/components/base/orderBook/midPriceView.tsx","../src/components/base/orderBook/markPrice.tsx","../src/components/desktop/orderBook/markPrice.desktop.tsx","../src/components/desktop/orderBook/index.desktop.tsx","../src/components/mobile/fundingRate/fundingRate.ui.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.script.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.ui.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.widget.tsx","../src/components/mobile/fundingRate/fundingRate.script.tsx","../src/components/mobile/fundingRate/fundingRate.widget.tsx","../src/components/mobile/fundingRate/index.ts","../src/components/mobile/orderBook/cell.tsx","../src/components/mobile/orderBook/listBox.tsx","../src/components/mobile/orderBook/asks.tsx","../src/components/mobile/orderBook/bids.tsx","../src/components/mobile/orderBook/depthSelect.tsx","../src/components/mobile/orderBook/header.tsx","../src/components/mobile/orderBook/markPrice.tsx","../src/components/mobile/orderBook/index.tsx","../src/components/base/orderBook/orderBook.ui.tsx","../src/utils/utils.ts","../src/components/base/orderBook/orderBook.script.tsx","../src/components/base/orderBook/orderBook.widget.tsx","../src/components/base/orderBook/buySellRatioBar.tsx","../src/components/base/orderBook/index.ts","../src/components/desktop/riskRate/riskRate.ui.tsx","../src/components/desktop/riskRate/riskRate.script.tsx","../src/components/desktop/riskRate/riskRate.widget.tsx","../src/components/desktop/riskRate/index.ts","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.ui.tsx","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.script.tsx","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.widget.tsx","../src/components/desktop/orderBookAndTrades/index.ts","../src/components/desktop/layout/switchLayout.tsx","../src/components/mobile/topTab/topTab.script.tsx","../src/components/mobile/tradingview/tradingview.script.tsx","../src/components/base/icons.tsx","../src/components/mobile/tradingview/tradingview.ui.tsx","../src/components/mobile/tradingview/tradingview.widget.tsx","../src/components/mobile/lastTrades/lastTrades.widget.tsx","../src/components/mobile/tradeData/tradeData.ui.tsx","../src/components/mobile/tradeData/tradeData.script.tsx","../src/components/mobile/tradeData/tradeData.widget.tsx","../src/components/mobile/tradeData/index.ts","../src/components/mobile/topTab/topTab.ui.tsx","../src/components/mobile/topTab/topTab.widget.tsx","../src/components/mobile/topTab/index.ts","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.ui.tsx","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.script.tsx","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.widget.tsx","../src/components/mobile/orderBookAndEntry/index.ts","../src/components/mobile/dataList/dataList.script.tsx","../src/components/mobile/dataList/dataList.ui.tsx","../src/components/mobile/dataList/dataList.widget.tsx","../src/components/mobile/dataList/index.ts","../src/index.ts","../src/components/desktop/layout/splitLayout/splitLineBar.tsx","../src/components/desktop/layout/splitLayout/splitLayout.tsx","../src/components/mobile/bottomNavBar/account/account.script.tsx","../src/components/mobile/accountSheet/icons.tsx","../src/components/mobile/accountSheet/accountSheet.ui.tsx","../src/components/mobile/accountSheet/accountSheet.script.tsx","../src/components/mobile/accountSheet/accountSheet.widget.tsx","../src/components/mobile/bottomNavBar/account/account.ui.tsx","../src/components/mobile/bottomNavBar/account/account.widget.tsx","../src/components/mobile/bottomNavBar/balance/balance.ui.tsx","../src/components/mobile/bottomNavBar/balance/balance.script.tsx","../src/components/mobile/bottomNavBar/balance/balance.widget.tsx","../src/components/mobile/bottomNavBar/chain/chain.ui.tsx","../src/components/mobile/bottomNavBar/chain/chain.script.tsx","../src/components/mobile/bottomNavBar/chain/chain.widget.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.ui.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.script.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.widget.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.script.tsx","../src/components/mobile/portfolioSheet/riskIndicator.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.ui.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.widget.tsx","../src/components/mobile/fundingRateModal/index.ts","../src/components/desktop/layout/sortablePanel.tsx","../src/components/desktop/notify/rwaNotification.tsx","../src/hooks/useShowRwaCountdown.ts","../src/components/desktop/layout/useSplitPersistent.ts","../src/pages/trading/trading.script.tsx","../src/pages/trading/hooks/useFirstTimeDeposit.ts","../src/pages/trading/trading.ui.desktop.tsx","../src/components/base/countdown.tsx","../src/pages/trading/trading.ui.mobile.tsx","../src/pages/trading/trading.ui.tsx","../src/pages/trading/trading.widget.tsx","../src/provider/tradingPageProvider.tsx","../src/pages/trading/trading.page.tsx"],"names":["useDataTap","localStorage","useMemo","jsx","useScreen","useTranslation","jsxs","Flex","Divider","Text","usePositionStream","React","Tooltip","TabType","OrderStatus","Box","Button","useState","modal","toast","useAccount","AccountStatusEnum","cn","useLocalStorage","Fragment","useConfig","useCallback","visible","createContext","useContext","Row","Decimal","TooltipContent","Checkbox","ArrowDownShortIcon","DesktopLayout","MobileLayout","init_orderBook","Grid","getPrecisionByNumber","Header","Picker","CaretUpIcon","CaretDownIcon","init_markPrice","EMPTY_LIST","Spinner","OrderBook","useSymbolsInfo","useEffect","level","useOrderStream","useAppContext","gradientTextVariants","useMarginRatio","Title","Tabs","TabPanel","useRef","CloseIcon","DropdownMenuRoot","DropdownMenuTrigger","DropdownMenuContent","offsetY","TradingviewWidget","init_lastTrades_widget","openInterest","LazyOrderBookWidget","OrderEntryWidget","useDataListScript","init_dataList_script","LazyPositionHeaderWidget","PositionsView","DataList","init_dataList_ui","formatSymbol","AssetsModule","createElement","DataListWidget","init_dataList_widget","dataList_exports","init_dataList","useWalletConnector","isTestnet","useMutation","ChainNamespace","AuthGuard","SimpleDialog","useEventEmitter","useCollateral","useLeverage","leverage","EyeIcon","EyeCloseIcon","Statistic","ArrowUpShortIcon","ExclamationFillIcon","size","endTime","startTime","pos","space","symbolInfoBarHeight","CSS","LazyDataListWidget"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useLocalStorage } from \"@orderly.network/hooks\";\n\nexport const useTradingLocalStorage = (props?: {\n pnlNotionalDecimalPrecision?: number;\n}) => {\n const [unPnlPriceBasis, setUnPnlPriceBasic] = useLocalStorage(\n \"unPnlPriceBasis\",\n \"markPrice\",\n );\n const [pnlNotionalDecimalPrecision, setPnlNotionalDecimalPrecision] =\n useLocalStorage(\n \"pnlNotionalDecimalPrecision\",\n props?.pnlNotionalDecimalPrecision ?? 2,\n );\n const [showAllSymbol, setShowAllSymbol] = useLocalStorage(\n \"showAllSymbol\",\n true,\n );\n\n const [hideAssets, setHideAssets] = useLocalStorage(\"hideAssets\", false);\n\n return {\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n pnlNotionalDecimalPrecision,\n setPnlNotionalDecimalPrecision,\n showAllSymbol,\n setShowAllSymbol,\n hideAssets,\n setHideAssets,\n };\n};\n","import { useMemo } from \"react\";\nimport { usePositionStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { useTradingLocalStorage } from \"./useTradingLocalStorage\";\n\nexport const usePositionsCount = (symbol?: string) => {\n const { showAllSymbol } = useTradingLocalStorage();\n const [data] = usePositionStream(showAllSymbol ? undefined : symbol);\n\n const count = useMemo(() => {\n return data.rows?.length;\n }, [data.rows?.length]);\n\n const positionCount = useDataTap(count) ?? 0;\n\n return {\n positionCount,\n };\n};\n","import { useOrderStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AlgoOrderRootType, OrderStatus } from \"@orderly.network/types\";\nimport { TabType } from \"@orderly.network/ui-orders\";\nimport { useTradingLocalStorage } from \"./useTradingLocalStorage\";\n\nexport const usePendingOrderCount = (symbol?: string) => {\n const { showAllSymbol } = useTradingLocalStorage();\n\n const pendingOrdersPageSizeKey = `orderly_${TabType.pending}_pageSize`;\n const tpslOrdersPageSizeKey = `orderly_${TabType.tp_sl}_pageSize`;\n //\n // const [pendingOrderPageSize] = useLocalStorage(pendingOrdersPageSizeKey, 500);\n // const [tpslOrderPageSize] = useLocalStorage(tpslOrdersPageSizeKey, 500);\n\n const [pendingOrders, { total: pendingCount }] = useOrderStream(\n {\n symbol: showAllSymbol ? undefined : symbol,\n status: OrderStatus.INCOMPLETE,\n excludes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n // size: pendingOrderPageSize,\n size: 500,\n // sourceTypeAll: true,\n },\n {\n keeplive: true,\n },\n );\n\n const [tpslOrders, { total: tpslCount }] = useOrderStream(\n {\n symbol: showAllSymbol ? undefined : symbol,\n status: OrderStatus.INCOMPLETE,\n includes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n // size: tpslOrderPageSize,\n size: 500,\n // sourceTypeAll: true,\n },\n {\n keeplive: true,\n },\n );\n\n const pendingOrderCount = useDataTap(pendingCount) ?? 0;\n const tpSlOrderCount = useDataTap(tpslCount) ?? 0;\n\n return {\n pendingOrderCount,\n tpSlOrderCount,\n };\n};\n","export { useTradingLocalStorage } from \"./useTradingLocalStorage\";\nexport { usePositionsCount } from \"./usePositionsCount\";\nexport { usePendingOrderCount } from \"./usePendingOrderCount\";\n","import { createContext, useContext } from \"react\";\nimport { TradingPageState } from \"../types/types\";\n\nexport const TradingPageContext = createContext({} as TradingPageState);\n\nexport const useTradingPageContext = () => {\n return useContext(TradingPageContext);\n};\n","import type { PositionsProps } from \"@orderly.network/ui-positions\";\nimport {\n usePendingOrderCount,\n usePositionsCount,\n useTradingLocalStorage,\n} from \"../../../hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum DataListTabType {\n positions = \"Positions\",\n pending = \"Pending\",\n tp_sl = \"TP/SL\",\n filled = \"Filled\",\n positionHistory = \"Position history\",\n orderHistory = \"Order history\",\n liquidation = \"Liquidation\",\n assets = \"Assets\",\n}\n\nexport const useDataListScript = (\n inputs: { current?: DataListTabType } & PositionsProps,\n) => {\n const {\n current,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n symbol,\n includedPendingOrder,\n } = inputs;\n\n const localStorage = useTradingLocalStorage({ pnlNotionalDecimalPrecision });\n\n const { onSymbolChange } = useTradingPageContext();\n\n const { positionCount } = usePositionsCount(symbol);\n\n const { pendingOrderCount, tpSlOrderCount } = usePendingOrderCount(symbol);\n\n return {\n current,\n sharePnLConfig,\n symbol,\n calcMode: localStorage.unPnlPriceBasis,\n includedPendingOrder,\n ...localStorage,\n positionCount,\n pendingOrderCount,\n tpSlOrderCount,\n onSymbolChange,\n };\n};\n\nexport type DataListState = ReturnType<typeof useDataListScript>;\n","import { FC, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n Checkbox,\n Divider,\n DropdownMenuContent,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n ExclamationFillIcon,\n Flex,\n SettingFillIcon,\n Switch,\n Text,\n Tooltip,\n useScreen,\n Sheet,\n SheetContent,\n SheetTrigger,\n modal,\n} from \"@orderly.network/ui\";\nimport { SettingState } from \"./setting.script\";\n\nexport const Setting: FC<SettingState> = (props) => {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n\n const SettingsContent = useMemo(() => {\n return () => (\n <>\n <div className=\"oui-flex oui-flex-col oui-text-sm\">\n <Flex\n itemAlign=\"center\"\n justify={isMobile ? \"center\" : \"start\"}\n className=\"oui-w-full\"\n >\n <Text className=\"oui-text-base oui-pb-3\">\n {t(\"trading.portfolioSettings\")}\n </Text>\n </Flex>\n <Divider />\n <Text className=\"oui-pb-3 oui-text-base-contrast-54 oui-mt-2\">\n {t(\"trading.portfolioSettings.decimalPrecision\")}\n </Text>\n <DecimalPrecisionCheckbox\n value={props.pnlNotionalDecimalPrecision}\n onValueChange={(e) => {\n props.setPnlNotionalDecimalPrecision(e);\n setOpen(false);\n }}\n />\n <Divider className=\"oui-my-3\" />\n <Text className=\"oui-pb-3 oui-text-base-contrast-54 oui-mt-2\">\n {t(\"trading.portfolioSettings.unrealPnlPriceBasis\")}\n </Text>\n <UnPnlPriceBasisCheckBox\n value={props.unPnlPriceBasis}\n onValueChange={(e) => {\n props.setUnPnlPriceBasic(e);\n setOpen(false);\n }}\n />\n </div>\n <Divider className=\"oui-my-3\" />\n <Flex itemAlign=\"center\" gap={1} justify=\"between\">\n <Flex gap={1} itemAlign=\"center\">\n <Text size=\"sm\" intensity={54}>\n {t(\"trading.portfolioSettings.reversePosition\")}\n </Text>\n {isMobile ? (\n <ExclamationFillIcon\n size={14}\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-cursor-pointer\"\n onClick={() => {\n modal.alert({\n title: t(\"common.tips\"),\n message: t(\n \"trading.portfolioSettings.reversePosition.tooltip\",\n ),\n });\n }}\n />\n ) : (\n <Tooltip\n content={t(\"trading.portfolioSettings.reversePosition.tooltip\")}\n className=\"oui-max-w-[300px]\"\n >\n <ExclamationFillIcon\n size={14}\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-cursor-pointer\"\n />\n </Tooltip>\n )}\n </Flex>\n <Switch\n checked={props.reversePosition}\n onCheckedChange={(checked: boolean) => {\n props.setReversePosition(checked);\n }}\n />\n </Flex>\n </>\n );\n }, [\n t,\n isMobile,\n props.pnlNotionalDecimalPrecision,\n props.unPnlPriceBasis,\n props.reversePosition,\n ]);\n\n const triggerButton = (\n <Button\n size=\"xs\"\n type=\"button\"\n variant=\"contained\"\n className=\"oui-bg-transparent hover:oui-bg-transparent\"\n >\n <SettingFillIcon\n size={16}\n color=\"white\"\n opacity={1}\n className=\"oui-text-white/[.36] hover:oui-text-white/80\"\n />\n </Button>\n );\n\n return (\n <Flex gap={0}>\n <Flex gap={1}>\n <Checkbox\n id=\"oui-checkbox-hideOtherSymbols\"\n color=\"white\"\n checked={props.hideOtherSymbols}\n onCheckedChange={(checked: boolean) => {\n props.setHideOtherSymbols(checked);\n }}\n />\n <label\n className=\"oui-text-xs oui-text-base-contrast-54 oui-cursor-pointer\"\n htmlFor=\"oui-checkbox-hideOtherSymbols\"\n >\n {t(\"trading.hideOtherSymbols\")}\n </label>\n </Flex>\n\n {isMobile ? (\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger asChild>{triggerButton}</SheetTrigger>\n <SheetContent side=\"bottom\" className=\"oui-px-5 oui-pt-3\">\n <div\n style={{\n paddingBottom: `max(32px, calc(12px + env(safe-area-inset-bottom)))`,\n }}\n >\n <SettingsContent />\n </div>\n </SheetContent>\n </Sheet>\n ) : (\n <DropdownMenuRoot open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger asChild>{triggerButton}</DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"oui-px-5 oui-py-3 oui-w-[360px]\"\n alignOffset={2}\n align=\"end\"\n >\n <SettingsContent />\n </DropdownMenuContent>\n </DropdownMenuRoot>\n )}\n </Flex>\n );\n};\n\nconst UnPnlPriceBasisCheckBox = (props: {\n value: string;\n onValueChange: (value: string) => void;\n}) => {\n const { value, onValueChange } = props;\n const { t } = useTranslation();\n\n // \"markPrice\" | \"lastPrice\"\n return (\n <Flex gap={2}>\n <RadioButton\n sel={value === \"markPrice\"}\n label={t(\"common.markPrice\")}\n value={\"markPrice\"}\n onCheckChange={onValueChange}\n />\n <RadioButton\n sel={value === \"lastPrice\"}\n label={t(\"common.lastPrice\")}\n value={\"lastPrice\"}\n onCheckChange={onValueChange}\n />\n </Flex>\n );\n};\n\nconst DecimalPrecisionCheckbox = (props: {\n value: number;\n onValueChange: (value: number) => void;\n}) => {\n const { value, onValueChange } = props;\n return (\n <Flex gap={2}>\n <RadioButton\n sel={value === 0}\n label={1}\n value={0}\n onCheckChange={onValueChange}\n />\n <RadioButton\n sel={value === 1}\n label={0.1}\n value={1}\n onCheckChange={onValueChange}\n />\n <RadioButton\n sel={value === 2}\n label={0.01}\n value={2}\n onCheckChange={onValueChange}\n />\n </Flex>\n );\n};\n\n// const InnerCheckbox = (props: {\n// sel: boolean;\n// label: any;\n// value: any;\n// onCheckChange: (value: any) => void;\n// }) => {\n// const { sel, label, value, onCheckChange } = props;\n// return (\n// <Flex\n// onClick={(e) => {\n// onCheckChange(value);\n// e.stopPropagation();\n// }}\n// gap={1}\n// >\n// <Checkbox color=\"white\" checked={sel} />\n// <Text size=\"xs\" intensity={sel ? 98 : 54}>\n// {`${label}`}\n// </Text>\n// </Flex>\n// );\n// };\n\nconst RadioButton = (props: {\n sel: boolean;\n label: any;\n value: any;\n onCheckChange: (value: any) => void;\n}) => {\n const { sel, label, value, onCheckChange } = props;\n return (\n <Flex\n onClick={(e) => {\n onCheckChange(value);\n e.stopPropagation();\n }}\n gap={1}\n className=\"oui-cursor-pointer\"\n >\n {sel ? <SelIcon /> : <UnselIcon />}\n <Text size=\"2xs\" intensity={sel ? 98 : 54}>\n {label}\n </Text>\n </Flex>\n );\n};\n\nconst SelIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-white\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n </svg>\n );\n};\n\nconst UnselIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n","import { useReversePositionEnabled } from \"@orderly.network/ui-positions\";\nimport { SettingWidgetProps } from \"./setting.widget\";\n\nexport const useSettingScript = (props: SettingWidgetProps) => {\n const { isEnabled, setEnabled } = useReversePositionEnabled();\n return {\n ...props,\n reversePosition: isEnabled,\n setReversePosition: setEnabled,\n };\n};\n\nexport type SettingState = ReturnType<typeof useSettingScript>;\n","import React from \"react\";\nimport { useSettingScript } from \"./setting.script\";\nimport { Setting } from \"./setting.ui\";\n\nexport type SettingWidgetProps = {\n pnlNotionalDecimalPrecision: any;\n setPnlNotionalDecimalPrecision: (value: number) => void;\n unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n setUnPnlPriceBasic: (value: string) => void;\n hideOtherSymbols: any;\n setHideOtherSymbols: (value: boolean) => void;\n};\n\nexport const SettingWidget: React.FC<SettingWidgetProps> = (props) => {\n const state = useSettingScript(props);\n return <Setting {...state} />;\n};\n","export { Setting } from \"./setting.ui\";\nexport { SettingWidget } from \"./setting.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Checkbox,\n Divider,\n Flex,\n Statistic,\n Text,\n useScreen,\n} from \"@orderly.network/ui\";\nimport { CloseAllPositionsWidget } from \"@orderly.network/ui-positions\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SettingWidget } from \"../../desktop/dataList/setting\";\nimport type { PositionHeaderState } from \"./positionHeader.script\";\n\nexport const PositionHeader: React.FC<PositionHeaderState> = (props) => {\n const { isMobile } = useScreen();\n return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst MobileLayout: React.FC<PositionHeaderState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n direction={\"column\"}\n gap={2}\n width={\"100%\"}\n itemAlign={\"start\"}\n p={2}\n className=\"oui-rounded-b-xl oui-bg-base-9\"\n >\n <Flex width={\"100%\"} justify={\"between\"} gap={2}>\n <UnrealPnL\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-54\",\n root: \"oui-text-sm\",\n }}\n {...props}\n />\n <Notional\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-54\",\n root: \"oui-text-sm\",\n }}\n {...props}\n />\n </Flex>\n <Divider className=\"oui-w-full\" />\n <Flex\n className=\"oui-cursor-pointer oui-gap-[2px]\"\n justify={\"between\"}\n width={\"100%\"}\n >\n <Flex>\n <SettingWidget\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n setPnlNotionalDecimalPrecision={\n props.setPnlNotionalDecimalPrecision\n }\n unPnlPriceBasis={props.unPnlPriceBasis}\n setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n hideOtherSymbols={!props.showAllSymbol}\n setHideOtherSymbols={(value: boolean) => {\n props.setShowAllSymbol(!value);\n }}\n />\n </Flex>\n <CloseAllPositionsWidget symbol={props.symbol} />\n </Flex>\n </Flex>\n );\n};\n\nconst DesktopLayout: React.FC<PositionHeaderState> = (props) => {\n return (\n <Flex py={2} px={3} gap={6} width={\"100%\"} justify={\"between\"}>\n <Flex gap={5}>\n <UnrealPnL\n {...props}\n classNames={{ label: \"oui-text-base-contrast-54\" }}\n />\n <Notional\n {...props}\n classNames={{ label: \"oui-text-base-contrast-54\" }}\n />\n </Flex>\n\n <CloseAllPositionsWidget symbol={props.symbol} />\n </Flex>\n );\n};\n\nconst UnrealPnL: React.FC<\n PositionHeaderState & {\n classNames?: { root?: string; label?: string; value?: string };\n }\n> = (props) => {\n const { t } = useTranslation();\n\n const unrealPnLClsName =\n typeof props.unrealPnL === \"number\"\n ? props.unrealPnL >= 0\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\"\n : \"oui-text-base-contrast-80\";\n\n const unrealPnLROIClsName =\n typeof props.unrealPnL === \"number\" && props.unrealPnlROI\n ? props.unrealPnlROI >= 0\n ? \"oui-text-success-darken\"\n : \"oui-text-danger-darken\"\n : \"oui-text-base-contrast-80\";\n\n return (\n <Statistic label={t(\"common.unrealizedPnl\")} classNames={props.classNames}>\n <Flex gap={1}>\n <Text.pnl\n dp={props.pnlNotionalDecimalPrecision}\n intensity={80}\n className={unrealPnLClsName}\n >\n {props.unrealPnL ?? \"--\"}\n </Text.pnl>\n {typeof props.unrealPnlROI !== \"undefined\" && (\n <Text.roi\n prefix=\"(\"\n suffix=\")\"\n rule=\"percentages\"\n size=\"2xs\"\n dp={props.pnlNotionalDecimalPrecision}\n className={unrealPnLROIClsName}\n >\n {props.unrealPnlROI}\n </Text.roi>\n )}\n </Flex>\n </Statistic>\n );\n};\n\nconst Notional: React.FC<\n PositionHeaderState & {\n classNames?: { root?: string; label?: string; value?: string };\n }\n> = (props) => {\n const { t } = useTranslation();\n return (\n <Statistic label={t(\"common.notional\")} classNames={props.classNames}>\n <Text.numeral\n dp={props.pnlNotionalDecimalPrecision}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n >\n {props.notional ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n","import { usePositionStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { useTradingLocalStorage } from \"../../../hooks\";\n\nexport const usePositionHeaderScript = (inputs: {\n pnlNotionalDecimalPrecision?: number;\n setPnlNotionalDecimalPrecision: (value: number) => void;\n unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n setUnPnlPriceBasic: (value: string) => void;\n symbol?: string;\n}) => {\n const {\n pnlNotionalDecimalPrecision,\n setPnlNotionalDecimalPrecision,\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n symbol,\n } = inputs;\n const calcMode = unPnlPriceBasis;\n\n const [data] = usePositionStream(symbol, {\n calcMode,\n });\n const aggregated = useDataTap(data.aggregated);\n\n const unrealPnL = aggregated?.total_unreal_pnl;\n const unrealPnlROI = aggregated?.unrealPnlROI;\n const notional = aggregated?.notional;\n const { showAllSymbol, setShowAllSymbol } = useTradingLocalStorage();\n\n return {\n pnlNotionalDecimalPrecision,\n unrealPnL,\n unrealPnlROI,\n notional,\n showAllSymbol,\n setShowAllSymbol,\n symbol,\n setPnlNotionalDecimalPrecision,\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n };\n};\n\nexport type PositionHeaderState = ReturnType<typeof usePositionHeaderScript>;\n","import React from \"react\";\nimport { usePositionHeaderScript } from \"./positionHeader.script\";\nimport { PositionHeader } from \"./positionHeader.ui\";\n\nexport const PositionHeaderWidget: React.FC<{\n pnlNotionalDecimalPrecision?: number;\n setPnlNotionalDecimalPrecision: (value: number) => void;\n unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n setUnPnlPriceBasic: (value: string) => void;\n symbol?: string;\n}> = (props) => {\n const state = usePositionHeaderScript(props);\n return <PositionHeader {...state} />;\n};\n","export { PositionHeader } from \"./positionHeader.ui\";\nexport { PositionHeaderWidget } from \"./positionHeader.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AssetsModule } from \"@orderly.network/portfolio\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport {\n Box,\n Divider,\n Flex,\n InfoCircleIcon,\n ScrollArea,\n TabPanel,\n Tabs,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport type { TabPanelProps } from \"@orderly.network/ui\";\nimport { DesktopOrderListWidget, TabType } from \"@orderly.network/ui-orders\";\nimport {\n LiquidationWidget,\n PositionHistoryWidget,\n PositionsWidget,\n} from \"@orderly.network/ui-positions\";\nimport { DataListState, DataListTabType } from \"./dataList.script\";\n\nconst LazySettingWidget = React.lazy(() =>\n import(\"./setting\").then((mod) => {\n return { default: mod.SettingWidget };\n }),\n);\n\nconst LazyPositionHeaderWidget = React.lazy(() =>\n import(\"../../base/positionHeader\").then((mod) => {\n return { default: mod.PositionHeaderWidget };\n }),\n);\n\nconst PositionsView: React.FC<DataListState> = (props) => {\n return (\n <Flex direction=\"column\" width=\"100%\" height=\"100%\">\n <React.Suspense fallback={null}>\n <LazyPositionHeaderWidget\n setPnlNotionalDecimalPrecision={props.setPnlNotionalDecimalPrecision}\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n symbol={!!props.showAllSymbol ? undefined : props.symbol}\n setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n unPnlPriceBasis={props.unPnlPriceBasis}\n />\n </React.Suspense>\n <Divider className=\"oui-w-full\" />\n <Box className=\"oui-h-[calc(100%_-_60px)]\" width=\"100%\">\n <PositionsWidget\n symbol={!!props.showAllSymbol ? undefined : props.symbol}\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n sharePnLConfig={props.sharePnLConfig}\n calcMode={props.calcMode}\n includedPendingOrder={props.includedPendingOrder}\n onSymbolChange={props.onSymbolChange}\n />\n </Box>\n </Flex>\n );\n};\n\nexport const LiquidationTab: React.FC = () => {\n const { t } = useTranslation();\n return (\n <div className=\"oui-flex oui-space-x-1\">\n <span>{t(\"positions.liquidation\")}</span>\n <Tooltip\n className=\"oui-max-w-[275px] oui-bg-base-6\"\n content={\n <div>\n <div className=\"oui-text-pretty\">\n {t(\"positions.Liquidation.tooltip.liquidation\")}\n </div>\n <div>\n <a\n href=\"https://orderly.network/docs/introduction/trade-on-orderly/perpetual-futures/liquidations\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"oui-text-primary\"\n >\n {t(\"positions.Liquidation.tooltip.viewMore\")}\n </a>\n </div>\n </div>\n }\n arrow={{ className: \"oui-fill-base-6\" }}\n >\n <span className=\"oui-hidden group-data-[state=active]:oui-block oui-cursor-pointer\">\n <InfoCircleIcon />\n </span>\n </Tooltip>\n </div>\n );\n};\n\nexport const DataList: React.FC<DataListState> = (props) => {\n const { t } = useTranslation();\n\n const {\n positionCount = 0,\n pendingOrderCount = 0,\n tpSlOrderCount = 0,\n showAllSymbol,\n symbol,\n onSymbolChange,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n setShowAllSymbol,\n current,\n unPnlPriceBasis,\n setUnPnlPriceBasic,\n setPnlNotionalDecimalPrecision,\n } = props;\n\n const tabPanelItems: (TabPanelProps & { content?: React.ReactNode })[] = [\n {\n value: DataListTabType.positions,\n title: `${t(\"common.positions\")} ${positionCount > 0 ? `(${positionCount})` : \"\"}`,\n content: <PositionsView {...props} />,\n },\n {\n value: DataListTabType.pending,\n title: `${t(\"orders.status.pending\")} ${pendingOrderCount > 0 ? `(${pendingOrderCount})` : \"\"}`,\n content: (\n <DesktopOrderListWidget\n type={TabType.pending}\n ordersStatus={OrderStatus.INCOMPLETE}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-pending-table-body\" }}\n />\n ),\n },\n {\n value: DataListTabType.tp_sl,\n title: `${t(\"common.tpsl\")} ${tpSlOrderCount > 0 ? `(${tpSlOrderCount})` : \"\"}`,\n content: (\n <DesktopOrderListWidget\n type={TabType.tp_sl}\n ordersStatus={OrderStatus.INCOMPLETE}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-tpsl-table-body\" }}\n />\n ),\n },\n {\n value: DataListTabType.filled,\n title: t(\"orders.status.filled\"),\n content: (\n <DesktopOrderListWidget\n type={TabType.filled}\n symbol={showAllSymbol ? undefined : symbol}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n ordersStatus={OrderStatus.FILLED}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-filled-table-body\" }}\n sharePnLConfig={sharePnLConfig}\n />\n ),\n },\n {\n value: DataListTabType.positionHistory,\n title: t(\"positions.positionHistory\"),\n content: (\n <PositionHistoryWidget\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n sharePnLConfig={sharePnLConfig}\n />\n ),\n },\n {\n value: DataListTabType.orderHistory,\n title: t(\"orders.orderHistory\"),\n content: (\n <DesktopOrderListWidget\n type={TabType.orderHistory}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n symbol={showAllSymbol ? undefined : symbol}\n onSymbolChange={onSymbolChange}\n testIds={{ tableBody: \"oui-testid-dataList-orderHistory-table-body\" }}\n sharePnLConfig={sharePnLConfig}\n />\n ),\n },\n {\n value: DataListTabType.liquidation,\n title: <LiquidationTab />,\n content: (\n <LiquidationWidget symbol={showAllSymbol ? undefined : symbol} />\n ),\n },\n {\n value: DataListTabType.assets,\n title: t(\"common.assets\"),\n content: (\n <Flex\n width=\"100%\"\n height=\"100%\"\n className=\"oui-overflow-y-auto oui-hide-scrollbar oui-pt-3\"\n >\n <AssetsModule.AssetsDataTableWidget\n classNames={{\n scrollRoot:\n \"oui-h-full oui-mb-6 oui-mt-0 oui-p-0 oui-pt-3 oui-h-[calc(100%_-_40px)]\",\n root: \"oui-gap-4 oui-h-full\",\n desc: \"oui-ml-1\",\n }}\n dataTableClassNames={{\n header: \"oui-bg-base-9\",\n root: \"oui-h-[calc(100%_-_28px)]\",\n }}\n />\n </Flex>\n ),\n },\n ];\n\n return (\n <Tabs\n defaultValue={current || DataListTabType.positions}\n variant=\"contained\"\n trailing={\n <React.Suspense fallback={null}>\n <LazySettingWidget\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n setPnlNotionalDecimalPrecision={setPnlNotionalDecimalPrecision}\n unPnlPriceBasis={unPnlPriceBasis}\n setUnPnlPriceBasic={setUnPnlPriceBasic}\n hideOtherSymbols={!showAllSymbol}\n setHideOtherSymbols={(value) => setShowAllSymbol(!value)}\n />\n </React.Suspense>\n }\n size=\"lg\"\n className=\"oui-h-full\"\n classNames={{\n trigger: \"oui-group\",\n tabsContent: \"oui-h-[calc(100%_-_32px)]\",\n }}\n >\n {tabPanelItems.map((item) => {\n const { content, ...rest } = item;\n return (\n <TabPanel {...rest} key={`item-${rest.value}`}>\n {content}\n </TabPanel>\n );\n })}\n </Tabs>\n );\n};\n","import React from \"react\";\nimport type { PositionsProps } from \"@orderly.network/ui-positions\";\nimport { DataListTabType, useDataListScript } from \"./dataList.script\";\nimport { DataList } from \"./dataList.ui\";\n\nexport const DataListWidget: React.FC<\n { current?: DataListTabType } & PositionsProps\n> = (props) => {\n const state = useDataListScript(props);\n return <DataList {...state} />;\n};\n","export { DataList } from \"./dataList.ui\";\nexport { DataListWidget } from \"./dataList.widget\";\n","import React, { FC, ReactNode } from \"react\";\nimport { Box, cn, Grid, ListView, Text } from \"@orderly.network/ui\";\nimport { LastTradesState } from \"./lastTrades.script\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const LastTrades: FC<\n LastTradesState & {\n classNames?: {\n root?: string;\n list?: string;\n listHeader?: string;\n listItem?: {\n left?: string;\n mid?: string;\n right?: string;\n };\n };\n style?: React.CSSProperties;\n }\n> = (props) => {\n return (\n <Box\n className={cn(\n \"oui-grid oui-grid-rows=[auto,1fr] oui-h-full oui-w-full\",\n props.classNames?.root\n )}\n style={props.style}\n >\n <Box className=\"oui-pr-1\">\n <Header\n base={props.base}\n quote={props.quote}\n className={props.classNames?.listHeader}\n />\n </Box>\n <List\n data={props.data}\n isLoading={props.isLoading}\n baseDp={props.baseDp}\n quoteDp={props.quoteDp}\n classNames={props.classNames?.listItem}\n className={props.classNames?.list}\n />\n </Box>\n );\n};\n\nconst Row = (props: {\n key?: React.Key | null;\n classNames?: {\n root?: string;\n left?: string;\n mid?: string;\n right?: string;\n };\n left: ReactNode | string;\n mid: ReactNode | string;\n right: ReactNode | string;\n}) => {\n const { left, mid, right, classNames } = props;\n return (\n // <Flex\n // key={key}\n // height={20}\n // gap={2}\n // width={\"100%\"}\n // className={cn(\"oui-text-xs oui-tabular-nums\", classNames?.root)}\n // >\n // <Box className={cn(\"oui-flex-1\", classNames?.left)}>{left}</Box>\n // <Box className={cn(\"oui-flex-1\", classNames?.mid)}>{mid}</Box>\n // <Box className={cn(\"oui-flex-1 oui-text-right\", classNames?.right)}>\n // {right}\n // </Box>\n // </Flex>\n\n <Grid\n cols={3}\n gapX={2}\n width=\"100%\"\n className={cn(\"oui-text-xs oui-tabular-nums\", classNames?.root)}\n >\n <div className={cn(\"oui-flex-1\", classNames?.left)}>{left}</div>\n <div className={cn(\"oui-flex-1\", classNames?.mid)}>{mid}</div>\n <div className={cn(\"oui-flex-1 oui-text-right\", classNames?.right)}>\n {right}\n </div>\n </Grid>\n );\n};\n\nconst Header = (props: { base: string; quote: string; className?: string }) => {\n const { t } = useTranslation();\n return (\n <Row\n left={t(\"common.time\")}\n mid={`${t(\"common.price\")}(${props.quote})`}\n right={`${t(\"common.qty\")}(${props.base})`}\n classNames={{\n root: cn(\n \"oui-text-base-contrast-54 oui-h-[32px] oui-sticky\",\n props.className\n ),\n }}\n />\n );\n};\n\nconst List = (props: {\n data?: any[];\n isLoading?: boolean;\n baseDp: number;\n quoteDp: number;\n classNames?: {\n left?: string;\n mid?: string;\n right?: string;\n };\n className?: string;\n}) => {\n return (\n <ListView\n dataSource={props.data}\n className={cn(\n \"oui-last-trades-list\",\n \"oui-w-full oui-h-full\",\n props.className,\n \"oui-overflow-auto\"\n )}\n contentClassName=\"!oui-space-y-0 oui-pr-[-4px]\"\n renderItem={(item, index) => {\n return (\n <Row\n key={index}\n left={\n <Text.formatted rule={\"date\"} formatString=\"HH:mm:ss\">\n {item?.ts}\n </Text.formatted>\n }\n mid={commifyOptional(item?.price, { fix: props.quoteDp })}\n right={commifyOptional(item?.size, { fix: props.baseDp })}\n classNames={{\n left: cn(\"oui-text-base-contrast-80\", props.classNames?.left),\n right: cn(\n item.side === OrderSide.BUY\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\",\n props.classNames?.mid\n ),\n mid: cn(\n item.side === OrderSide.BUY\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\",\n props.classNames?.right\n ),\n }}\n />\n );\n }}\n />\n );\n};\n","import { useMarketTradeStream, useSymbolsInfo } from \"@orderly.network/hooks\";\n\nexport const useLastTradesScript = (symbol: string) => {\n const { data, isLoading } = useMarketTradeStream(symbol);\n // const { quote, quote_dp, base, base_dp } = useContext(SymbolContext);\n const config = useSymbolsInfo()?.[symbol];\n const base = config?.(\"base\");\n const quote = config?.(\"quote\");\n const baseDp = config?.(\"base_dp\");\n const quoteDp = config?.(\"quote_dp\");\n// console.log(\"base, quote\", base, quote, \"baseDp, quoteDp\", baseDp, quoteDp);\n\n return {\n base,\n quote,\n data,\n isLoading,\n baseDp,\n quoteDp,\n };\n};\n\nexport type LastTradesState = ReturnType<typeof useLastTradesScript>;\n","import React from \"react\";\nimport { useLastTradesScript } from \"./lastTrades.script\";\nimport { LastTrades } from \"./lastTrades.ui\";\n\nexport const LastTradesWidget: React.FC<{\n symbol: string;\n classNames?: {\n root?: string;\n list?: string;\n listHeader?: string;\n listItem?: { left?: string; mid?: string; right?: string };\n };\n style?: React.CSSProperties;\n}> = (props) => {\n const state = useLastTradesScript(props.symbol);\n return (\n <LastTrades {...state} classNames={props.classNames} style={props.style} />\n );\n};\n","export { LastTrades } from \"./lastTrades.ui\";\nexport { LastTradesWidget } from \"./lastTrades.widget\";\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Button } from \"@orderly.network/ui\";\nimport { FaucetState } from \"./faucet.script\";\n\nexport function FaucetUi(props: FaucetState) {\n const { t } = useTranslation();\n\n if (!props.showFaucet) {\n return null;\n }\n\n return (\n <Button\n variant=\"outlined\"\n fullWidth\n size=\"md\"\n onClick={props.getFaucet}\n loading={props.loading}\n className=\"oui-text-primary-light oui-border-primary-light oui-rounded\"\n data-testid=\"oui-testid-assetView-getFaucet-button\"\n >\n {t(\"trading.faucet.getTestUSDC\")}\n </Button>\n );\n}\n","import { useMemo, useState } from \"react\";\nimport {\n useAccount,\n useConfig,\n useMutation,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { AccountStatusEnum, ChainNamespace } from \"@orderly.network/types\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport function useFaucetScript() {\n const { t } = useTranslation();\n const { connectedChain, namespace } = useWalletConnector();\n const { state, account } = useAccount();\n const config = useConfig();\n const operatorUrl = config.get<string>(\"operatorUrl\");\n\n const [getTestUSDC, { isMutating }] = useMutation(\n `${operatorUrl}/v1/faucet/usdc`\n );\n const [loading, setLoading] = useState<boolean>(false);\n\n const showFaucet = useMemo(() => {\n if (!connectedChain || !connectedChain.id) {\n return false;\n }\n return (\n (state.status === AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected) &&\n isTestnet(parseInt(connectedChain.id as string))\n );\n }, [state, connectedChain]);\n\n const getFaucet = () => {\n if (loading) {\n return;\n }\n setLoading(true);\n const message = t(\"trading.faucet.getTestUSDC.success\", {\n quantity: namespace === ChainNamespace.solana ? \"100\" : \"1,000\",\n });\n\n return getTestUSDC({\n chain_id: account.walletAdapter?.chainId.toString(),\n user_address: state.address,\n broker_id: config.get(\"brokerId\"),\n }).then(\n (res) => {\n setLoading(false);\n if (res.success) {\n return modal.alert({\n title: t(\"trading.faucet.getTestUSDC\"),\n message,\n onOk: () => {\n return new Promise((resolve) => resolve(true));\n },\n });\n }\n res.message && toast.error(res.message);\n },\n (error: Error) => {\n toast.error(error.message);\n }\n );\n };\n return { getFaucet, showFaucet, loading };\n}\n\nexport type FaucetState = ReturnType<typeof useFaucetScript>;\n","import { FaucetUi } from \"./faucet.ui\";\nimport { useFaucetScript } from \"./faucet.script\";\n\nexport function FaucetWidget() {\n const state = useFaucetScript();\n return (\n <FaucetUi {...state}/>\n )\n}","import { FC, useMemo, useState, useCallback, ReactNode } from \"react\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Flex,\n Text,\n Box,\n Button,\n ArrowDownShortIcon,\n EyeIcon,\n EyeCloseIcon,\n ChevronDownIcon,\n Tooltip,\n Divider,\n gradientTextVariants,\n cn,\n} from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { LTVRiskTooltipWidget } from \"@orderly.network/ui-order-entry\";\nimport { AssetViewState } from \"./assetView.script\";\nimport { FaucetWidget } from \"./faucet/faucet.widget\";\n\ninterface StatusInfo {\n title: string;\n description: string;\n titleColor?: any;\n titleClsName?: string;\n}\n\ninterface TooltipContentProps {\n description: ReactNode;\n formula: ReactNode;\n}\n\ninterface TotalValueProps {\n totalValue?: number;\n visible?: boolean;\n onToggleVisibility?: () => void;\n}\n\ninterface AssetDetailProps {\n label: string;\n description?: ReactNode;\n formula?: ReactNode;\n visible: boolean;\n value?: number | string;\n unit?: string;\n rule?: \"percentages\";\n isConnected?: boolean;\n showPercentage?: boolean;\n placeholder?: string;\n}\n\ninterface AssetValueListProps {\n visible?: boolean;\n freeCollateral?: number | null;\n marginRatioVal?: number;\n renderMMR?: string | number;\n maintenanceMargin?: number;\n currentLeverage?: number;\n isConnected: boolean;\n currentLtv?: string | number;\n}\n\nconst calculateTextColor = (val: number): string => {\n if (val >= 0 && val < 50) {\n return \"oui-text-success\";\n } else if (val >= 50 && val < 80) {\n return \"oui-text-warning\";\n } else if (val >= 80) {\n return \"oui-text-danger\";\n } else {\n return \"\";\n }\n};\n\nconst useCurrentStatusText = (): StatusInfo => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { t } = useTranslation();\n\n return useMemo(() => {\n const statusText = {\n wrongNetwork: {\n title: t(\"connector.wrongNetwork\"),\n description: t(\"connector.wrongNetwork.tooltip\"),\n titleColor: \"warning\",\n },\n connectWallet: {\n title: t(\"connector.connectWallet\"),\n description: t(\"connector.trade.connectWallet.tooltip\"),\n titleClsName:\n \"oui-text-transparent oui-bg-clip-text oui-gradient-brand\",\n },\n createAccount: {\n title: t(\"connector.createAccount\"),\n description: t(\"connector.trade.createAccount.tooltip\"),\n titleColor: \"primary\",\n },\n enableTrading: {\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.trade.enableTrading.tooltip\"),\n titleColor: \"primary\",\n },\n empty: {\n title: \"\",\n description: \"\",\n },\n };\n\n if (disabledConnect) {\n return statusText.connectWallet;\n }\n\n if (wrongNetwork) {\n return statusText.wrongNetwork;\n }\n\n // EnableTradingWithoutConnected is enabled trading status, so we don't need to show anything\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return statusText.empty;\n }\n\n if (state.status <= AccountStatusEnum.NotConnected) {\n return statusText.connectWallet;\n }\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return statusText.createAccount;\n }\n\n if (state.status < AccountStatusEnum.EnableTrading) {\n return statusText.enableTrading;\n }\n\n return statusText.empty;\n }, [t, state.status, wrongNetwork, disabledConnect]);\n};\n\nexport const TooltipContent: FC<TooltipContentProps> = (props) => {\n const { description, formula } = props;\n return (\n <div className=\"oui-min-w-[204px] oui-max-w-[240px] oui-text-2xs oui-leading-normal oui-text-base-contrast-80\">\n {typeof description !== \"undefined\" && description !== null && (\n <span>{description}</span>\n )}\n <Divider className=\"oui-border-white/10\" my={2} />\n {typeof formula !== \"undefined\" && formula !== null && (\n <span>{formula}</span>\n )}\n </div>\n );\n};\n\nconst TotalValue: FC<TotalValueProps> = (props) => {\n const { t } = useTranslation();\n const { totalValue, visible = true, onToggleVisibility } = props;\n return (\n <Flex\n direction=\"column\"\n gap={1}\n className=\"oui-text-2xs\"\n itemAlign=\"center\"\n >\n <Text.numeral\n visible={visible}\n weight=\"bold\"\n size=\"2xl\"\n className={gradientTextVariants({ color: \"brand\" })}\n as=\"div\"\n padding={false}\n dp={2}\n >\n {totalValue ?? \"--\"}\n </Text.numeral>\n <Flex gap={1} itemAlign=\"center\">\n <Text size=\"2xs\" color=\"neutral\" weight=\"semibold\">\n {`${t(\"trading.asset.myAssets\")} (USDC)`}\n </Text>\n <button onClick={onToggleVisibility}>\n {visible ? (\n <EyeIcon size={18} className=\"oui-text-base-contrast-54\" />\n ) : (\n <EyeCloseIcon size={18} className=\"oui-text-base-contrast-54\" />\n )}\n </button>\n </Flex>\n </Flex>\n );\n};\n\nconst AssetDetail: FC<AssetDetailProps> = (props) => {\n const {\n label,\n description,\n formula,\n visible,\n value,\n unit,\n rule,\n placeholder,\n } = props;\n return (\n <Flex justify=\"between\">\n <Tooltip\n className={\"\"}\n content={<TooltipContent description={description} formula={formula} />}\n >\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className=\"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\"\n >\n {label}\n </Text>\n </Tooltip>\n <Text.numeral\n visible={visible}\n size=\"2xs\"\n unit={unit}\n unitClassName=\"oui-text-base-contrast-36 oui-ml-0.5\"\n as=\"div\"\n rule={rule}\n padding={false}\n dp={2}\n // suffix={value && unit}\n placeholder={placeholder}\n >\n {value || \"--\"}\n </Text.numeral>\n </Flex>\n );\n};\n\nconst LTVDetail: FC<Pick<AssetDetailProps, \"value\" | \"visible\">> = (props) => {\n const { visible, value } = props;\n const { t } = useTranslation();\n return (\n <Flex justify=\"between\">\n <Tooltip\n className={cn(\"oui-bg-base-6 oui-p-2\")}\n content={<LTVRiskTooltipWidget />}\n >\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className=\"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\"\n >\n {t(\"transfer.LTV\")}\n </Text>\n </Tooltip>\n <Text\n size=\"2xs\"\n className={cn(\n \"select-none\",\n visible && calculateTextColor(Number(value)),\n )}\n >\n {visible ? `${value}%` : \"*****\"}\n </Text>\n </Flex>\n );\n};\n\nconst AssetValueList: FC<AssetValueListProps> = (props) => {\n const {\n visible = true,\n freeCollateral,\n marginRatioVal,\n renderMMR,\n maintenanceMargin,\n currentLeverage,\n isConnected,\n currentLtv,\n } = props;\n\n const [optionsOpen, setOptionsOpen] = useLocalStorage(\n \"orderly_entry_asset_list_open\",\n false,\n );\n const [open, setOpen] = useState<boolean>(optionsOpen);\n\n const { t } = useTranslation();\n\n const toggleOpen = useCallback(() => {\n setOpen((prevOpen) => !prevOpen);\n setTimeout(() => {\n setOptionsOpen(!open);\n }, 0);\n }, []);\n\n const showLTV =\n typeof currentLtv === \"number\" &&\n !Number.isNaN(currentLtv) &&\n currentLtv > 0;\n\n return (\n <Box className=\"oui-group\">\n <Flex\n justify=\"center\"\n gap={1}\n itemAlign=\"center\"\n className=\"oui-cursor-pointer\"\n onClick={toggleOpen}\n >\n <Divider className=\"oui-flex-1\" />\n <ChevronDownIcon\n size={12}\n color=\"white\"\n className={cn(\"oui-transition-transform\", open && \"oui-rotate-180\")}\n />\n <Divider className=\"oui-flex-1\" />\n </Flex>\n <Box\n style={{ transform: \"translateZ(0)\" }}\n className={cn(\n \"oui-select-none oui-space-y-1.5 oui-overflow-hidden\",\n \"oui-transition-[max-height] oui-duration-150\",\n \"group-hover:oui-will-change-[max-height]\",\n open\n ? showLTV\n ? \"oui-max-h-[144px]\"\n : \"oui-max-h-[119px]\"\n : \"oui-max-h-0\",\n )}\n >\n <AssetDetail\n label={t(\"trading.asset.freeCollateral\")}\n description={t(\"trading.asset.freeCollateral.tooltip\")}\n formula={t(\"trading.asset.freeCollateral.formula\")}\n visible={visible}\n // TODO: change AssetDetail value\n value={freeCollateral! === 0 ? (\"0\" as any) : freeCollateral}\n unit=\"USDC\"\n />\n <AssetDetail\n label={t(\"trading.asset.marginRatio\")}\n description={t(\"trading.asset.marginRatio.tooltip\")}\n formula={t(\"trading.asset.marginRatio.formula\")}\n visible={visible}\n value={marginRatioVal}\n isConnected={isConnected}\n rule=\"percentages\"\n showPercentage={true}\n placeholder=\"--%\"\n />\n <AssetDetail\n label={t(\"trading.asset.maintenanceMarginRatio\")}\n description={t(\"trading.asset.maintenanceMarginRatio.tooltip\")}\n formula={t(\"trading.asset.maintenanceMarginRatio.formula\")}\n visible={visible}\n value={renderMMR}\n rule=\"percentages\"\n showPercentage={true}\n placeholder=\"--%\"\n />\n <AssetDetail\n label={t(\"trading.asset.maintenanceMargin\")}\n description={t(\"trading.asset.maintenanceMargin.tooltip\")}\n formula={t(\"trading.asset.maintenanceMargin.formula\")}\n visible={visible}\n value={maintenanceMargin}\n unit=\"USDC\"\n />\n <AssetDetail\n label={t(\"trading.asset.currentLeverage\")}\n description={t(\"trading.asset.currentLeverage.tooltip\")}\n formula={t(\"trading.asset.currentLeverage.formula\")}\n visible={visible}\n value={currentLeverage}\n unit=\"x\"\n />\n {showLTV && <LTVDetail visible={visible} value={currentLtv} />}\n </Box>\n </Box>\n );\n};\n\nexport const AssetView: FC<\n AssetViewState & { isFirstTimeDeposit?: boolean }\n> = ({\n networkId,\n isFirstTimeDeposit,\n totalValue,\n onDeposit,\n onWithdraw,\n onTransfer,\n toggleVisible,\n visible,\n freeCollateral,\n marginRatioVal,\n renderMMR,\n maintenanceMargin,\n currentLeverage,\n isConnected,\n isMainAccount,\n hasSubAccount,\n currentLtv,\n}) => {\n const { title, description, titleColor, titleClsName } =\n useCurrentStatusText();\n\n const { t } = useTranslation();\n\n const transferButton = hasSubAccount && (\n <Button\n fullWidth\n color=\"secondary\"\n size=\"md\"\n onClick={onTransfer}\n data-testid=\"oui-testid-assetView-transfer-button\"\n >\n <Text>{t(\"common.transfer\")}</Text>\n </Button>\n );\n\n const depositButton = isMainAccount && (\n <Button\n data-testid=\"oui-testid-assetView-deposit-button\"\n fullWidth\n size=\"md\"\n onClick={onDeposit}\n >\n {!hasSubAccount && (\n <ArrowDownShortIcon opacity={1} className=\"oui-text-primary-contrast\" />\n )}\n <Text>{t(\"common.deposit\")}</Text>\n </Button>\n );\n\n const withdrawButton = isMainAccount && (\n <Button\n fullWidth\n color=\"secondary\"\n size=\"md\"\n onClick={onWithdraw}\n data-testid=\"oui-testid-assetView-withdraw-button\"\n >\n {!hasSubAccount && (\n <ArrowDownShortIcon\n color=\"white\"\n opacity={1}\n className=\"oui-rotate-180\"\n />\n )}\n <Text>{t(\"common.withdraw\")}</Text>\n </Button>\n );\n\n return (\n <Box className=\"oui-relative\">\n {title && description && (\n <Flex direction=\"column\" gap={1} className=\"oui-mb-[32px]\">\n <Text\n size=\"lg\"\n weight=\"bold\"\n color={titleColor || \"inherit\"}\n className={titleClsName}\n >\n {title}\n </Text>\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className=\"oui-text-center\"\n >\n {description}\n </Text>\n </Flex>\n )}\n <AuthGuard\n networkId={networkId}\n buttonProps={{ size: \"md\", fullWidth: true }}\n >\n {isFirstTimeDeposit && isMainAccount ? (\n <>\n <Box>\n <Flex direction=\"column\" gap={1} className=\"oui-mb-[32px]\">\n <Text.gradient size=\"lg\" weight=\"bold\" color=\"brand\">\n {t(\"trading.asset.startTrading\")}\n </Text.gradient>\n <Text size=\"2xs\" color=\"neutral\" weight=\"semibold\">\n {t(\"trading.asset.startTrading.description\")}\n </Text>\n </Flex>\n </Box>\n <Button\n data-testid=\"oui-testid-assetView-deposit-button\"\n fullWidth\n size=\"md\"\n onClick={onDeposit}\n >\n <ArrowDownShortIcon\n opacity={1}\n className=\"oui-text-primary-contrast\"\n />\n <Text>{t(\"common.deposit\")}</Text>\n </Button>\n\n <Box className=\"oui-mt-3\">\n <FaucetWidget />\n </Box>\n </>\n ) : (\n <Box className=\"oui-space-y-4\">\n <TotalValue\n totalValue={totalValue}\n visible={visible}\n onToggleVisibility={toggleVisible}\n />\n <AssetValueList\n visible={visible}\n freeCollateral={freeCollateral}\n marginRatioVal={marginRatioVal}\n renderMMR={renderMMR}\n maintenanceMargin={maintenanceMargin}\n currentLeverage={currentLeverage}\n isConnected={isConnected}\n currentLtv={currentLtv}\n />\n <Flex\n gap={isMainAccount ? (hasSubAccount ? 2 : 3) : 0}\n itemAlign=\"center\"\n >\n {isMainAccount ? (\n <>\n {depositButton}\n {transferButton}\n {withdrawButton}\n </>\n ) : (\n transferButton\n )}\n </Flex>\n {isMainAccount && <FaucetWidget />}\n </Box>\n )}\n </AuthGuard>\n <div\n className={cn(\n \"oui-absolute oui-inset-0 oui-rotate-180\",\n \"oui-pointer-events-none oui-rounded-2xl oui-blur-[200px]\",\n )}\n style={{\n background:\n \"conic-gradient(from -40.91deg at 40.63% 50.41%, rgba(159, 115, 241, 0) -48.92deg, rgba(242, 98, 181, 0) 125.18deg, #5FC5FF 193.41deg, #FFAC89 216.02deg, #8155FF 236.07deg, #789DFF 259.95deg, rgba(159, 115, 241, 0) 311.08deg, rgba(242, 98, 181, 0) 485.18deg)\",\n }}\n />\n </Box>\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport {\n useAccountInstance,\n useEventEmitter,\n useLocalStorage,\n useAccount,\n useConfig,\n useCollateral,\n useMarginRatio,\n usePositionStream,\n useComputedLTV,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum, NetworkId } from \"@orderly.network/types\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport {\n DepositAndWithdrawWithDialogId,\n TransferDialogId,\n} from \"@orderly.network/ui-transfer\";\n\nexport const useAssetViewScript = () => {\n const { t } = useTranslation();\n const account = useAccountInstance();\n const ee = useEventEmitter();\n\n const { totalValue } = useCollateral({\n dp: 2,\n });\n\n const networkId = useConfig(\"networkId\") as NetworkId;\n const { state, isMainAccount } = useAccount();\n const { freeCollateral } = useCollateral({\n dp: 2,\n });\n const { marginRatio, mmr, maintenanceMargin, currentLeverage } =\n useMarginRatio();\n const isConnected = state.status >= AccountStatusEnum.Connected;\n const [{ aggregated }, positionsInfo] = usePositionStream();\n const marginRatioVal = useMemo(() => {\n return Math.min(\n 10,\n aggregated.notional === 0\n ? positionsInfo[\"margin_ratio\"](10)!\n : marginRatio,\n );\n }, [marginRatio, aggregated]);\n\n // const renderMMR = useMemo(() => {\n // if (!mmr) {\n // return \"\";\n // }\n // const bigMMR = new Decimal(mmr);\n // return bigMMR.mul(100).todp(2, 0).toFixed(2);\n // }, [mmr]);\n\n const openDepositAndWithdraw = useCallback(\n (viewName: \"deposit\" | \"withdraw\") => {\n // desktop always show dialog\n return modal.show(DepositAndWithdrawWithDialogId, {\n activeTab: viewName,\n });\n },\n [],\n );\n\n const onDeposit = useCallback(async () => {\n return openDepositAndWithdraw(\"deposit\");\n }, []);\n\n const onWithdraw = useCallback(async () => {\n return openDepositAndWithdraw(\"withdraw\");\n }, []);\n\n const onTransfer = useCallback(async () => {\n return modal.show(TransferDialogId);\n }, []);\n\n const onSettle = useCallback(async () => {\n return account\n .settle()\n .catch((e) => {\n if (e.code === -1104) {\n toast.error(t(\"settle.settlement.error\"));\n return Promise.reject(e);\n }\n if (\n e.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: e.message,\n userAddress: account.address,\n });\n }\n })\n .then((res) => {\n toast.success(t(\"settle.settlement.requested\"));\n return Promise.resolve(res);\n });\n }, [account, t]);\n\n const [visible, setVisible] = useLocalStorage<boolean>(\n \"orderly_assets_visible\",\n true,\n );\n\n const toggleVisible = useCallback(() => {\n // @ts-ignore\n setVisible((visible: boolean) => {\n return !visible;\n });\n }, [visible]);\n\n const currentLtv = useComputedLTV();\n const _freeCollateral = useDataTap(freeCollateral) ?? undefined;\n const _marginRatioVal = useDataTap(marginRatioVal) ?? undefined;\n const _mmr = useDataTap(mmr) ?? undefined;\n const _maintenanceMargin = useDataTap(maintenanceMargin) ?? undefined;\n const _currentLeverage = useDataTap(currentLeverage) ?? undefined;\n const _totalValue = useDataTap(totalValue) ?? undefined;\n\n return {\n onDeposit,\n onWithdraw,\n onTransfer,\n onSettle,\n visible,\n toggleVisible,\n networkId,\n totalValue: _totalValue,\n status: state.status,\n freeCollateral: _freeCollateral,\n marginRatioVal: _marginRatioVal,\n renderMMR: _mmr,\n maintenanceMargin: _maintenanceMargin,\n currentLeverage: _currentLeverage,\n isConnected,\n isMainAccount,\n hasSubAccount: !!state.subAccounts?.length,\n currentLtv,\n };\n};\n\nexport type AssetViewState = ReturnType<typeof useAssetViewScript>;\n","import React from \"react\";\nimport { useAssetViewScript } from \"./assetView.script\";\nimport { AssetView } from \"./assetView.ui\";\n\ntype AssetViewWidgetProps = {\n isFirstTimeDeposit?: boolean;\n};\n\nexport const AssetViewWidget: React.FC<AssetViewWidgetProps> = (props) => {\n const state = useAssetViewScript();\n return <AssetView {...state} isFirstTimeDeposit={props.isFirstTimeDeposit} />;\n};\n","export { AssetView } from \"./assetView.ui\";\nexport { AssetViewWidget } from \"./assetView.widget\";\n","import React, {\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { QtyMode, TotalMode } from \"./types\";\n\nexport interface OrderBookContextValue {\n cellHeight: number;\n mode: QtyMode;\n depth?: string;\n onModeChange?: (mode: QtyMode) => void;\n onItemClick?: (item: number[]) => void;\n showTotal: boolean;\n totalMode: TotalMode;\n pendingOrders: ReadonlyArray<number> | number[];\n onTotalModeChange?: (mode: TotalMode) => void;\n symbolInfo: BasicSymbolInfo;\n showBuySellRatio: boolean;\n onShowBuySellRatioChange?: (show: boolean) => void;\n}\n\nexport const OrderBookContext = createContext({\n cellHeight: 22,\n} as OrderBookContextValue);\n\nexport const useOrderBookContext = () => useContext(OrderBookContext);\n\nexport const ORDERBOOK_COIN_TYPE_KEY = \"orderbook_coin_type\";\n\nexport const ORDERBOOK_MOBILE_COIN_TYPE_KEY = \"orderbook_mobile_coin_unit\";\n\ninterface OrderBookProviderProps {\n cellHeight: number;\n depth?: string;\n showTotal: boolean;\n pendingOrders: ReadonlyArray<number> | number[];\n onItemClick?: (item: number[]) => void;\n symbolInfo: BasicSymbolInfo;\n showBuySellRatio?: boolean;\n onShowBuySellRatioChange?: (show: boolean) => void;\n}\n\nexport const OrderBookProvider: FC<\n PropsWithChildren<OrderBookProviderProps>\n> = (props) => {\n const [mode, setMode] = useState<QtyMode>(\"quantity\");\n const [totalMode, setTotalMode] = useState<QtyMode>(\"quantity\");\n const memoizedValue = React.useMemo<OrderBookContextValue>(() => {\n return {\n cellHeight: props.cellHeight,\n onItemClick: props.onItemClick,\n mode,\n totalMode: totalMode || \"quantity\",\n depth: props.depth,\n onModeChange: setMode,\n onTotalModeChange: setTotalMode,\n showTotal: props.showTotal || false,\n pendingOrders: props.pendingOrders,\n symbolInfo: props.symbolInfo,\n showBuySellRatio: props.showBuySellRatio ?? true,\n onShowBuySellRatioChange: props.onShowBuySellRatioChange,\n };\n }, [\n mode,\n props.cellHeight,\n props.depth,\n props.onItemClick,\n props.pendingOrders,\n props.showTotal,\n props.symbolInfo,\n props.showBuySellRatio,\n props.onShowBuySellRatioChange,\n totalMode,\n ]);\n return (\n <OrderBookContext.Provider value={memoizedValue}>\n {props.children}\n </OrderBookContext.Provider>\n );\n};\n","export type QtyMode = \"quantity\" | \"amount\";\nexport type TotalMode = \"quantity\" | \"amount\";\n\nexport enum OrderBookCellType {\n BID = \"bid\",\n ASK = \"ask\",\n}\n","import { cn } from \"@orderly.network/ui\";\nimport { FC, useMemo } from \"react\";\n\nexport enum CellBarDirection {\n LEFT_TO_RIGHT,\n RIGHT_TO_LEFT,\n}\n\ninterface CellBarProps {\n width: number;\n className?: string;\n direction?: CellBarDirection\n}\n\nexport const CellBar: FC<CellBarProps> = (props) => {\n const { direction = CellBarDirection.RIGHT_TO_LEFT } = props;\n const transform = useMemo(() => {\n const x = Math.max(props.width, 0);\n if (direction === CellBarDirection.LEFT_TO_RIGHT) {\n return { transform: `translateX(${x}%)` };\n }\n return { transform: `translateX(-${x}%)` };\n \n }, [props.width]);\n\n return (\n <div\n className={cn(\n \"oui-absolute oui-right-[-100%] oui-top-0 oui-h-full oui-w-full oui-transition-transform oui-pointer-events-none\",\n direction === CellBarDirection.LEFT_TO_RIGHT && \"oui-left-[-100%]\",\n props.className\n )}\n style={transform}\n />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { cn, Divider, parseNumber, Text } from \"@orderly.network/ui\";\nimport { getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { CellBar, CellBarDirection } from \"../../base/orderBook/cellBar\";\nimport {\n ORDERBOOK_COIN_TYPE_KEY,\n useOrderBookContext,\n} from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\n\nexport interface DesktopOrderBookCellProps {\n background: string;\n maxQty: number;\n price: number;\n quantity: number;\n // size: number;\n count: number;\n accumulated: number;\n accumulatedAmount: number;\n type: OrderBookCellType;\n symbolInfo: BasicSymbolInfo;\n base: string;\n quote: string;\n isHover: boolean;\n currentHover: boolean;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n}\n\nexport const DesktopOrderBookCell: FC<DesktopOrderBookCellProps> = (props) => {\n const { cellHeight, showTotal, onItemClick, depth, pendingOrders } =\n useOrderBookContext();\n const {\n symbolInfo,\n currentHover,\n accumulated,\n accumulatedAmount,\n count,\n price,\n quantity,\n base,\n quote,\n } = props;\n\n const { base_dp, quote_dp } = symbolInfo;\n\n const [coinType] = useLocalStorage<string>(ORDERBOOK_COIN_TYPE_KEY, base);\n\n const width = Number.isNaN(price) ? 0 : (accumulated / count) * 100;\n\n const dp = useMemo(() => {\n return getPrecisionByNumber(depth || `${quote_dp}`);\n }, [depth, quote_dp]);\n\n const totalAmount = Number.isNaN(accumulated)\n ? \"-\"\n : accumulatedAmount?.toString();\n\n const isPendingOrder = useMemo(() => {\n const priceStr = parseNumber(price, { dp: dp, padding: true });\n return pendingOrders.some(\n (item) => priceStr === parseNumber(item, { dp: dp, padding: true }),\n );\n }, [pendingOrders, price, dp]);\n\n return (\n <div\n className=\"oui-relative oui-flex oui-cursor-pointer oui-flex-row oui-justify-between oui-pl-3 oui-text-xs oui-tabular-nums oui-text-base-contrast-80\"\n style={{ height: `${cellHeight}px` }}\n onClick={() => {\n if (Number.isNaN(price) || Number.isNaN(quantity)) {\n return;\n }\n onItemClick?.([price, quantity]);\n }}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <div\n className={cn(\n \"oui-mr-2 oui-flex oui-basis-7/12 oui-flex-row oui-items-center\",\n showTotal && \"oui-basis-5/12\",\n )}\n >\n <div\n className={cn(\n \"oui-flex-1 oui-text-left\",\n props.type === OrderBookCellType.ASK\n ? \"oui-text-trade-loss\"\n : \"oui-text-trade-profit\",\n )}\n >\n <Text.numeral dp={dp}>{price}</Text.numeral>\n </div>\n <div className=\"oui-flex-1 oui-text-right oui-text-base-contrast-80\">\n <Text.numeral dp={base_dp}>{quantity}</Text.numeral>\n </div>\n </div>\n <div\n className={cn(\n \"oui-fex-row oui-relative oui-flex oui-basis-5/12 oui-items-center oui-justify-end oui-overflow-hidden\",\n showTotal && \"oui-basis-7/12\",\n )}\n >\n {showTotal ? (\n <>\n <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n <Text.numeral dp={base_dp} className=\"oui-z-10\">\n {accumulated}\n </Text.numeral>\n </div>\n <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n <Text.numeral dp={0} className=\"oui-z-10\">\n {totalAmount}\n </Text.numeral>\n </div>\n </>\n ) : (\n <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n {coinType === base && (\n <Text.numeral dp={base_dp} className=\"oui-z-10\">\n {accumulated}\n </Text.numeral>\n )}\n {coinType === quote && (\n <Text.numeral dp={0} className=\"oui-z-10\">\n {totalAmount}\n </Text.numeral>\n )}\n </div>\n )}\n <CellBar\n width={width}\n direction={CellBarDirection.LEFT_TO_RIGHT}\n className={\n props.type === OrderBookCellType.ASK\n ? \"oui-bg-trade-loss/10\"\n : \"oui-bg-trade-profit/10\"\n }\n />\n </div>\n\n {isPendingOrder && (\n <div\n className={cn(\n \"oui-pointer-events-none oui-absolute oui-left-[4px] oui-size-[4px] oui-rounded-full\",\n props.type === OrderBookCellType.ASK && \"oui-bg-trade-loss\",\n props.type === OrderBookCellType.BID && \"oui-bg-trade-profit\",\n )}\n style={{ top: `${cellHeight / 2 - 2}px` }}\n />\n )}\n\n {props.isHover && (\n <div className=\"oui-absolute oui-inset-0 oui-bg-white oui-opacity-[.12]\" />\n )}\n {currentHover && (\n <div\n className={cn(\n \"oui-absolute oui-inset-x-0\",\n props.type === OrderBookCellType.ASK && \"oui-top-0\",\n props.type === OrderBookCellType.BID && \"oui-bottom-0\",\n )}\n >\n <Divider\n lineStyle=\"dashed\"\n className={cn(\n \"oui-w-full\",\n props.type === OrderBookCellType.BID && \"oui-border-trade-profit\",\n props.type === OrderBookCellType.ASK && \"oui-border-trade-loss\",\n )}\n />\n </div>\n )}\n </div>\n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n TooltipContent,\n TooltipTrigger,\n Text,\n TooltipRoot,\n TooltipArrow,\n cn,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopOrderBookCell } from \"./cell.desktop\";\n\ninterface DesktopListBoxProps {\n type: OrderBookCellType;\n data: number[][];\n countQty: number;\n}\n\nconst calcHintInfo = (item: number[] | null) => {\n if (!item) {\n return { sumQty: 0, sumQtyAmount: 0, avgPrice: 0 };\n }\n const [, , qty, amount] = item;\n const sumQty = !Number.isNaN(qty) ? qty : 0;\n const sumQtyAmount = !Number.isNaN(amount) ? amount : 0;\n return {\n sumQty: sumQty,\n sumQtyAmount: sumQtyAmount,\n avgPrice:\n sumQtyAmount === 0 || sumQty === 0\n ? 0\n : new Decimal(sumQtyAmount).div(sumQty).toNumber(),\n };\n};\n\nexport const DesktopListBox: React.FC<DesktopListBoxProps> = (props) => {\n const { data, type, countQty } = props;\n const { symbolInfo, depth } = useOrderBookContext();\n\n const findMaxItem = useCallback(() => {\n if (!data?.length) {\n return null;\n }\n if (type === OrderBookCellType.ASK) {\n const index = data.findIndex((item) => !Number.isNaN(item[0]));\n if (index !== -1) {\n return data[index];\n }\n return null;\n } else {\n const len = data.length;\n for (let index = len - 1; index >= 0; index--) {\n const item = data[index];\n if (!Number.isNaN(item[0])) {\n return item;\n }\n }\n return null;\n }\n }, [data, type]);\n\n const priceDp = useMemo(() => {\n if (depth?.toString().includes(\".\")) {\n return depth.toString().split(\".\")[1].length;\n }\n return 0;\n }, [depth]);\n\n const maxQty = useMemo(() => {\n return data.reduce((a, b) => Math.max(a, b[1]), 0);\n }, [data]);\n\n const [hoverIndex, setHoverIndex] = useState<number>(-1);\n\n return (\n <div className=\"oui-order-book-list oui-flex oui-flex-col oui-gap-px\">\n {data.map((item, index) => {\n return (\n <Tip\n key={index}\n index={index}\n item={item}\n countQty={countQty}\n setHoverIndex={setHoverIndex}\n hoverIndex={hoverIndex}\n type={type}\n maxQty={maxQty}\n priceDp={priceDp}\n symbolInfo={symbolInfo}\n findMaxItem={findMaxItem}\n />\n );\n })}\n </div>\n );\n};\n\nconst Tip: React.FC<{\n index: number;\n item: any;\n countQty: number;\n setHoverIndex: any;\n type: OrderBookCellType;\n maxQty: number;\n hoverIndex: number;\n priceDp: number;\n // base: any;\n // quote: any;\n // baseDp: number;\n // quoteDp: number;\n findMaxItem: () => number[] | null;\n symbolInfo: BasicSymbolInfo;\n}> = (props) => {\n const {\n index,\n item,\n setHoverIndex,\n type,\n maxQty,\n hoverIndex,\n priceDp,\n countQty,\n symbolInfo,\n findMaxItem,\n } = props;\n\n const { base, quote, base_dp: baseDp, quote_dp: quoteDp } = symbolInfo;\n const { t } = useTranslation();\n\n const isHover =\n hoverIndex !== -1\n ? type === OrderBookCellType.ASK\n ? index >= hoverIndex\n : index <= hoverIndex\n : false;\n\n const [open, setOpen] = useState(false);\n\n const hintInfo = useMemo(() => {\n const info = calcHintInfo(item);\n return info.avgPrice === 0 ? calcHintInfo(findMaxItem()) : info;\n }, [item, findMaxItem]);\n\n return (\n <TooltipRoot open={open} onOpenChange={setOpen}>\n <TooltipTrigger>\n <DesktopOrderBookCell\n background={\"\"}\n price={item[0]}\n quantity={item[1]}\n accumulated={item[2]}\n count={countQty}\n type={type}\n accumulatedAmount={item[3]}\n maxQty={maxQty}\n isHover={isHover}\n currentHover={hoverIndex === index}\n symbolInfo={symbolInfo}\n base={base}\n quote={quote}\n onMouseEnter={() => {\n setHoverIndex(index);\n setOpen(true);\n }}\n onMouseLeave={() => {\n setHoverIndex(-1);\n setOpen(false);\n }}\n />\n </TooltipTrigger>\n <TooltipContent\n className={cn(\n \"oui-rounded-base oui-flex oui-w-full oui-max-w-[400px] oui-flex-col oui-gap-2 oui-bg-base-6 oui-p-3 oui-text-2xs oui-shadow-md\",\n // type === OrderBookCellType.ASK ? `oui-mb-${30}` : \"oui-mt-0\"\n )}\n align={type === OrderBookCellType.ASK ? \"end\" : \"start\"}\n alignOffset={-25.4}\n side=\"left\"\n sideOffset={2}\n onPointerEnter={(e) => e.preventDefault()}\n >\n <Row\n title={`${t(\"common.avgPrice\")}≈`}\n content={hintInfo.avgPrice}\n // contentDp={priceDp}\n contentDp={quoteDp}\n />\n <Row\n title={`${t(\"trading.orderBook.sum\")} (${base})`}\n content={hintInfo.sumQty}\n contentDp={baseDp}\n />\n <Row\n title={`${t(\"trading.orderBook.sum\")} (${quote})`}\n content={hintInfo.sumQtyAmount}\n contentDp={quoteDp}\n />\n <TooltipArrow\n className=\"oui-fill-base-6\"\n style={{\n transform:\n type === OrderBookCellType.ASK\n ? \"translateX(80%)\"\n : \"translateX(-80%)\",\n }}\n />\n </TooltipContent>\n </TooltipRoot>\n );\n};\n\nconst Row: React.FC<{ title: string; content: number; contentDp: number }> = (\n props,\n) => {\n const { title, content, contentDp } = props;\n return (\n <div className=\"oui-flex oui-flex-row oui-justify-between oui-gap-4\">\n <div className=\"oui-select-none oui-text-base-contrast-36\">{title}</div>\n <div className=\"oui-text-end\">\n <Text.numeral dp={contentDp}>{content}</Text.numeral>\n </div>\n </div>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopListBox } from \"./listBox.desktop\";\n\nexport interface Props {\n data: number[][];\n}\n\nexport const DesktopAsks: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n let max = Number.NaN;\n const len = data.length;\n let index = 0;\n\n while (Number.isNaN(max) && index < len) {\n max = data[index][2];\n index++;\n }\n\n return max;\n }, [data]);\n\n return (\n <DesktopListBox\n type={OrderBookCellType.ASK}\n data={data}\n countQty={countQty}\n />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopListBox } from \"./listBox.desktop\";\n\nexport interface Props {\n data: any[];\n}\n\nexport const DesktopBids: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n let max = Number.NaN;\n // let len = data.length;\n let index = data.length - 1;\n\n while (Number.isNaN(max) && index > 0) {\n max = data[index][2];\n index--;\n }\n\n return max;\n // return data.length > 0 ? data[data.length - 1][2] : 0;\n }, [data]);\n return (\n <DesktopListBox\n type={OrderBookCellType.BID}\n data={data}\n countQty={countQty}\n />\n );\n};\n","import { FC, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Checkbox,\n Flex,\n PopoverContent,\n PopoverRoot,\n PopoverTrigger,\n} from \"@orderly.network/ui\";\n\nexport interface BuySellRatioSettingsProps {\n showBuySellRatio: boolean;\n setShowBuySellRatio?: (show: boolean) => void;\n}\n\nexport const BuySellRatioSettings: FC<BuySellRatioSettingsProps> = ({\n showBuySellRatio,\n setShowBuySellRatio,\n}) => {\n const { t } = useTranslation();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n return (\n <PopoverRoot open={settingsOpen} onOpenChange={setSettingsOpen}>\n <PopoverTrigger asChild>\n <button\n className=\"oui-cursor-pointer oui-text-base-contrast-54 hover:oui-text-base-contrast oui-transition-colors\"\n aria-label={t(\"trading.orderBook.settings\")}\n >\n <MoreIcon />\n </button>\n </PopoverTrigger>\n <PopoverContent align=\"end\" sideOffset={8} className=\"oui-w-[200px] \">\n <Flex itemAlign=\"center\" gap={2}>\n <Checkbox\n id=\"show-buy-sell-ratio\"\n checked={showBuySellRatio}\n onCheckedChange={(checked) => {\n setShowBuySellRatio?.(checked === true);\n setSettingsOpen(false);\n }}\n />\n <label\n htmlFor=\"show-buy-sell-ratio\"\n className=\"oui-cursor-pointer oui-text-xs oui-text-base-contrast-54\"\n >\n {t(\"trading.orderBook.showBuySellRatio\")}\n </label>\n </Flex>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nconst MoreIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M8.00521 6.66797C8.74161 6.66797 9.33854 7.26464 9.33854 8.0013C9.33854 8.73797 8.74161 9.33464 8.00521 9.33464C7.26881 9.33464 6.67188 8.73797 6.67188 8.0013C6.67188 7.26464 7.26881 6.66797 8.00521 6.66797Z\" />\n <path d=\"M3.33333 6.66797C4.06973 6.66797 4.66667 7.26464 4.66667 8.0013C4.66667 8.73797 4.06973 9.33464 3.33333 9.33464C2.59693 9.33464 2 8.73797 2 8.0013C2 7.26464 2.59693 6.66797 3.33333 6.66797Z\" />\n <path d=\"M12.6666 6.66797C13.403 6.66797 14 7.26464 14 8.0013C14 8.73797 13.403 9.33464 12.6666 9.33464C11.9302 9.33464 11.3333 8.73797 11.3333 8.0013C11.3333 7.26464 11.9302 6.66797 12.6666 6.66797Z\" />\n </svg>\n);\n","import { Box, Select } from \"@orderly.network/ui\";\nimport { FC, useMemo } from \"react\";\n\ninterface DesktopDepthSelectProps {\n depths: string[];\n value?: string;\n onChange?: (depth: number) => void;\n}\n\nexport const DesktopDepthSelect: FC<DesktopDepthSelectProps> = (props) => {\n const options = useMemo(() => {\n return props.depths.map((d) => ({\n value: d,\n label: `${d}`,\n }));\n }, [props.depths]);\n\n return (\n <Box pl={3} width={97} className=\"oui-py-[10px]\">\n <Select.options\n options={options}\n size={\"xs\"}\n value={props.value}\n onValueChange={(value: any) => {\n props.onChange?.(value);\n }}\n />\n </Box>\n );\n};\n","import React, { FC, ReactNode, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CaretDownIcon,\n CaretUpIcon,\n cn,\n Flex,\n Popover,\n} from \"@orderly.network/ui\";\nimport { optimizeSymbolDisplay } from \"@orderly.network/utils\";\nimport {\n ORDERBOOK_COIN_TYPE_KEY,\n useOrderBookContext,\n} from \"../../base/orderBook/orderContext\";\n\ninterface DesktopHeaderProps {\n quote: string;\n base: string;\n}\n\nconst Option: React.FC<{\n item: string;\n base: string;\n onClick: React.MouseEventHandler<HTMLElement>;\n}> = (props) => {\n const { item, base, onClick } = props;\n const { t } = useTranslation();\n const [coinType, setCoinType] = useLocalStorage(\n ORDERBOOK_COIN_TYPE_KEY,\n base,\n );\n\n const optimizedItem = useMemo(() => {\n return optimizeSymbolDisplay(item);\n }, [item]);\n\n return (\n <Flex\n justify=\"between\"\n itemAlign=\"center\"\n className={cn(\n \"oui-w-full oui-px-2 oui-py-[3px]\",\n \"oui-cursor-pointer\",\n \"oui-text-xs\",\n \"oui-text-base-contrast-54\",\n \"hover:oui-bg-base-6\",\n \"oui-rounded-[3px]\",\n \"oui-transition-all\",\n coinType === item && \"oui-bg-base-5\",\n )}\n onClick={(e) => {\n setCoinType(item);\n onClick(e);\n }}\n >\n <div className=\"oui-overflow-hidden oui-text-ellipsis \">{`${t(\"common.total\")}(${optimizedItem})`}</div>\n <div\n className={cn(\n \"oui-transition-all\",\n \"oui-w-1\",\n \"oui-h-1\",\n \"oui-rounded-full\",\n \"oui-bg-gradient-to-r\",\n coinType === item &&\n \"oui-from-[rgb(var(--oui-gradient-brand-start))] oui-to-[rgb(var(--oui-gradient-brand-end))]\",\n )}\n />\n </Flex>\n );\n};\n\nexport const DesktopHeader: FC<DesktopHeaderProps> = (props) => {\n const { base, quote = \"USDC\" } = props;\n const { showTotal } = useOrderBookContext();\n const { t } = useTranslation();\n const [popoverOpen, setOpen] = React.useState<boolean>(false);\n const [coinType] = useLocalStorage(ORDERBOOK_COIN_TYPE_KEY, base);\n const TriggerIcon = popoverOpen ? CaretUpIcon : CaretDownIcon;\n const optimizedBase = useMemo(() => {\n return optimizeSymbolDisplay(base);\n }, [base]);\n const optimizedCoinType = useMemo(() => {\n return optimizeSymbolDisplay(coinType);\n }, [coinType]);\n return (\n <Flex pl={3} justify={\"between\"} className=\"oui-py-[6px]\">\n <Flex\n gap={1}\n className={cn(\"oui-basis-7/12\", showTotal && \"oui-basis-1/2\")}\n >\n <Box width={\"100%\"}>\n <Title\n id=\"oui-order-book-header-price\"\n className=\"oui-text-base-contrast-36\"\n >\n {`${t(\"common.price\")}(${quote})`}\n </Title>\n </Box>\n <Box width={\"100%\"}>\n <Title\n justifyEnd\n id=\"oui-order-book-header-qty\"\n className=\"oui-text-base-contrast-36\"\n >\n {`${t(\"common.qty\")}(${optimizedBase})`}\n </Title>\n </Box>\n </Flex>\n <Flex\n gap={1}\n pr={3}\n className={cn(\"oui-basis-5/12\", showTotal && \"oui-basis-1/2\")}\n >\n {showTotal ? (\n <>\n <Box className=\"oui-text-base-contrast-36\" width={\"100%\"}>\n <Title id=\"oui-order-book-header-total-quote\" justifyEnd>\n {`${t(\"common.total\")}(${optimizedBase})`}\n </Title>\n </Box>\n <Box className=\"oui-text-base-contrast-36\" width={\"100%\"}>\n <Title justifyEnd id=\"oui-order-book-header-total-base\">\n {`${t(\"common.total\")}(${quote})`}\n </Title>\n </Box>\n </>\n ) : (\n <Box width={\"100%\"}>\n <Popover\n open={popoverOpen}\n onOpenChange={setOpen}\n contentProps={{ className: cn(\"oui-w-28 oui-p-1\") }}\n content={\n <Flex\n direction=\"column\"\n itemAlign=\"start\"\n className={cn(\"oui-w-full oui-gap-0.5\")}\n >\n {[base, quote].map((item) => {\n return (\n <Option\n key={`type-${item}`}\n item={item}\n base={base}\n onClick={() => setOpen(false)}\n />\n );\n })}\n </Flex>\n }\n >\n <Flex\n justify=\"end\"\n itemAlign=\"center\"\n className=\"oui-cursor-pointer oui-select-none oui-text-base-contrast-36 oui-transition-all hover:oui-text-base-contrast\"\n >\n <Title justifyEnd id=\"oui-order-book-header-total-base\">\n {`${t(\"common.total\")}(${optimizedCoinType})`}\n </Title>\n <TriggerIcon\n color=\"inherit\"\n className=\"oui-size-4 oui-text-3xs\"\n />\n </Flex>\n </Popover>\n </Box>\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<{\n justifyEnd?: boolean;\n id?: string;\n children: ReactNode;\n className?: string;\n}> = (props) => {\n const { children, className, justifyEnd = false } = props;\n return (\n <Flex\n id={props.id}\n className={cn(\n className,\n \"oui-items-end oui-text-xs\",\n justifyEnd && \"oui-justify-end\",\n )}\n >\n {children}\n </Flex>\n );\n};\n","import {\n ArrowDownShortIcon,\n ArrowUpShortIcon,\n Box,\n cn,\n Flex,\n Text,\n} from \"@orderly.network/ui\";\nimport { FC } from \"react\";\n\n/**\n * default style is desktop effect\n */\nexport const MiddlePriceView: FC<{\n markPrice: number;\n lastPrice: number[];\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const {\n markPrice = 0,\n lastPrice,\n quote_dp,\n className,\n iconSize = 18,\n } = props;\n\n const [prevLastPrice, middlePrice] = lastPrice;\n\n const down = middlePrice < prevLastPrice;\n const up = middlePrice > prevLastPrice;\n\n return (\n <Flex\n gap={1}\n className={cn(\n up ? \"oui-text-trade-profit\" : down ? \"oui-text-trade-loss\" : \"\",\n className\n )}\n >\n <Text.numeral dp={quote_dp} intensity={98}>\n {middlePrice}\n </Text.numeral>\n <Box width={19}>\n {down && (\n <ArrowDownShortIcon size={iconSize} color=\"danger\" opacity={1} />\n )}\n {up && <ArrowUpShortIcon size={iconSize} color=\"success\" opacity={1} />}\n </Box>\n </Flex>\n );\n};\n","import { FC, useState } from \"react\";\nimport {\n Tooltip,\n cn,\n Flex,\n Text,\n SimpleDialog,\n useScreen,\n} from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\n/**\n * default style is desktop effect\n */\nexport const MarkPriceView: FC<{\n markPrice: number;\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const { isMobile } = useScreen();\n\n return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst DesktopLayout: FC<{\n markPrice: number;\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const { quote_dp, className, iconSize = 18 } = props;\n const { t } = useTranslation();\n return (\n <Tooltip\n content={t(\"trading.orderBook.markPrice.tooltip\")}\n className=\"oui-max-w-[270px]\"\n >\n <Flex\n gap={1}\n className={cn(\"oui-cursor-pointer oui-text-2xs\", className)}\n >\n <FlagIcon size={iconSize} />\n <Text.numeral\n dp={quote_dp}\n color=\"warning\"\n className=\"oui-underline oui-text-base oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-warning-darken\"\n >\n {props.markPrice}\n </Text.numeral>\n </Flex>\n </Tooltip>\n );\n};\n\nconst MobileLayout: FC<{\n markPrice: number;\n quote_dp: number;\n className?: string;\n iconSize?: number;\n}> = (props) => {\n const { quote_dp, className, iconSize = 18 } = props;\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n return (\n <>\n <Flex\n gap={1}\n className={cn(\"oui-cursor-pointer oui-text-2xs\", className)}\n onClick={() => {\n setOpen(true);\n }}\n >\n <FlagIcon size={iconSize} />\n <Text.numeral\n dp={quote_dp}\n color=\"warning\"\n className=\"oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-warning-darken\"\n >\n {props.markPrice}\n </Text.numeral>\n </Flex>\n <SimpleDialog\n size=\"xs\"\n open={open}\n onOpenChange={setOpen}\n title={t(\"common.tips\")}\n actions={{\n primary: {\n label: t(\"common.ok\"),\n onClick: () => setOpen(false),\n },\n }}\n >\n <Text>{t(\"trading.orderBook.markPrice.tooltip\")}</Text>\n </SimpleDialog>\n </>\n );\n};\n\nconst FlagIcon = (props: { size: number }) => {\n return (\n <svg\n width={props.size}\n height={props.size}\n viewBox=\"0 0 18 18\"\n fill=\"currenColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-warning-darken\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.75 1.5a.75.75 0 0 1 .75.75h6a.75.75 0 0 1 .75.75v1.5h3a.75.75 0 0 1 .75.75V12a.75.75 0 0 1-.75.75H7.5a.75.75 0 0 1-.75-.75v-1.5H4.5v5.25a.75.75 0 0 1-1.5 0V2.25a.75.75 0 0 1 .75-.75M4.5 9h5.25V3.75H4.5zm6.75-3v3.75a.75.75 0 0 1-.75.75H8.25v.75h5.25V6z\"\n // fill=\"#FF7D00\"\n />\n </svg>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { cn, Flex, Text, Tooltip } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { MiddlePriceView } from \"../../base/orderBook/midPriceView\";\nimport { MarkPriceView } from \"../../base/orderBook/markPrice\";\nimport { useTranslation } from \"@orderly.network/i18n\";\ninterface DesktopMarkPriceProps {\n markPrice: number;\n lastPrice: number[];\n asks: number[][];\n bids: number[][];\n symbolInfo: BasicSymbolInfo;\n}\n\nexport const DesktopMarkPrice: FC<DesktopMarkPriceProps> = (props) => {\n const { markPrice = 0, lastPrice, asks, bids, symbolInfo } = props;\n const { showTotal } = useOrderBookContext();\n\n return (\n <div className=\"oui-flex oui-flex-row oui-pl-3 oui-tabular-nums oui-justify-between oui-text-base-contrast-80 oui-text-xs oui-relative oui-cursor-pointer oui-py-[6px]\">\n <div\n className={cn(\n \"oui-basis-7/12 oui-flex oui-flex-row oui-items-center oui-mr-2 oui-justify-between\",\n showTotal && \"oui-basis-5/12\"\n )}\n >\n <MiddlePriceView\n markPrice={markPrice}\n lastPrice={lastPrice}\n quote_dp={symbolInfo.quote_dp}\n className=\"oui-text-base\"\n />\n <MarkPriceView markPrice={markPrice} quote_dp={symbolInfo.quote_dp} />\n </div>\n <div\n className={cn(\n \"oui-basis-5/12 oui-flex oui-items-center oui-fex-row oui-overflow-hidden oui-relative oui-justify-end\",\n showTotal && \"oui-basis-7/12\",\n \"oui-pr-3\"\n )}\n >\n <Spread asks={asks} bids={bids} />\n </div>\n </div>\n );\n};\n\nconst Spread: FC<{\n asks: number[][];\n bids: number[][];\n}> = (props) => {\n const { asks, bids } = props;\n\n const { t } = useTranslation();\n\n const spread = useMemo(() => {\n if (bids.length === 0 && asks.length === 0) {\n return 0;\n }\n const bid1 = Number.isNaN(bids[0][0]) ? 0 : bids[0][0];\n const index = asks.reverse().findIndex((item) => !Number.isNaN(item[0]));\n\n let ask1 = 0.0;\n if (index !== -1) {\n ask1 = Number.isNaN(asks[index][0]) ? 0 : asks[index][0];\n }\n const dValue = new Decimal(ask1)\n .sub(bid1)\n .div(new Decimal(ask1).add(bid1).div(2));\n // 0.00006416604461251195\n // 0.000065\n // 0.0065\n return Math.ceil(dValue.toNumber() * 1000000 + 0.1) / 10000;\n }, [asks, bids]);\n\n return (\n <div>\n <Tooltip\n content={t(\"trading.orderBook.spreadRatio.tooltip\")}\n className=\"oui-max-w-[240px]\"\n >\n <Text\n size=\"2xs\"\n intensity={36}\n className={\n \"oui-cursor-pointer oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-base-contrast-36\"\n }\n >\n {`${spread}%`}\n </Text>\n </Tooltip>\n </div>\n );\n};\n","import { FC, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { cn, Flex, Grid, Spinner, Text, VectorIcon } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { BuySellRatioBar, BuySellRatio } from \"../../base/orderBook\";\nimport {\n ORDERBOOK_COIN_TYPE_KEY,\n OrderBookProvider,\n} from \"../../base/orderBook/orderContext\";\nimport { DesktopAsks } from \"./asks.desktop\";\nimport { DesktopBids } from \"./bids.desktop\";\nimport { BuySellRatioSettings } from \"./buySellRatio\";\nimport { DesktopDepthSelect } from \"./depthSelect.desktop\";\nimport { DesktopHeader } from \"./header.desktop\";\nimport { DesktopMarkPrice } from \"./markPrice.desktop\";\n\nexport interface DesktopOrderBookProps {\n asks: any[];\n bids: any[];\n markPrice: number;\n lastPrice: number[];\n onItemClick?: (item: number[]) => void;\n depths: string[];\n activeDepth?: string;\n onDepthChange?: (depth: number) => void;\n //\n autoSize?: boolean;\n level?: number;\n base: string;\n quote: string;\n\n isLoading?: boolean;\n\n cellHeight?: number;\n\n className?: string;\n pendingOrders?: number[];\n symbolInfo: BasicSymbolInfo;\n showBuySellRatio?: boolean;\n setShowBuySellRatio?: (show: boolean) => void;\n buySellRatio?: BuySellRatio | null;\n}\n\nexport const DesktopOrderBook: FC<DesktopOrderBookProps> = (props) => {\n const {\n lastPrice,\n markPrice,\n quote,\n base,\n isLoading,\n onDepthChange,\n showBuySellRatio = true,\n setShowBuySellRatio,\n buySellRatio,\n } = props;\n\n const { t } = useTranslation();\n const divRef = useRef<HTMLDivElement>(null);\n\n const [showTotal, setShowTotal] = useState(false);\n\n const [coinType, setCoinType] = useLocalStorage(\n ORDERBOOK_COIN_TYPE_KEY,\n base,\n );\n\n useEffect(() => {\n if (coinType !== quote && base) {\n setCoinType(base);\n }\n }, [base, quote]);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { inlineSize: width } = entry.borderBoxSize[0];\n setShowTotal(width >= 360);\n }\n });\n\n const targetDiv = divRef.current;\n\n if (targetDiv) {\n resizeObserver.observe(targetDiv);\n }\n\n return () => {\n if (targetDiv) {\n resizeObserver.unobserve(targetDiv);\n }\n };\n }, []);\n\n return (\n <OrderBookProvider\n cellHeight={props.cellHeight ?? 20}\n onItemClick={props.onItemClick}\n depth={props.activeDepth}\n showTotal={showTotal}\n pendingOrders={props.pendingOrders || EMPTY_LIST}\n symbolInfo={props.symbolInfo}\n showBuySellRatio={showBuySellRatio}\n onShowBuySellRatioChange={setShowBuySellRatio}\n >\n <Grid\n cols={1}\n rows={showBuySellRatio ? 6 : 5}\n id=\"oui-orderbook-desktop\"\n ref={divRef}\n className={cn(\n \"oui-relative oui-size-full\",\n showBuySellRatio\n ? \"oui-grid-rows-[auto,auto,1fr,auto,1fr,auto]\"\n : \"oui-grid-rows-[auto,auto,1fr,auto,1fr]\",\n )}\n >\n <Flex justify=\"between\" itemAlign=\"center\" className=\"oui-pr-3\">\n <DesktopDepthSelect\n depths={props.depths}\n value={props.activeDepth}\n onChange={onDepthChange}\n />\n <BuySellRatioSettings\n showBuySellRatio={showBuySellRatio}\n setShowBuySellRatio={setShowBuySellRatio}\n />\n </Flex>\n <DesktopHeader quote={quote} base={base} />\n <DesktopAsks data={[...props.asks]} />\n <DesktopMarkPrice\n lastPrice={lastPrice}\n markPrice={markPrice}\n // ======================================================================\n // == 🔥🔥🔥🔥🔥🔥🔥 DO NOT MODIFY THIS 🔥🔥🔥🔥🔥🔥🔥 ==\n // ======================================================================\n // Use shallow copy here to avoid mutating the original props array when sorting or modifying inside the component.\n // Note: This only clones the array itself, not the element objects.\n asks={[...props.asks]}\n bids={[...props.bids]}\n symbolInfo={props.symbolInfo}\n />\n <DesktopBids data={[...props.bids]} />\n {showBuySellRatio && (\n <BuySellRatioBar\n ratio={buySellRatio || null}\n className=\"oui-text-2xs oui-px-3 oui-h-[38px]\"\n />\n )}\n {isLoading && (\n <div className=\"oui-bg-bg-8/70 oui-absolute oui-inset-0 oui-z-10 oui-flex oui-items-center oui-justify-center\">\n <Spinner />\n </div>\n )}\n </Grid>\n </OrderBookProvider>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { FundingRateState } from \"./fundingRate.script\";\n\nexport const FundingRate: FC<FundingRateState> = (props) => {\n const { data, onClick } = props;\n const predFundingRate = data.est_funding_rate;\n const countDown = data.countDown;\n const { t } = useTranslation();\n return (\n <Flex direction={\"column\"} itemAlign={\"start\"} pb={2}>\n <Text\n size=\"2xs\"\n intensity={36}\n className=\"oui-cursor-pointer oui-underline oui-decoration-line-16 oui-decoration-dashed oui-underline-offset-4\"\n onClick={onClick}\n >\n {t(\"trading.fundingRate.predFundingRate\")}\n </Text>\n {predFundingRate === null ? (\n \"--\"\n ) : (\n <div className=\"orderly-flex orderly-gap-1 oui-text-2xs oui-text-base-contrast-36\">\n {/* <span className=\"orderly-text-warning-darken\">{`${predFundingRate}%`}</span> */}\n <Text.numeral suffix=\"%\" dp={4} intensity={80}>\n {predFundingRate ?? \"--\"}\n </Text.numeral>\n <span>{\" in\"}</span>\n <span>{\" \" + countDown}</span>\n </div>\n )}\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useFundingDetails,\n useFundingRateBySymbol,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\n\ninterface FundingRateOptions {\n symbol: string;\n}\n\nexport const useFundingRateModalScript = (options: FundingRateOptions) => {\n const { data, isLoading } = useFundingDetails(options.symbol);\n const { last_funding_rate, est_funding_rate } =\n useFundingRateBySymbol(options.symbol) ?? {};\n\n const [{ aggregated, rows }] = usePositionStream(options.symbol);\n\n const { notional } = aggregated ?? {};\n\n const fundingPeriod = useMemo(() => {\n if (!data || isLoading) {\n return \"-\";\n }\n return `${data.funding_period}h`;\n }, [data, isLoading]);\n\n const capFunding = useMemo(() => {\n if (!data || isLoading) {\n return \"-\";\n }\n return `${new Decimal(data.cap_funding).mul(100).toNumber()}%`;\n }, [data, isLoading]);\n\n const floorFunding = useMemo(() => {\n if (!data || isLoading) {\n return \"-\";\n }\n return `${new Decimal(data.floor_funding).mul(100).toNumber()}%`;\n }, [data, isLoading]);\n\n const lastFundingRate = useMemo(() => {\n if (!last_funding_rate) {\n return undefined;\n }\n return `${new Decimal(last_funding_rate).mul(100).toNumber()}%`;\n }, [last_funding_rate]);\n\n const estFundingRate = useMemo(() => {\n if (!est_funding_rate) {\n return undefined;\n }\n return `${new Decimal(est_funding_rate).mul(100).toNumber()}%`;\n }, [est_funding_rate]);\n\n const estFundingFee = useMemo(() => {\n if (!est_funding_rate || !notional || rows.length === 0) {\n return \"--\";\n }\n\n return `${new Decimal(est_funding_rate).mul(notional).todp(4).toNumber()}`;\n }, [est_funding_rate, notional, rows]);\n\n // Calculate annualized funding rate\n const calculateAnnualizedRate = (rate: number, intervalHours: number) => {\n if (!rate || !intervalHours) return undefined;\n // annualized rate = funding rate * 24h / interval(h) * 365\n const annualizedRate = new Decimal(rate)\n .mul(24)\n .div(intervalHours)\n .mul(365);\n // Round down to two decimal places\n return annualizedRate.todp(2, Decimal.ROUND_DOWN).toNumber();\n };\n\n const lastFundingRateAnnualized = useMemo(() => {\n if (!last_funding_rate || !data?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(last_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(rate, data.funding_period);\n return annualized ? `${annualized}%` : undefined;\n }, [last_funding_rate, data?.funding_period]);\n\n const estFundingRateAnnualized = useMemo(() => {\n if (!est_funding_rate || !data?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(est_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(rate, data.funding_period);\n return annualized ? `${annualized}%` : undefined;\n }, [est_funding_rate, data?.funding_period]);\n\n return {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n };\n};\n\nexport type FundingRateModalState = ReturnType<\n typeof useFundingRateModalScript\n>;\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, Divider } from \"@orderly.network/ui\";\nimport type { FundingRateModalState } from \"./fundingRateModal.script\";\n\nexport const FundingRateModal: React.FC<FundingRateModalState> = (props) => {\n const { t } = useTranslation();\n const {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n } = props;\n\n const renderRow = (\n label: string,\n value?: string | number,\n annualizedValue?: string,\n ) => {\n if (!value) {\n return null;\n }\n return (\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {annualizedValue\n ? `${label}/ ${t(\"trading.fundingRate.annualized\")}`\n : label}\n </Text>\n <Flex itemAlign=\"end\" gap={1} className=\"oui-text-base-contrast-80\">\n <Text intensity={80}>{value}</Text>\n {annualizedValue && \" / \"}\n {annualizedValue && annualizedValue}\n </Flex>\n </Flex>\n );\n };\n return (\n <Flex width={\"100%\"} itemAlign={\"center\"} direction=\"column\" gap={1}>\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {t(\"trading.fundingRate.predFundingRate.interval\")}\n </Text>\n <Text intensity={80}>{fundingPeriod}</Text>\n </Flex>\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {t(\"trading.fundingRate.predFundingRate.cap\")} /\n {t(\"trading.fundingRate.predFundingRate.floor\")}\n </Text>\n <Text intensity={80}>\n {capFunding} / {floorFunding}\n </Text>\n </Flex>\n {renderRow(\n t(\"trading.fundingRate.lastFundingRate\"),\n lastFundingRate,\n lastFundingRateAnnualized,\n )}\n {renderRow(\n t(\"trading.fundingRate.estimatedFundingRate\"),\n estFundingRate,\n estFundingRateAnnualized,\n )}\n {renderRow(t(\"trading.fundingRate.estimatedFundingFee\"), estFundingFee)}\n <Divider my={4} className=\"oui-w-full\" intensity={8} />\n {t(\"markets.symbolInfoBar.predFundingRate.tooltip\")}\n </Flex>\n );\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useFundingRateModalScript } from \"./fundingRateModal.script\";\nimport { FundingRateModal } from \"./fundingRateModal.ui\";\n\nexport const FundingRateModalWidget: React.FC<{ symbol: string }> = (props) => {\n const state = useFundingRateModalScript(props);\n return <FundingRateModal {...state} />;\n};\n\nexport const FundingRateDialogId = \"FundingRateDialogId\";\nexport const FundingRateSheetId = \"FundingRateSheetId\";\n\nregisterSimpleDialog(FundingRateDialogId, FundingRateModalWidget, {\n size: \"md\",\n classNames: { content: \"oui-border oui-border-line-6\" },\n title: () => i18n.t(\"funding.fundingRate\"),\n});\n\nregisterSimpleSheet(FundingRateSheetId, FundingRateModalWidget, {\n classNames: { content: \"oui-text-sm\" },\n title: () => i18n.t(\"funding.fundingRate\"),\n});\n","import { useCallback } from \"react\";\nimport { useFundingRate } from \"@orderly.network/hooks\";\nimport { modal } from \"@orderly.network/ui\";\nimport { FundingRateSheetId } from \"../fundingRateModal/fundingRateModal.widget\";\n\nexport const useFundingRateScript = (symbol: string) => {\n const data = useFundingRate(symbol);\n const onClick = useCallback<React.MouseEventHandler<HTMLElement>>(() => {\n modal.show(FundingRateSheetId, { symbol });\n }, [symbol]);\n return {\n data,\n onClick,\n };\n};\n\nexport type FundingRateState = ReturnType<typeof useFundingRateScript>;\n","import React from \"react\";\nimport { useFundingRateScript } from \"./fundingRate.script\";\nimport { FundingRate } from \"./fundingRate.ui\";\n\nexport const FundingRateWidget: React.FC<{ symbol: string }> = (props) => {\n const state = useFundingRateScript(props.symbol);\n return <FundingRate {...state} />;\n};\n","export { FundingRate } from \"./fundingRate.ui\";\nexport { FundingRateWidget } from \"./fundingRate.widget\";\nexport { useFundingRateScript } from \"./fundingRate.script\";\n","import { FC, useContext, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { CellBar } from \"../../base/orderBook/cellBar\";\nimport {\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n OrderBookContext,\n} from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType, QtyMode } from \"../../base/orderBook/types\";\n\nexport interface OrderBookCellProps {\n background: string;\n price: number;\n quantity: number;\n accumulatedAmount: number;\n // size: number;\n count: number;\n accumulated: number;\n type: OrderBookCellType;\n mode: QtyMode;\n}\n\nexport const OrderBookCell: FC<OrderBookCellProps> = (props) => {\n const { accumulated, count, quantity, price, type, accumulatedAmount } =\n props;\n\n const width = (accumulated / count) * 100;\n\n const { cellHeight, onItemClick, depth, symbolInfo } =\n useContext(OrderBookContext);\n\n const { base_dp, quote_dp, base, quote } = symbolInfo;\n\n const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n \"qty\",\n );\n\n const totalAmount = Number.isNaN(accumulated)\n ? \"-\"\n : accumulatedAmount?.toString();\n\n const dp = useMemo(() => {\n return getPrecisionByNumber(depth || `${quote_dp}`);\n }, [depth, quote_dp]);\n\n const renderCell = () => {\n switch (coinUnit) {\n case \"base\":\n return (\n <Text.numeral className=\"oui-text-base-contrast-80\" dp={base_dp}>\n {accumulated}\n </Text.numeral>\n );\n case \"quote\":\n return (\n <Text.numeral className=\"oui-text-base-contrast-80\" dp={0}>\n {totalAmount}\n </Text.numeral>\n );\n default:\n return (\n <Text.numeral className=\"oui-text-base-contrast-80\" dp={base_dp}>\n {Number.isNaN(quantity) ? \"-\" : quantity}\n </Text.numeral>\n );\n }\n };\n\n return (\n <Box\n className={cn(\n \"oui-relative oui-w-full oui-cursor-pointer oui-overflow-hidden oui-text-2xs oui-tabular-nums\",\n )}\n style={{ height: `${cellHeight}px` }}\n onClick={() => {\n if (Number.isNaN(price) || Number.isNaN(quantity)) {\n return;\n }\n onItemClick?.([price, quantity]);\n }}\n >\n <Flex itemAlign=\"center\" justify={\"between\"}>\n <Text.numeral\n color={type === OrderBookCellType.BID ? \"buy\" : \"sell\"}\n dp={dp}\n >\n {price}\n </Text.numeral>\n {renderCell()}\n </Flex>\n {Number.isNaN(width) ? null : (\n <CellBar\n width={width}\n className={cn(\n type === OrderBookCellType.ASK\n ? \"oui-bg-trade-loss/20\"\n : \"oui-bg-trade-profit/20\",\n )}\n />\n )}\n </Box>\n );\n};\n","import { FC } from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { OrderBookCell } from \"./cell\";\n\ninterface OrderBookListProps {\n type: OrderBookCellType;\n data: number[][];\n countQty: number;\n}\n\nexport const ListBox: FC<OrderBookListProps> = (props) => {\n const { data } = props;\n const { mode } = useOrderBookContext();\n return (\n <Box className=\"oui-order-book-list oui-flex oui-w-full oui-flex-col oui-gap-px\">\n {data.map((item, index) => {\n return (\n <OrderBookCell\n key={`item-${index}`}\n background={\"\"}\n price={item[0]}\n quantity={item[1]}\n accumulated={item[2]}\n accumulatedAmount={item[3]}\n count={props.countQty}\n type={props.type}\n mode={mode}\n />\n );\n })}\n </Box>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { ListBox } from \"./listBox\";\n\nexport interface Props {\n data: number[][];\n}\nexport const Asks: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n const len = data.length;\n let max = Number.NaN;\n\n let index = 0;\n\n while (Number.isNaN(max) && index < len) {\n max = data[index][2];\n index++;\n }\n\n return max;\n }, [data]);\n return (\n <ListBox type={OrderBookCellType.ASK} data={data} countQty={countQty} />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { ListBox } from \"./listBox\";\n\nexport interface Props {\n data: any[];\n}\n\nexport const Bids: FC<Props> = (props) => {\n const { data } = props;\n const countQty = useMemo(() => {\n let max = Number.NaN;\n // let len = data.length;\n let index = data.length - 1;\n\n while (Number.isNaN(max) && index > 0) {\n max = data[index][2];\n index--;\n }\n\n return max;\n // return data.length > 0 ? data[data.length - 1][2] : 0;\n }, [data]);\n\n return (\n <ListBox type={OrderBookCellType.BID} data={data} countQty={countQty} />\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { Box, Picker } from \"@orderly.network/ui\";\n\ninterface DepthSelectProps {\n depth: ReadonlyArray<string> | string[];\n value?: string;\n onChange?: (depth: number) => void;\n}\n\nexport const DepthSelect: FC<DepthSelectProps> = (props) => {\n const options = useMemo(() => {\n return props.depth.map((d) => ({\n value: d,\n label: `${d}`,\n }));\n }, [props.depth]);\n return (\n <Box id=\"oui-order-book-depth\" className=\"oui-w-full oui-pt-2\">\n {/* <Select size={\"small\"} value={\"0.001\"} /> */}\n <Picker\n options={options}\n fullWidth\n size={\"sm\"}\n value={props.value}\n className=\"oui-text-2xs oui-text-base-contrast-54\"\n onValueChange={(value) => {\n //\n props.onChange?.(value);\n }}\n />\n </Box>\n );\n};\n","import React, { FC, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n CaretDownIcon,\n CaretUpIcon,\n Flex,\n Picker,\n Text,\n} from \"@orderly.network/ui\";\nimport { SelectOption } from \"@orderly.network/ui/src/select/withOptions\";\nimport { ORDERBOOK_MOBILE_COIN_TYPE_KEY } from \"../../base/orderBook/orderContext\";\n\ninterface Props {\n quote: string;\n base: string;\n}\n\nexport const Header: FC<Props> = (props) => {\n const { t } = useTranslation();\n\n const { base, quote } = props;\n\n const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n \"qty\",\n );\n\n const options = useMemo<SelectOption[]>(() => {\n return [\n {\n value: \"qty\",\n label: `${t(\"common.quantity\")}(${base})`,\n data: [t(\"common.quantity\"), base],\n },\n {\n value: \"base\",\n label: `${t(\"common.total\")}(${base})`,\n data: [t(\"common.total\"), base],\n },\n {\n value: \"quote\",\n label: `${t(\"common.total\")}(${quote})`,\n data: [t(\"common.total\"), quote],\n },\n ];\n }, [t, base, quote]);\n\n return (\n <Flex\n justify={\"between\"}\n width={\"100%\"}\n className=\"oui-py-[5px] oui-text-2xs oui-text-base-contrast-36\"\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n id=\"oui-order-book-header-price\"\n >\n <Text>{t(\"common.price\")}</Text>\n <Text>{`(${quote})`}</Text>\n </Flex>\n <Picker\n size=\"sm\"\n value={coinUnit}\n onValueChange={setCoinUnit}\n options={options}\n valueRenderer={(_, { open, data }) => {\n return (\n <Flex justify=\"between\" itemAlign=\"center\" gap={1}>\n {Array.isArray(data) && (\n <Flex direction={\"column\"} itemAlign={\"end\"}>\n {data[0] && <Text>{data[0]}</Text>}\n {data[1] && <Text>({data[1]})</Text>}\n </Flex>\n )}\n {open ? (\n <CaretUpIcon size={14} color=\"inherit\" />\n ) : (\n <CaretDownIcon size={14} color=\"inherit\" />\n )}\n </Flex>\n );\n }}\n />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { MarkPriceView } from \"../../base/orderBook/markPrice\";\nimport { MiddlePriceView } from \"../../base/orderBook/midPriceView\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\n\ninterface MarkPriceProps {\n markPrice: number;\n lastPrice: number[];\n}\n\nexport const MarkPrice: FC<MarkPriceProps> = (props) => {\n const { symbolInfo } = useOrderBookContext();\n\n const { quote_dp } = symbolInfo;\n\n return (\n <Flex\n id=\"oui-order-book-mark-price\"\n className=\"oui-py-[6px]\"\n width={\"100%\"}\n justify={\"between\"}\n >\n <MiddlePriceView\n markPrice={props.markPrice}\n lastPrice={props.lastPrice}\n quote_dp={quote_dp}\n className=\"oui-text-sm\"\n iconSize={14}\n />\n <MarkPriceView\n markPrice={props.markPrice}\n quote_dp={quote_dp}\n className=\"oui-text-2xs\"\n iconSize={12}\n />\n </Flex>\n );\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport {\n Checkbox,\n cn,\n Flex,\n Sheet,\n SheetContent,\n SheetTrigger,\n Spinner,\n Text,\n VectorIcon,\n} from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { BuySellRatioBar, BuySellRatio } from \"../../base/orderBook\";\nimport {\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n OrderBookProvider,\n} from \"../../base/orderBook/orderContext\";\nimport { BuySellRatioSettings } from \"../../desktop/orderBook/buySellRatio\";\nimport { FundingRateWidget } from \"../fundingRate\";\nimport { Asks } from \"./asks\";\nimport { Bids } from \"./bids\";\nimport { DepthSelect } from \"./depthSelect\";\nimport { Header } from \"./header\";\nimport { MarkPrice } from \"./markPrice\";\n\nexport interface OrderBookProps {\n asks: any[];\n bids: any[];\n markPrice: number;\n lastPrice: number[];\n onItemClick?: (item: number[]) => void;\n depths?: string[];\n activeDepth?: string;\n onDepthChange?: (depth: number) => void;\n //\n autoSize?: boolean;\n level?: number;\n base: string;\n quote: string;\n\n isLoading?: boolean;\n\n cellHeight?: number;\n\n className?: string;\n symbolInfo: BasicSymbolInfo;\n showBuySellRatio?: boolean;\n setShowBuySellRatio?: (show: boolean) => void;\n buySellRatio?: BuySellRatio | null;\n}\n\nexport const OrderBook: FC<OrderBookProps> = (props) => {\n const {\n lastPrice,\n markPrice,\n quote,\n base,\n isLoading,\n onDepthChange,\n showBuySellRatio = true,\n setShowBuySellRatio,\n buySellRatio,\n } = props;\n\n const { t } = useTranslation();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n const symbol = `PERP_${props.symbolInfo.base}_${props.symbolInfo.quote}`;\n\n const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n \"qty\",\n );\n\n return (\n <OrderBookProvider\n cellHeight={props.cellHeight ?? 20}\n onItemClick={props.onItemClick}\n depth={props.activeDepth}\n pendingOrders={EMPTY_LIST}\n showTotal={false}\n symbolInfo={props.symbolInfo}\n showBuySellRatio={showBuySellRatio}\n onShowBuySellRatioChange={setShowBuySellRatio}\n >\n <Flex\n direction={\"column\"}\n p={2}\n id=\"oui-orderbook-mobile\"\n className={cn(\"oui-relative oui-size-full\", props.className)}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Flex justify=\"between\" itemAlign=\"center\" className=\"oui-w-full\">\n <FundingRateWidget symbol={symbol} />\n <BuySellRatioSettings\n showBuySellRatio={showBuySellRatio}\n setShowBuySellRatio={setShowBuySellRatio}\n />\n </Flex>\n <Header quote={quote} base={base} />\n <Asks data={props.asks} />\n <MarkPrice lastPrice={lastPrice} markPrice={markPrice} />\n <Bids data={props.bids} />\n <DepthSelect\n depth={props.depths || EMPTY_LIST}\n value={props.activeDepth}\n onChange={onDepthChange}\n />\n {showBuySellRatio && (\n <BuySellRatioBar\n ratio={buySellRatio || null}\n className=\"oui-px-0 oui-text-[8px] oui-h-6 oui-mt-2\"\n />\n )}\n {isLoading && (\n <div className=\"oui-bg-base-800/70 oui-absolute oui-inset-0 oui-z-10 oui-flex oui-h-full oui-min-h-[420px] oui-items-center oui-justify-center\">\n <Spinner />\n </div>\n )}\n </Flex>\n </OrderBookProvider>\n );\n};\n","import React from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { DesktopOrderBook } from \"../../desktop/orderBook/index.desktop\";\nimport { OrderBook as MWebOrderBook } from \"../../mobile/orderBook\";\nimport type { OrderBookState } from \"./orderBook.script\";\n\nexport const OrderBook: React.FC<OrderBookState & { className?: string }> = (\n props,\n) => {\n return (\n <Box className=\"oui-font-semibold\" width={\"100%\"} height={\"100%\"}>\n {props.isMobile ? (\n <MWebOrderBook\n level={props.level}\n asks={props.asks!}\n bids={props.bids!}\n markPrice={props.markPrice!}\n lastPrice={props.lastPrice!}\n depths={props.depths}\n activeDepth={props.selDepth}\n base={props.base}\n quote={props.quote}\n isLoading={props.isLoading}\n onItemClick={props.onItemClick}\n cellHeight={props.cellHeight}\n onDepthChange={props.onDepthChange}\n className={props.className}\n symbolInfo={props.symbolInfo}\n showBuySellRatio={props.showBuySellRatio}\n setShowBuySellRatio={props.setShowBuySellRatio}\n buySellRatio={props.buySellRatio}\n />\n ) : (\n <DesktopOrderBook\n level={props.level}\n asks={props.asks!}\n bids={props.bids!}\n markPrice={props.markPrice!}\n lastPrice={props.lastPrice!}\n depths={props.depths}\n activeDepth={props.selDepth}\n base={props.base}\n quote={props.quote}\n isLoading={props.isLoading}\n onItemClick={props.onItemClick}\n cellHeight={props.cellHeight}\n onDepthChange={props.onDepthChange}\n className={props.className}\n pendingOrders={props.pendingOrders}\n symbolInfo={props.symbolInfo}\n showBuySellRatio={props.showBuySellRatio}\n setShowBuySellRatio={props.setShowBuySellRatio}\n buySellRatio={props.buySellRatio}\n />\n )}\n </Box>\n );\n};\n","import type { API } from \"@orderly.network/types\";\nimport type { BasicSymbolInfo } from \"../types/types\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport const getBasicSymbolInfo = (\n symbolInfo: (\n key?: keyof API.SymbolExt,\n defaultValue?: ValueOf<API.SymbolExt>,\n ) => any,\n): BasicSymbolInfo => {\n return {\n base_dp: symbolInfo(\"base_dp\"),\n quote_dp: symbolInfo(\"quote_dp\"),\n base_tick: symbolInfo(\"base_tick\"),\n base: symbolInfo(\"base\"),\n quote: symbolInfo(\"quote\"),\n };\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport {\n useLocalStorage,\n useOrderbookStream,\n useOrderStream,\n useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { Decimal, removeTrailingZeros } from \"@orderly.network/utils\";\nimport { getBasicSymbolInfo } from \"../../../utils/utils\";\n\nconst CELL_MAX = 30;\n\nconst DEFAULT_CELL_HEIGHT = 20;\n\nconst SPACE = 104;\nconst BUY_SELL_RATIO_BAR_HEIGHT_MOBILE = 28; // padding 10px*2 + content height ~14px\nconst BUY_SELL_RATIO_BAR_HEIGHT_DESKTOP = 38; // padding 10px*2 + content height ~14px\n\nexport const ORDERBOOK_SHOW_BUY_SELL_RATIO_KEY =\n \"orderbook_show_buy_sell_ratio\";\n\nexport interface BuySellRatio {\n buyPercentage: number;\n sellPercentage: number;\n buyAmount: number;\n sellAmount: number;\n}\n\nexport const useOrderBookScript = (props: {\n symbol: string;\n height?: number;\n}) => {\n const { symbol, height } = props;\n const symbolInfo = useSymbolsInfo()[symbol];\n\n const [cellHeight, setCellHeight] = useState(DEFAULT_CELL_HEIGHT);\n\n const [level, setLevel] = useState(10);\n const { base, quote, quote_dp } = getBasicSymbolInfo(symbolInfo);\n // const counter = useRef(0);\n\n const [data, { onDepthChange, isLoading, onItemClick, depth, allDepths }] =\n useOrderbookStream(symbol, undefined, { level });\n\n // useEffect(() => {\n // counter.current = 0;\n // }, [symbol]);\n\n const pendingOrders = usePendingOrderStream(symbol);\n\n const { isMobile } = useScreen();\n\n const [showBuySellRatio, setShowBuySellRatio] = useLocalStorage(\n ORDERBOOK_SHOW_BUY_SELL_RATIO_KEY,\n true,\n );\n\n useEffect(() => {\n if (height) {\n // Calculate available space considering BuySellRatioBar height\n const availableSpace =\n SPACE +\n (showBuySellRatio\n ? isMobile\n ? BUY_SELL_RATIO_BAR_HEIGHT_MOBILE\n : BUY_SELL_RATIO_BAR_HEIGHT_DESKTOP\n : 0);\n\n // setCellHeight(height.content / level);\n const level = Math.floor(\n (height - availableSpace) / ((DEFAULT_CELL_HEIGHT + 1) * 2),\n );\n\n const cellsHeight = (DEFAULT_CELL_HEIGHT + 1) * 2 * level;\n\n const restSpace = height - availableSpace - cellsHeight;\n\n if (restSpace > 10) {\n setCellHeight(DEFAULT_CELL_HEIGHT + restSpace / level / 2);\n } else {\n setCellHeight(DEFAULT_CELL_HEIGHT);\n }\n\n setLevel(level);\n }\n }, [height, showBuySellRatio]);\n\n const selDepth = useMemo(() => {\n if (typeof depth === \"undefined\" || typeof quote_dp === \"undefined\") {\n return undefined;\n }\n // // FIXME: hardcode for now, need to optimize it\n // counter.current++;\n // if (counter.current === 1 && DEFAULT_DEPTH[symbol]) {\n // return DEFAULT_DEPTH[symbol];\n // }\n\n return removeTrailingZeros(depth);\n }, [depth, quote_dp, symbol]);\n\n const depths = useMemo(() => {\n return allDepths?.map((e) => removeTrailingZeros(e)) || [];\n }, [allDepths, quote_dp]);\n\n const buySellRatio = useMemo<BuySellRatio | null>(() => {\n if (!data?.asks || !data?.bids || level === undefined) {\n return null;\n }\n\n // Helper function to check if a value is a valid number\n const isValidNumber = (value: any): value is number => {\n return (\n typeof value === \"number\" &&\n !Number.isNaN(value) &&\n Number.isFinite(value) &&\n value >= 0\n );\n };\n\n // Get visible orders within the level range\n const visibleAsks = data.asks.slice(0, level);\n const visibleBids = data.bids.slice(-level);\n // get asks first and bids last, get amount ratio\n if (visibleAsks.length > 0 && visibleBids.length > 0) {\n // Find the first ask that meets the condition (in forward order)\n const firstAsk = visibleAsks.find(\n (ask) =>\n Array.isArray(ask) &&\n ask.length === 4 &&\n ask[3] !== undefined &&\n ask[3] !== null &&\n isValidNumber(ask[3]),\n );\n // Find the first bid that meets the condition (in reverse order)\n const lastBid = [...visibleBids]\n .reverse()\n .find(\n (bid) =>\n Array.isArray(bid) &&\n bid.length === 4 &&\n bid[3] !== undefined &&\n bid[3] !== null &&\n isValidNumber(bid[3]),\n );\n if (firstAsk && lastBid) {\n // sell amount is the sum of all visible asks\n const askAmount = new Decimal(firstAsk[3]);\n // buy amount is the sum of all visible bids\n const bidAmount = new Decimal(lastBid[3]);\n const totalAmount = askAmount.add(bidAmount);\n const buyPercentage = bidAmount.div(totalAmount).mul(100).toNumber();\n const sellPercentage = 100 - buyPercentage;\n return {\n buyPercentage: buyPercentage,\n sellPercentage: sellPercentage,\n buyAmount: askAmount.toNumber(),\n sellAmount: bidAmount.toNumber(),\n };\n }\n }\n return null;\n }, [data?.asks, data?.bids, level]);\n\n return {\n level,\n asks: data?.asks,\n bids: data?.bids,\n markPrice: data?.markPrice,\n lastPrice: data?.middlePrice,\n depths,\n selDepth,\n base,\n quote,\n isLoading,\n onItemClick,\n cellHeight,\n onDepthChange,\n pendingOrders,\n symbolInfo: getBasicSymbolInfo(symbolInfo),\n isMobile,\n showBuySellRatio,\n setShowBuySellRatio,\n buySellRatio,\n };\n};\n\nexport const usePendingOrderStream = (symbol: string): number[] => {\n const [data] = useOrderStream({\n status: OrderStatus.INCOMPLETE,\n symbol: symbol,\n });\n\n const pendingOrders = useMemo(() => {\n const info = data\n ?.filter((item) => item.symbol === symbol)\n .reduce((a, b) => {\n // TODO: check if this is the correct price, when the data is from WS, it crashes\n const price = b.price || b.trigger_price || 0;\n return [...a, price];\n }, []);\n\n return info;\n }, [data, symbol]);\n\n return pendingOrders;\n};\n\nexport type OrderBookState = ReturnType<typeof useOrderBookScript>;\n","import React from \"react\";\nimport { useOrderBookScript } from \"./orderBook.script\";\nimport { OrderBook } from \"./orderBook.ui\";\n\ninterface OrderBookWidgetProps {\n className?: string;\n symbol: string;\n height?: number;\n}\n\nexport const OrderBookWidget: React.FC<OrderBookWidgetProps> = (props) => {\n const { className, symbol, height } = props;\n const state = useOrderBookScript({ symbol, height });\n return <OrderBook {...state} className={className} />;\n};\n","import React, { FC, useMemo } from \"react\";\nimport { cn, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { BuySellRatio } from \"./orderBook.script\";\n\nexport interface BuySellRatioBarProps {\n ratio: BuySellRatio | null;\n className?: string;\n}\n\nexport const BuySellRatioBar: FC<BuySellRatioBarProps> = (props) => {\n const { ratio, className } = props;\n\n const { buyPercentage, sellPercentage } = useMemo(() => {\n if (!ratio) {\n return { buyPercentage: 50, sellPercentage: 50 };\n }\n\n // Validate that percentages are valid numbers\n const isValidNumber = (value: number) => {\n return (\n typeof value === \"number\" &&\n !Number.isNaN(value) &&\n Number.isFinite(value) &&\n value >= 0 &&\n value <= 100\n );\n };\n\n const buyPct = isValidNumber(ratio.buyPercentage)\n ? ratio.buyPercentage\n : 50;\n\n // Round to 1 decimal place\n const buyPctRounded = new Decimal(buyPct)\n .toDecimalPlaces(1, Decimal.ROUND_HALF_UP)\n .toNumber();\n\n // Ensure percentages add up to 100% to avoid display issues\n const sellPctRounded = new Decimal(100)\n .sub(buyPctRounded)\n .toDecimalPlaces(1, Decimal.ROUND_HALF_UP)\n .toNumber();\n\n return {\n buyPercentage: buyPctRounded,\n sellPercentage: sellPctRounded,\n };\n }, [ratio]);\n\n return (\n <Flex className={cn(\"oui-w-full\", className)} gap={1}>\n <Flex itemAlign=\"center\" gap={1}>\n <Text intensity={80}>B</Text>\n <Text color=\"success\">{buyPercentage.toFixed(1)}%</Text>\n </Flex>\n <div\n style={{\n flex: 1,\n height: \"4px\",\n position: \"relative\",\n borderRadius: \"2px\",\n overflow: \"hidden\",\n backgroundColor: \"rgb(var(--oui-line-4))\",\n }}\n >\n <div\n className=\"oui-bg-trade-profit oui-mr-[2px] oui-rounded-sm\"\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n width: `${buyPercentage}%`,\n height: \"100%\",\n }}\n />\n <div\n className=\"oui-bg-trade-loss oui-ml-[2px] oui-rounded-sm\"\n style={{\n position: \"absolute\",\n left: `${buyPercentage}%`,\n top: 0,\n width: `${sellPercentage}%`,\n height: \"100%\",\n }}\n />\n </div>\n <Flex itemAlign=\"center\" gap={1}>\n <Text color=\"danger\">{sellPercentage.toFixed(1)}%</Text>\n <Text intensity={80}>S</Text>\n </Flex>\n </Flex>\n );\n};\n","export { OrderBook } from \"./orderBook.ui\";\nexport { OrderBookWidget } from \"./orderBook.widget\";\nexport { useOrderBookScript } from \"./orderBook.script\";\nexport { BuySellRatioBar } from \"./buySellRatioBar\";\nexport type { BuySellRatio } from \"./orderBook.script\";\n","import React, { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n Flex,\n Text,\n Box,\n Tooltip,\n modal,\n gradientTextVariants,\n cn,\n EditIcon,\n} from \"@orderly.network/ui\";\nimport { LeverageWidgetWithDialogId } from \"@orderly.network/ui-leverage\";\nimport { TooltipContent } from \"../assetView/assetView.ui\";\nimport { RiskRateState } from \"./riskRate.script\";\n\nexport const RiskRate: FC<RiskRateState> = (props) => {\n const { riskRate, riskRateColor, currentLeverage, maxLeverage } = props;\n const { isHigh, isMedium, isLow } = riskRateColor;\n const { wrongNetwork } = useAppContext();\n const { t } = useTranslation();\n\n const textColor = wrongNetwork\n ? \"\"\n : isHigh\n ? \"oui-text-danger\"\n : isMedium\n ? \"oui-text-warning-darken\"\n : isLow\n ? gradientTextVariants({ color: \"brand\" })\n : \"\";\n\n const boxClsName = wrongNetwork\n ? \"oui-bg-gradient-to-r oui-opacity-20 oui-from-[#26fefe] oui-via-[#ff7d00] oui-to-[#d92d6b] oui-h-1.5 oui-rounded-full\"\n : isHigh\n ? \"oui-bg-gradient-to-tr oui-from-[#791438] oui-to-[#ff447c] oui-h-1.5 oui-rounded-full\"\n : isMedium\n ? \"oui-bg-gradient-to-tr oui-from-[#792e00] oui-to-[#ffb65d] oui-h-1.5 oui-rounded-full\"\n : isLow\n ? \"oui-bg-gradient-to-tr oui-from-[#59b0fe] oui-to-[#26fefe] oui-h-1.5 oui-rounded-full\"\n : \"oui-bg-gradient-to-r oui-opacity-20 oui-from-[#26fefe] oui-via-[#ff7d00] oui-to-[#d92d6b] oui-h-1.5 oui-rounded-full\";\n\n return (\n <Box data-risk={\"\"} className=\"oui-space-y-2\">\n <Flex\n itemAlign=\"center\"\n justify=\"start\"\n className=\"oui-w-full oui-bg-base-6 oui-rounded-full oui-h-2 oui-px-[1px]\"\n >\n <Box\n className={boxClsName}\n style={\n riskRate && riskRate !== \"--\"\n ? { width: riskRate }\n : { width: \"100%\" }\n }\n />\n </Flex>\n\n <Flex direction=\"row\" justify=\"between\">\n <Tooltip\n content={\n <TooltipContent\n description={t(\"trading.riskRate.tooltip\")}\n formula={t(\"trading.riskRate.formula\")}\n />\n }\n >\n <Text\n size=\"2xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className={cn(\n \"oui-cursor-pointer\",\n \"oui-border-b oui-border-dashed oui-border-b-white/10\",\n )}\n >\n {t(\"trading.riskRate\")}\n </Text>\n </Tooltip>\n <Text\n size=\"xs\"\n color=\"neutral\"\n weight=\"semibold\"\n className={cn(textColor)}\n >\n {riskRate ?? \"--\"}\n </Text>\n </Flex>\n </Box>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useAccount,\n useLeverage,\n useMarginRatio,\n} from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nconst getRiskRateColor = (riskRate: null | number) => {\n if (riskRate === null) {\n return { isHigh: false, isMedium: false, isLow: false, isDefault: true };\n }\n\n const isLow = riskRate < 40;\n const isMedium = riskRate >= 40 && riskRate < 80;\n const isHigh = riskRate >= 80;\n const isDefault = !isLow && !isMedium && !isHigh;\n\n return { isHigh, isMedium, isLow, isDefault };\n};\n\nexport const useRiskRateScript = () => {\n const { state } = useAccount();\n\n const isConnected =\n state.status >= AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected;\n const { marginRatio, currentLeverage, mmr } = useMarginRatio();\n\n const { curLeverage } = useLeverage();\n\n const riskRate = useMemo(() => {\n if (!isConnected || marginRatio === null || mmr === null) {\n return \"--\";\n }\n\n if (marginRatio === 0 || mmr === 0) {\n return \"0%\";\n }\n\n const calculatedRiskRate = new Decimal(mmr)\n .div(marginRatio)\n .mul(100)\n .todp(2, Decimal.ROUND_UP);\n\n // Remove trailing zeroes and add percentage sign\n return `${calculatedRiskRate.toString().replace(/\\.?0+$/, \"\")}%`;\n }, [isConnected, marginRatio, mmr]);\n\n const riskRateNumber = riskRate === \"--\" ? null : parseFloat(riskRate);\n\n const riskRateColor = useMemo(() => {\n return getRiskRateColor(riskRateNumber);\n }, [riskRateNumber]);\n\n const _curLeverage = useDataTap(currentLeverage);\n const _maxLeverage = useDataTap(curLeverage);\n const _riskRate = useDataTap(riskRate);\n\n return {\n riskRate: _riskRate,\n riskRateColor,\n isConnected,\n currentLeverage: _curLeverage,\n maxLeverage: _maxLeverage,\n };\n};\n\nexport type RiskRateState = ReturnType<typeof useRiskRateScript>;\n","import React from \"react\";\nimport { useRiskRateScript } from \"./riskRate.script\";\nimport { RiskRate } from \"./riskRate.ui\";\n\nexport const RiskRateWidget: React.FC = () => {\n const state = useRiskRateScript();\n return <RiskRate {...state} />;\n};\n","export { RiskRate } from \"./riskRate.ui\";\nexport { RiskRateWidget } from \"./riskRate.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Grid, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport type { OrderBookAndTradesState } from \"./orderBookAndTrades.script\";\n\nconst LazyLastTradesWidget = React.lazy(() =>\n import(\"../../base/lastTrades\").then((mod) => {\n return {\n default: mod.LastTradesWidget,\n };\n }),\n);\n\nconst LazyOrderBookWidget = React.lazy(() =>\n import(\"../../base/orderBook\").then((mod) => {\n return {\n default: mod.OrderBookWidget,\n };\n }),\n);\n\nconst TwoColLayout: React.FC<OrderBookAndTradesState> = (props) => {\n const { t } = useTranslation();\n return (\n <Grid\n cols={2}\n width={\"100%\"}\n gap={3}\n className=\"oui-auto-rows-fr\"\n style={{\n height: props.containerSize?.height,\n }}\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n // pl={3}\n pt={3}\n pb={3}\n r=\"2xl\"\n className=\"oui-bg-base-9\"\n >\n <Title\n title={t(\"trading.orderBook\")}\n className=\"oui-pl-3 oui-text-sm\"\n />\n <React.Suspense fallback={null}>\n <LazyOrderBookWidget\n symbol={props.symbol}\n height={\n props.containerSize\n ? props.containerSize.height - 29 - 24\n : undefined\n }\n />\n </React.Suspense>\n </Flex>\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n py={3}\n r=\"2xl\"\n className=\"oui-bg-base-9 oui-h-full\"\n >\n <Title\n title={t(\"trading.lastTrades\")}\n className=\"oui-text-sm oui-px-3\"\n />\n <React.Suspense fallback={null}>\n <LazyLastTradesWidget\n symbol={props.symbol}\n style={{\n height:\n props.containerSize && props.containerSize.height - 29 - 24,\n }}\n classNames={{ listHeader: \"oui-px-3\", list: \"oui-px-3\" }}\n />\n </React.Suspense>\n </Flex>\n </Grid>\n );\n};\n\nconst TabLayout: React.FC<OrderBookAndTradesState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Box\n // pl={3}\n pt={3}\n pb={3}\n pr={0}\n r=\"2xl\"\n className=\"oui-bg-base-9\"\n style={{ maxHeight: props.containerSize?.height }}\n >\n <Tabs\n value={props.tab}\n variant=\"contained\"\n onValueChange={(tab) => {\n props.setTab(tab as any);\n }}\n classNames={{\n tabsList: \"oui-pl-3\",\n // tabsContent: props.tab === \"lastTrades\" ? 'oui-pl-3' : ''\n }}\n size=\"lg\"\n >\n <TabPanel value=\"orderBook\" title={t(\"trading.orderBook\")}>\n <React.Suspense fallback={null}>\n <LazyOrderBookWidget\n symbol={props.symbol}\n height={\n props.containerSize\n ? props.containerSize.height - 29 - 18\n : undefined\n }\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value=\"lastTrades\" title={t(\"trading.lastTrades\")}>\n <React.Suspense fallback={null}>\n <LazyLastTradesWidget\n symbol={props.symbol}\n style={{\n height:\n props.containerSize && props.containerSize.height - 29 - 18,\n }}\n classNames={{\n root: \"oui-pt-[6px]\",\n listHeader: \"oui-px-3\",\n list: \"oui-px-3\",\n }}\n />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n\nconst Title: React.FC<{ title: string; className?: string }> = (props) => {\n return (\n <Text\n size=\"base\"\n intensity={80}\n className={cn(\"oui-pb-[5px]\", props.className)}\n >\n {props.title}\n </Text>\n );\n};\n\nexport const OrderBookAndTrades: React.FC<OrderBookAndTradesState> = (\n props,\n) => {\n const { containerRef, containerSize } = props;\n return (\n <div ref={containerRef} className=\"oui-h-full\">\n {(containerSize?.width ?? 0) >= 572 ? (\n <TwoColLayout {...props} />\n ) : (\n <TabLayout {...props} />\n )}\n </div>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nexport const useOrderBookAndTradesScript = (symbol: string) => {\n const [containerSize, setContainerSize] = useState<\n | {\n width: number;\n height: number;\n }\n | undefined\n >(undefined);\n\n const [tab, setTab] = useState<\"orderBook\" | \"lastTrades\">(\"orderBook\");\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setContainerSize({\n width,\n height,\n });\n }\n });\n\n const targetDiv = containerRef.current;\n\n if (targetDiv) {\n resizeObserver.observe(targetDiv);\n }\n\n return () => {\n if (targetDiv) {\n resizeObserver.unobserve(targetDiv);\n }\n };\n }, []);\n\n return {\n symbol,\n containerSize,\n containerRef: containerRef,\n tab,\n setTab,\n };\n};\n\nexport type OrderBookAndTradesState = ReturnType<\n typeof useOrderBookAndTradesScript\n>;\n","import React from \"react\";\nimport { useOrderBookAndTradesScript } from \"./orderBookAndTrades.script\";\nimport { OrderBookAndTrades } from \"./orderBookAndTrades.ui\";\n\nexport const OrderBookAndTradesWidget: React.FC<{ symbol: string }> = (\n props,\n) => {\n const state = useOrderBookAndTradesScript(props.symbol);\n return <OrderBookAndTrades {...state} />;\n};\n","export { OrderBookAndTrades } from \"./orderBookAndTrades.ui\";\nexport { OrderBookAndTradesWidget } from \"./orderBookAndTrades.widget\";\nexport { useOrderBookAndTradesScript } from \"./orderBookAndTrades.script\";\n","import { FC, PropsWithChildren, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CloseIcon,\n cn,\n Divider,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n Flex,\n Text,\n} from \"@orderly.network/ui\";\nimport type { MarketLayoutPosition } from \"../../../pages/trading/trading.script\";\n\nexport type LayoutPosition = \"left\" | \"right\";\n\nexport type SwitchLayoutProps = {\n layout?: LayoutPosition;\n onLayout?: (layout: LayoutPosition) => void;\n marketLayout?: MarketLayoutPosition;\n onMarketLayout?: (layout: MarketLayoutPosition) => void;\n};\n\nexport const SwitchLayout: FC<SwitchLayoutProps> = (props) => {\n const { t } = useTranslation();\n return (\n <SwitchLayoutDropDown {...props}>\n <Flex\n px={3}\n className={cn(\n \"oui-rounded-md\",\n \"oui-h-[28px]\",\n \"oui-cursor-pointer oui-transition-all\",\n \"oui-bg-base-6 hover:oui-bg-base-4\",\n \"oui-text-base-contrast-54 hover:oui-text-base-contrast-80\",\n )}\n gapX={1}\n ml={3}\n justify=\"center\"\n itemAlign=\"center\"\n >\n <LayoutIcon />\n <Text size=\"2xs\" weight=\"semibold\">\n {t(\"trading.layout\")}\n </Text>\n </Flex>\n </SwitchLayoutDropDown>\n );\n};\n\nexport const SwitchLayoutDropDown: FC<PropsWithChildren<SwitchLayoutProps>> = (\n props,\n) => {\n const [open, setOpen] = useState(false);\n const [hoveredMarket, setHoveredMarket] =\n useState<MarketLayoutPosition | null>(null);\n const { t } = useTranslation();\n const renderItem = (position: LayoutPosition) => {\n return (\n <Flex\n direction=\"column\"\n gapY={2}\n onClick={() => {\n props.onLayout?.(position);\n setOpen(false);\n }}\n className=\"oui-group\"\n >\n <Flex\n justify={position === \"right\" ? \"end\" : \"start\"}\n className={cn(\n \"oui-w-[148px] oui-h-[100px]\",\n \"oui-bg-base-10 oui-rounded-[10px]\",\n \"oui-border-[4px] oui-border-base-5 group-hover:oui-border-primary-light\",\n props.layout === position && \"!oui-border-primary-light\",\n )}\n >\n <Box p={1}>\n <OrderEntryIcon />\n </Box>\n </Flex>\n <Text\n size=\"2xs\"\n intensity={54}\n className={cn(\n \"oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80\",\n props.layout === position && \"oui-text-base-contrast-80\",\n )}\n >\n {String(\n position === \"right\"\n ? t(\"trading.layout.advanced.right\")\n : t(\"trading.layout.advanced.left\"),\n )}\n </Text>\n </Flex>\n );\n };\n\n const renderMarketItem = (position: MarketLayoutPosition) => {\n const getIcon = (isHovered: boolean) => {\n const isSelected = props.marketLayout === position;\n switch (position) {\n case \"left\":\n return (\n <MarketLeftIcon isSelected={isSelected} isHovered={isHovered} />\n );\n case \"top\":\n return (\n <MarketTopIcon isSelected={isSelected} isHovered={isHovered} />\n );\n case \"bottom\":\n return (\n <MarketBottomIcon isSelected={isSelected} isHovered={isHovered} />\n );\n case \"hide\":\n return (\n <MarketHideIcon isSelected={isSelected} isHovered={isHovered} />\n );\n default:\n return (\n <MarketLeftIcon isSelected={isSelected} isHovered={isHovered} />\n );\n }\n };\n\n const getLabel = () => {\n switch (position) {\n case \"left\":\n return t(\"trading.layout.markets.left\");\n case \"top\":\n return t(\"trading.layout.markets.top\");\n case \"bottom\":\n return t(\"trading.layout.markets.bottom\");\n case \"hide\":\n return t(\"trading.layout.markets.hide\");\n default:\n return t(\"trading.layout.markets.left\");\n }\n };\n\n return (\n <Flex\n direction=\"column\"\n gapY={2}\n onClick={() => {\n props.onMarketLayout?.(position);\n setOpen(false);\n }}\n onMouseEnter={() => setHoveredMarket(position)}\n onMouseLeave={() => setHoveredMarket(null)}\n className=\"oui-group\"\n >\n <Flex justify=\"center\" className=\"oui-w-[148px] oui-h-[100px]\">\n {getIcon(hoveredMarket === position)}\n </Flex>\n <Text\n size=\"2xs\"\n intensity={54}\n className={cn(\n \"oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80\",\n props.marketLayout === position && \"oui-text-base-contrast-80\",\n )}\n >\n {String(getLabel())}\n </Text>\n </Flex>\n );\n };\n\n const content = (\n <>\n <Flex\n itemAlign=\"center\"\n justify=\"between\"\n mt={3}\n className=\"oui-mb-[10px] oui-min-w-[500px]\"\n >\n <Text size=\"base\" intensity={98}>\n {t(\"trading.layout\")}\n </Text>\n <CloseIcon\n size={16}\n className=\"oui-text-base-contrast-80 oui-cursor-pointer\"\n opacity={0.98}\n onClick={() => {\n setOpen(false);\n }}\n />\n </Flex>\n <Divider />\n <Flex direction=\"column\" gapY={2} mt={5} itemAlign=\"start\">\n <Text size=\"xs\" intensity={98}>\n {String(t(\"trading.layout.advanced\"))}\n </Text>\n <Flex gapX={6}>\n {renderItem(\"right\")}\n {renderItem(\"left\")}\n </Flex>\n </Flex>\n <Flex direction=\"column\" gapY={2} mt={5} itemAlign=\"start\">\n <Text size=\"xs\" intensity={98}>\n {String(t(\"trading.layout.markets\"))}\n </Text>\n <Flex gapX={6}>\n {renderMarketItem(\"left\")}\n {renderMarketItem(\"top\")}\n {renderMarketItem(\"bottom\")}\n {renderMarketItem(\"hide\")}\n </Flex>\n </Flex>\n </>\n );\n\n return (\n <DropdownMenuRoot open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(e) => e.preventDefault()}\n onClick={(e) => e.stopPropagation()}\n align=\"end\"\n className={cn(\"oui-bg-base-8 oui-p-5 oui-pt-0 oui-font-semibold\")}\n >\n {content}\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n\nexport const LayoutIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M3.832 1.994c-.736 0-1.333.597-1.333 1.333v9.334c0 .737.597 1.333 1.333 1.333H6.5c.737 0 1.333-.596 1.333-1.333V3.327c0-.736-.596-1.333-1.333-1.333zm6.667 0c-.737 0-1.333.597-1.333 1.333v2.667c0 .737.596 1.333 1.333 1.333h2.667c.736 0 1.333-.596 1.333-1.333V3.327c0-.736-.597-1.333-1.333-1.333zm.437 6.679a2.7 2.7 0 0 0-1.033.607.284.284 0 0 0-.061.339c.222.411-.01.851-.512.876a.29.29 0 0 0-.26.217c-.05.207-.07.38-.07.608 0 .19.02.407.06.599a.28.28 0 0 0 .252.217c.506.044.756.429.53.92a.28.28 0 0 0 .06.321c.296.273.635.466 1.034.59a.285.285 0 0 0 .312-.104c.31-.427.757-.428 1.05 0a.28.28 0 0 0 .313.113 2.8 2.8 0 0 0 1.042-.599.28.28 0 0 0 .06-.33c-.23-.466.035-.894.513-.902a.28.28 0 0 0 .269-.209c.048-.199.06-.372.06-.616q0-.316-.069-.616a.276.276 0 0 0-.27-.217c-.469-.001-.732-.463-.502-.868a.27.27 0 0 0-.053-.339 2.8 2.8 0 0 0-1.059-.607.274.274 0 0 0-.312.112c-.268.417-.77.425-1.033.009a.284.284 0 0 0-.321-.121m.842 1.536a1.111 1.111 0 1 1 0 2.222 1.111 1.111 0 0 1 0-2.222\" />\n </svg>\n);\n\nexport const OrderEntryIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"36\"\n height=\"84\"\n viewBox=\"0 0 36 84\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"36\" height=\"17\" rx=\"2\" fill=\"#181C23\" />\n <rect y=\"19\" width=\"36\" height=\"54\" rx=\"2\" fill=\"#181C23\" />\n <rect y=\"75\" width=\"36\" height=\"9\" rx=\"2\" fill=\"#181C23\" />\n <rect\n x=\"3\"\n y=\"79\"\n width=\"30\"\n height=\"1\"\n rx=\"0.5\"\n fill=\"url(#paint0_linear_17647_26849)\"\n />\n <rect x=\"3\" y=\"22\" width=\"14\" height=\"6\" rx=\"2\" fill=\"#008676\" />\n <rect x=\"19\" y=\"22\" width=\"14\" height=\"6\" rx=\"2\" fill=\"#D92D6B\" />\n <rect x=\"3\" y=\"11\" width=\"14\" height=\"3\" rx=\"1.5\" fill=\"#333948\" />\n <rect x=\"19\" y=\"11\" width=\"14\" height=\"3\" rx=\"1.5\" fill=\"#335FFC\" />\n <rect x=\"3\" y=\"62\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#008676\" />\n <defs>\n <linearGradient\n id=\"paint0_linear_17647_26849\"\n x1=\"33\"\n y1=\"79.5\"\n x2=\"3\"\n y2=\"79.5\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#779eff\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport const MarketLeftIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <rect x=\"8\" y=\"8\" width=\"24\" height=\"84\" rx=\"2\" fill=\"#181C23\" />\n <rect x=\"16\" y=\"10\" width=\"4\" height=\"2\" rx=\"1\" fill=\"#333948\" />\n <rect x=\"21\" y=\"10\" width=\"4\" height=\"2\" rx=\"1\" fill=\"#333948\" />\n <rect x=\"26\" y=\"10\" width=\"4\" height=\"2\" rx=\"1\" fill=\"#333948\" />\n <rect x=\"10\" y=\"10\" width=\"5\" height=\"2\" rx=\"1\" fill=\"#335FFC\" />\n <rect x=\"10\" y=\"14\" width=\"20\" height=\"76\" rx=\"2\" fill=\"#282E3A\" />\n </svg>\n );\n};\n\nexport const MarketTopIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <rect x=\"8\" y=\"8\" width=\"132\" height=\"8\" rx=\"2\" fill=\"#181C23\" />\n <g clipPath=\"url(#clip0_31319_74729)\">\n <rect x=\"10\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#335FFC\" />\n <rect x=\"28\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"46\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"64\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"82\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"100\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"118\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"136\" y=\"10\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n </g>\n <defs>\n <clipPath id=\"clip0_31319_74729\">\n <rect\n width=\"130\"\n height=\"4\"\n fill=\"white\"\n transform=\"translate(10 10)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const MarketBottomIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <rect x=\"8\" y=\"84\" width=\"132\" height=\"8\" rx=\"2\" fill=\"#181C23\" />\n <g clipPath=\"url(#clip0_31319_74743)\">\n <rect x=\"10\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#335FFC\" />\n <rect x=\"28\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"46\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"64\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"82\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"100\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"118\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n <rect x=\"136\" y=\"86\" width=\"16\" height=\"4\" rx=\"2\" fill=\"#333948\" />\n </g>\n <defs>\n <clipPath id=\"clip0_31319_74743\">\n <rect\n width=\"130\"\n height=\"4\"\n fill=\"white\"\n transform=\"translate(10 86)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const MarketHideIcon: FC<\n SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n const getStrokeColor = () => {\n if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n };\n\n return (\n <svg\n width=\"148\"\n height=\"100\"\n viewBox=\"0 0 148 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect\n x=\"2\"\n y=\"2\"\n width=\"144\"\n height=\"96\"\n rx=\"10\"\n fill=\"#07080A\"\n stroke={getStrokeColor()}\n strokeWidth=\"4\"\n />\n <g clipPath=\"url(#clip0_31319_74757)\">\n <rect x=\"8\" y=\"8\" width=\"132\" height=\"84\" rx=\"2\" fill=\"#181C23\" />\n <rect\n x=\"66.8789\"\n y=\"-76\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 66.8789 -76)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"73.9492\"\n y=\"-68.929\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 73.9492 -68.929)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"81.0195\"\n y=\"-61.8579\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 81.0195 -61.8579)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"88.0938\"\n y=\"-54.7867\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 88.0938 -54.7867)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"95.1641\"\n y=\"-47.7157\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 95.1641 -47.7157)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"102.234\"\n y=\"-40.6447\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 102.234 -40.6447)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"109.305\"\n y=\"-33.5736\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 109.305 -33.5736)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"116.375\"\n y=\"-26.5026\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 116.375 -26.5026)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"123.449\"\n y=\"-19.4315\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 123.449 -19.4315)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"130.52\"\n y=\"-12.3604\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 130.52 -12.3604)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"137.59\"\n y=\"-5.28931\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 137.59 -5.28931)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"144.66\"\n y=\"1.78174\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 144.66 1.78174)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"151.73\"\n y=\"8.85278\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 151.73 8.85278)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"158.805\"\n y=\"15.9238\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 158.805 15.9238)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"165.875\"\n y=\"22.995\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 165.875 22.995)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"172.945\"\n y=\"30.066\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 172.945 30.066)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"180.016\"\n y=\"37.1371\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 180.016 37.1371)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"187.086\"\n y=\"44.2081\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 187.086 44.2081)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"194.156\"\n y=\"51.2792\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 194.156 51.2792)\"\n fill=\"#20252F\"\n />\n <rect\n x=\"201.23\"\n y=\"58.3503\"\n width=\"4\"\n height=\"188\"\n rx=\"2\"\n transform=\"rotate(45 201.23 58.3503)\"\n fill=\"#20252F\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_31319_74757\">\n <rect\n width=\"132\"\n height=\"84\"\n fill=\"white\"\n transform=\"translate(8 8)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { useState } from \"react\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum TopTabType {\n chart = \"chart\",\n trades = \"trades\",\n data = \"data\",\n}\n\nexport const useTopTabScript = () => {\n const [tab, setTab] = useState<TopTabType>(TopTabType.chart);\n const { symbol } = useTradingPageContext();\n const [visible, setVisible] = useState(true);\n\n const toggleContentVisible = () => {\n setVisible((e) => !e);\n };\n\n return {\n tab,\n setTab,\n symbol,\n toggleContentVisible,\n setVisible,\n visible,\n };\n};\n\nexport type TopTabState = ReturnType<typeof useTopTabScript>;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { TradingviewWidgetProps } from \"./tradingview.widget\";\n\nconst MaxHeight = 354;\nconst MinHeight = 234;\nconst Key = \"TRADINGVIEW_MOBILE_HEIGHT\";\n\nexport function useTradingviewScript(props: TradingviewWidgetProps) {\n const [height, setHeight] = useLocalStorage(Key, MaxHeight);\n const [dragging, setDragging] = useState(false);\n const dragRef = useRef<HTMLDivElement>(null);\n const boxRef = useRef<HTMLDivElement>(null);\n const [offsetY, setOffsetY] = useState(0);\n const topRef = useRef<number>(0);\n\n const handleTouchStart = useCallback((e: TouchEvent) => {\n if (!boxRef.current) {\n return;\n }\n setDragging(true);\n const event = e.touches[0];\n const rect = boxRef.current.getBoundingClientRect();\n e.stopPropagation();\n e.preventDefault();\n\n const offsetY = event.clientY - rect.bottom;\n topRef.current = rect.top;\n setOffsetY(offsetY);\n }, []);\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (!boxRef.current) {\n return;\n }\n if (dragging) {\n e.stopPropagation();\n e.preventDefault();\n\n const event = e.touches[0];\n\n const newHeight = event.clientY - topRef.current - offsetY;\n setHeight(\n Math.min(Math.max(Math.round(newHeight), MinHeight), MaxHeight),\n );\n return false;\n }\n },\n [dragging, offsetY],\n );\n\n const handleTouchEnd = useCallback(() => {\n setDragging(false);\n }, []);\n\n useEffect(() => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n\n drag.addEventListener(\"touchstart\", handleTouchStart);\n\n return () => {\n drag.removeEventListener(\"touchstart\", handleTouchStart);\n };\n }, [handleTouchStart]);\n\n useEffect(() => {\n document.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n document.addEventListener(\"touchend\", handleTouchEnd);\n\n return () => {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", handleTouchEnd);\n };\n }, [dragging, handleTouchMove, handleTouchEnd]);\n return {\n ...props,\n\n height,\n dragging,\n dragRef,\n boxRef,\n };\n}\n\nexport type TradingviewState = ReturnType<typeof useTradingviewScript>;\n","import React, { FC, SVGProps } from \"react\";\n\nexport const KlineDragIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g id=\"Arrows-expand\">\n <path\n id=\"Vector\"\n d=\"M5.9989 1.00708C5.8709 1.00708 5.7369 1.05008 5.6394 1.14758L3.7959 3.00708L4.4989 3.71008L5.4989 2.72607V4.50708C5.4989 4.78308 5.7229 5.00708 5.9989 5.00708C6.2749 5.00708 6.4989 4.78308 6.4989 4.50708V2.72607L7.4989 3.71008L8.2019 3.00708L6.3584 1.14758C6.2604 1.05008 6.1269 1.00708 5.9989 1.00708ZM5.9989 7.00707C5.7229 7.00707 5.4989 7.23107 5.4989 7.50707V9.28808L4.4989 8.30407L3.7959 9.00707L5.6394 10.8666C5.8349 11.0616 6.1629 11.0616 6.3584 10.8666L8.2019 9.00707L7.4989 8.30407L6.4989 9.28808V7.50707C6.4989 7.23107 6.2749 7.00707 5.9989 7.00707Z\"\n />\n </g>\n </svg>\n);\n","import React from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { TradingviewWidget } from \"@orderly.network/ui-tradingview\";\nimport { KlineDragIcon } from \"../../base/icons\";\nimport type { TradingviewState } from \"./tradingview.script\";\n\nexport const TradingviewUI: React.FC<TradingviewState> = (props) => {\n return (\n <div\n className=\"oui-pb-1 oui-flex oui-flex-col oui-gap-1\"\n style={{ height: props.height }}\n ref={props.boxRef}\n >\n <div className=\"oui-w-full oui-h-full\">\n <TradingviewWidget\n symbol={props.symbol}\n libraryPath={props.tradingViewConfig?.library_path}\n mode={3}\n scriptSRC={props.tradingViewConfig?.scriptSRC}\n customCssUrl={props.tradingViewConfig?.customCssUrl}\n {...props.tradingViewConfig}\n />\n </div>\n <div className=\"oui-relative oui-w-full\">\n <div\n ref={props.dragRef}\n className={cn(\n \"oui-h-[1px] oui-absolute oui-left-0 oui-right-0 oui-bottom-0 oui-top-0 oui-z-10 oui-mt-[7px] oui-bg-base-contrast-12\",\n props.dragging && \"oui-bg-primary \",\n )}\n >\n <KlineDragIcon\n className={cn(\n \"oui-w-3 oui-h-3 oui-absolute oui-left-1/2 -oui-top-[5px] -oui-translate-y-[0.5px] oui-text-base-contrast-12\",\n props.dragging && \" oui-text-primary\",\n )}\n />\n </div>\n </div>\n </div>\n );\n};\n","import React from \"react\";\nimport { TradingViewConfigInterface } from \"../../../types/types\";\nimport { useTradingviewScript } from \"./tradingview.script\";\nimport { TradingviewUI } from \"./tradingview.ui\";\n\nexport interface TradingviewWidgetProps {\n symbol: string;\n tradingViewConfig: TradingViewConfigInterface;\n}\n\nexport const TradingviewWidget: React.FC<TradingviewWidgetProps> = (props) => {\n const state = useTradingviewScript(props);\n return <TradingviewUI {...state} />;\n};\n","import React from \"react\";\nimport { LastTradesWidget } from \"../../base/lastTrades\";\n\nexport const MWebLastTrades: React.FC<{ symbol: string }> = (props) => {\n return (\n <LastTradesWidget\n symbol={props.symbol}\n classNames={{\n root: \"oui-px-3 \",\n list: \"oui-min-h-[141px] oui-max-h-[202px] oui-w-full\",\n listHeader: \"oui-text-xs oui-text-base-contrast-36\",\n listItem: {\n left: \"oui-text-xs\",\n mid: \"oui-text-xs\",\n right: \"oui-text-xs\",\n },\n }}\n />\n );\n};\n","import { FC } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { TradeDataState } from \"./tradeData.script\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const TradeData: FC<TradeDataState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"column\"} gap={2}>\n <Row\n title={t(\"common.markPrice\")}\n value={props.ticker?.mark_price}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"common.indexPrice\")}\n value={props.ticker?.index_price}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"markets.column.24hVolume\")}\n value={props.vol_24h}\n dp={props.symbolInfo.quote_dp}\n rule=\"human\"\n showUSDC\n />\n <Row\n title={t(\"trading.column.24High\")}\n value={props.ticker?.[\"24h_high\"]}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"trading.column.24Low\")}\n value={props.ticker?.[\"24h_low\"]}\n dp={props.symbolInfo.quote_dp}\n />\n <Row\n title={t(\"markets.openInterest\")}\n value={props.openInterest}\n dp={props.symbolInfo.quote_dp}\n rule=\"human\"\n showUSDC\n />\n </Flex>\n );\n};\n\nconst Row = (props: {\n title: string;\n value: any;\n dp?: number;\n rule?: \"percentages\" | \"price\" | \"human\";\n showUSDC?: boolean;\n}) => {\n const { title, value, showUSDC, dp, rule = \"price\" } = props;\n return (\n <Flex justify={\"between\"} width={\"100%\"} className=\"oui-text-xs\">\n <Text intensity={36}>{title}</Text>\n <Flex gap={1}>\n <Text.numeral rule={rule} dp={dp} intensity={80}>\n {value}\n </Text.numeral>\n {showUSDC && <Text intensity={36}>USDC</Text>}\n </Flex>\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport { useTickerStream } from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport const useTradeDataScript = (props: { symbol: string }) => {\n const { symbol } = props;\n const ticker = useTickerStream(symbol);\n const { symbolInfo } = useTradingPageContext();\n const vol_24h = useMemo(() => {\n const close = ticker?.[\"24h_close\"];\n const volume = ticker?.[\"24h_volume\"];\n if (close && volume && !isNaN(close) && !isNaN(volume)) {\n return new Decimal(close)\n .mul(volume)\n .toFixed(symbolInfo.quote_dp, Decimal.ROUND_DOWN);\n }\n return undefined;\n }, [ticker]);\n\n const openInterest = useMemo(() => {\n const markPrice = ticker?.[\"mark_price\"];\n const openInterest = ticker?.[\"open_interest\"];\n if (markPrice && openInterest && !isNaN(markPrice)) {\n return new Decimal(markPrice)\n .mul(Number(openInterest))\n .toFixed(symbolInfo.quote_dp, Decimal.ROUND_DOWN);\n }\n return undefined;\n }, [ticker]);\n return {\n ticker,\n symbolInfo,\n vol_24h,\n openInterest,\n };\n};\n\nexport type TradeDataState = ReturnType<typeof useTradeDataScript>;\n","import React from \"react\";\nimport { useTradeDataScript } from \"./tradeData.script\";\nimport { TradeData } from \"./tradeData.ui\";\n\nexport const TradeDataWidget: React.FC<{ symbol: string }> = (props) => {\n const state = useTradeDataScript(props);\n return <TradeData {...state} />;\n};\n","export { TradeData } from \"./tradeData.ui\";\nexport { TradeDataWidget } from \"./tradeData.widget\";\nexport { useTradeDataScript } from \"./tradeData.script\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\nimport { TopTabState, TopTabType } from \"./topTab.script\";\n\nconst LazyTradingviewWidget = React.lazy(() =>\n import(\"../tradingview/tradingview.widget\").then((mod) => {\n return { default: mod.TradingviewWidget };\n }),\n);\n\nconst LazyMWebLastTrades = React.lazy(() =>\n import(\"../lastTrades/lastTrades.widget\").then((mod) => {\n return { default: mod.MWebLastTrades };\n }),\n);\n\nconst LazyTradeDataWidget = React.lazy(() =>\n import(\"../tradeData\").then((mod) => {\n return { default: mod.TradeDataWidget };\n }),\n);\n\nexport const TopTab: React.FC<TopTabState & { className?: string }> = (\n props,\n) => {\n const { t } = useTranslation();\n const { tradingViewConfig } = useTradingPageContext();\n\n return (\n <Tabs\n variant=\"contained\"\n value={props.tab}\n contentVisible={props.visible}\n onValueChange={(e) => {\n props.setTab(e as TopTabType);\n props.setVisible(true);\n }}\n className={props.className}\n classNames={{\n tabsList: \"oui-p-2\",\n tabsContent: \"oui-min-h-[176px] oui-max-h-[396px]\",\n }}\n style={{\n marginBottom: props.tab === TopTabType.chart ? \"8px\" : 0,\n }}\n trailing={\n <button className=\"oui-px-5\" onClick={props.toggleContentVisible}>\n <ChevronIcon\n className={props.visible ? \"oui-rotate-0\" : \"oui-rotate-180\"}\n />\n </button>\n }\n >\n <TabPanel title={t(\"trading.tabs.chart\")} value={TopTabType.chart}>\n <React.Suspense fallback={null}>\n <LazyTradingviewWidget\n symbol={props.symbol}\n tradingViewConfig={tradingViewConfig}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel title={t(\"trading.tabs.trades\")} value={TopTabType.trades}>\n <React.Suspense fallback={null}>\n <LazyMWebLastTrades symbol={props.symbol} />\n </React.Suspense>\n </TabPanel>\n <TabPanel title={t(\"trading.tabs.data\")} value={TopTabType.data}>\n <Box px={3}>\n <React.Suspense fallback={null}>\n <LazyTradeDataWidget symbol={props.symbol} />\n </React.Suspense>\n </Box>\n </TabPanel>\n </Tabs>\n );\n};\n\nconst ChevronIcon: React.FC<{ className?: string }> = (props) => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn(\n \"oui-fill-base-contrast-54 hover:oui-fill-base-contrast-80\",\n props.className,\n )}\n >\n <path\n d=\"M5.721 4.585 2.726 6.578a.51.51 0 0 0-.14.7.51.51 0 0 0 .702.14l2.714-1.806 2.715 1.806c.23.153.549.089.702-.14a.51.51 0 0 0-.14-.7L6.283 4.585a.51.51 0 0 0-.562 0\"\n // fill=\"url(#a)\"\n />\n <defs>\n {/* <linearGradient\n id=\"a\"\n x1=\"9.502\"\n y1=\"6.001\"\n x2=\"2.502\"\n y2=\"6.001\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient> */}\n </defs>\n </svg>\n );\n};\n","import React from \"react\";\nimport { useTopTabScript } from \"./topTab.script\";\nimport { TopTab } from \"./topTab.ui\";\n\nexport const TopTabWidget: React.FC<{ className?: string }> = (props) => {\n const state = useTopTabScript();\n return <TopTab className={props.className} {...state} />;\n};\n","export { TopTab } from \"./topTab.ui\";\nexport { TopTabWidget } from \"./topTab.widget\";\nexport { useTopTabScript } from \"./topTab.script\";\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { OrderEntryWidget } from \"@orderly.network/ui-order-entry\";\nimport type { OrderBookAndEntryState } from \"./orderBookAndEntry.script\";\n\nconst LazyOrderBookWidget = React.lazy(() =>\n import(\"../../base/orderBook\").then((mod) => {\n return { default: mod.OrderBookWidget };\n }),\n);\n\nexport const OrderBookAndEntry: React.FC<\n OrderBookAndEntryState & { className?: string }\n> = (props) => {\n const [height, setHeight] = useState(0);\n const divRef = useRef(null);\n\n useEffect(() => {\n const div = divRef.current;\n if (!div) {\n return;\n }\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setHeight(entry.contentRect.height);\n }\n });\n resizeObserver.observe(div);\n return () => {\n resizeObserver.unobserve(div);\n };\n }, []);\n return (\n <div\n className={cn(\n \"oui-mx-1 oui-grid oui-grid-cols-[4fr,6fr] oui-gap-1 \",\n props.className,\n )}\n >\n <div\n className=\"oui-rounded-xl oui-bg-base-9\"\n style={{ height: `${height + 16}px` }}\n >\n <React.Suspense fallback={null}>\n <LazyOrderBookWidget\n symbol={props.symbol}\n height={height ? height - 44 : undefined}\n />\n </React.Suspense>\n </div>\n <div className=\"oui-rounded-xl oui-bg-base-9 oui-p-2\">\n <OrderEntryWidget symbol={props.symbol} containerRef={divRef} />\n </div>\n </div>\n );\n};\n","import { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport const useOrderBookAndEntryScript = () => {\n const { symbol } = useTradingPageContext();\n return {\n symbol,\n };\n};\n\nexport type OrderBookAndEntryState = ReturnType<\n typeof useOrderBookAndEntryScript\n>;\n","import React from \"react\";\nimport { useOrderBookAndEntryScript } from \"./orderBookAndEntry.script\";\nimport { OrderBookAndEntry } from \"./orderBookAndEntry.ui\";\n\nexport const OrderBookAndEntryWidget: React.FC<{ className?: string }> = (\n props,\n) => {\n const state = useOrderBookAndEntryScript();\n return <OrderBookAndEntry className={props.className} {...state} />;\n};\n","export { OrderBookAndEntry } from \"./orderBookAndEntry.ui\";\nexport { OrderBookAndEntryWidget } from \"./orderBookAndEntry.widget\";\nexport { useOrderBookAndEntryScript } from \"./orderBookAndEntry.script\";\n","import { useState } from \"react\";\nimport { useOrderStream } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal, Text } from \"@orderly.network/ui\";\nimport { TabType } from \"@orderly.network/ui-orders\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport {\n usePendingOrderCount,\n usePositionsCount,\n useTradingLocalStorage,\n} from \"../../../hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum DataListTabType {\n position = \"Position\",\n pending = \"Pending\",\n tp_sl = \"TP/SL\",\n history = \"History\",\n liquidation = \"Liquidation\",\n assets = \"Assets\",\n}\n\nexport enum DataListTabSubType {\n positionHistory = \"Position history\",\n orderHistory = \"Order history\",\n}\n\nexport const useDataListScript = (props: {\n symbol: string;\n className?: string;\n sharePnLConfig?: SharePnLConfig;\n}) => {\n const { symbol, sharePnLConfig } = props;\n const [tab, setTab] = useState<DataListTabType>(DataListTabType.position);\n const [subTab, setSubTab] = useState<DataListTabSubType>(\n DataListTabSubType.positionHistory,\n );\n const { t } = useTranslation();\n\n const { onSymbolChange } = useTradingPageContext();\n const localStorage = useTradingLocalStorage();\n\n const [_, { cancelAllPendingOrders, cancelAllTPSLOrders }] = useOrderStream(\n {},\n );\n const { positionCount } = usePositionsCount(symbol);\n const { pendingOrderCount, tpSlOrderCount } = usePendingOrderCount(symbol);\n\n const onCloseAll = (type: TabType) => {\n const { title, content } = getDialogInfo(\n type,\n t,\n localStorage.showAllSymbol ? undefined : symbol,\n );\n modal.confirm({\n title: title,\n content: <Text size=\"2xs\">{content}</Text>,\n\n onOk: async () => {\n try {\n // await cancelAll(null, { source_type: \"ALL\" });\n if (tab === DataListTabType.tp_sl) {\n await cancelAllTPSLOrders(\n localStorage.showAllSymbol ? undefined : symbol,\n );\n } else {\n await cancelAllPendingOrders(\n localStorage.showAllSymbol ? undefined : symbol,\n );\n }\n return Promise.resolve(true);\n } catch (error) {\n // @ts-ignore\n if (error?.message !== undefined) {\n // @ts-ignore\n toast.error(error.message);\n }\n return Promise.resolve(false);\n } finally {\n Promise.resolve();\n }\n },\n });\n };\n\n return {\n tab,\n setTab,\n subTab,\n setSubTab,\n sharePnLConfig,\n symbol,\n positionCount,\n pendingOrderCount,\n tpSlOrderCount,\n ...localStorage,\n onCloseAll,\n onSymbolChange,\n };\n};\n\nexport type DataListState = ReturnType<typeof useDataListScript>;\n\ntype TranslationFn = (...args: any[]) => string;\n\nconst getDialogInfo = (type: TabType, t: TranslationFn, symbol?: string) => {\n // symbol like this: PERP_BTC_USDC, but i want to show BTC, pls help me to format the symbol\n const formattedSymbol = symbol ? formatSymbol(symbol, \"base\") : symbol;\n switch (type) {\n case TabType.pending:\n if (symbol !== undefined) {\n return {\n title: t(\"orders.pending.cancelAll.forSymbol\", {\n symbol: formattedSymbol,\n }),\n content: t(\"orders.pending.cancelAll.forSymbol.description\", {\n symbol: formattedSymbol,\n }),\n };\n }\n return {\n title: t(\"orders.pending.cancelAll\"),\n content: t(\"orders.pending.cancelAll.description\"),\n };\n case TabType.tp_sl:\n if (symbol !== undefined) {\n return {\n title: t(\"orders.tpsl.cancelAll.forSymbol\", {\n symbol: formattedSymbol,\n }),\n content: t(\"orders.tpsl.cancelAll.forSymbol.description\", {\n symbol: formattedSymbol,\n }),\n };\n }\n return {\n title: t(\"orders.tpsl.cancelAll\"),\n content: t(\"orders.tpsl.cancelAll.description\"),\n };\n default:\n return {\n title: \"\",\n content: \"\",\n };\n }\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AssetsModule } from \"@orderly.network/portfolio\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport {\n Button,\n Checkbox,\n Divider,\n Flex,\n TabPanel,\n Tabs,\n Text,\n} from \"@orderly.network/ui\";\nimport type { TabPanelProps } from \"@orderly.network/ui\";\nimport { MobileOrderListWidget, TabType } from \"@orderly.network/ui-orders\";\nimport {\n MobileLiquidationWidget,\n MobilePositionHistoryWidget,\n MobilePositionsWidget,\n} from \"@orderly.network/ui-positions\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport {\n type DataListState,\n DataListTabSubType,\n DataListTabType,\n} from \"./dataList.script\";\n\nconst LazyPositionHeaderWidget = React.lazy(() =>\n import(\"../../base/positionHeader\").then((mod) => {\n return { default: mod.PositionHeaderWidget };\n }),\n);\n\nconst SymbolControlHeader: React.FC<\n DataListState & { type: TabType; ordersStatus?: OrderStatus }\n> = (props) => {\n const { pendingOrderCount, tpSlOrderCount, type, symbol } = props;\n const { t } = useTranslation();\n const cancelAllDisabled = useMemo(() => {\n if (type === TabType.pending) {\n return pendingOrderCount === 0;\n }\n if (type === TabType.tp_sl) {\n return tpSlOrderCount === 0;\n }\n return false;\n }, [pendingOrderCount, tpSlOrderCount, type]);\n const formattedSymbol = props.showAllSymbol\n ? undefined\n : symbol\n ? formatSymbol(symbol, \"base\")\n : symbol;\n return (\n <Flex\n px={2}\n py={2}\n width={\"100%\"}\n justify={\"between\"}\n gap={2}\n className=\"oui-rounded-b-xl oui-bg-base-9\"\n >\n <Flex className=\"oui-cursor-pointer oui-gap-[2px]\">\n <Checkbox\n color=\"white\"\n checked={!props.showAllSymbol}\n onCheckedChange={(checked: boolean) => {\n props.setShowAllSymbol(!checked);\n }}\n />\n <Text\n size=\"2xs\"\n intensity={54}\n onClick={() => {\n props.setShowAllSymbol(!props.showAllSymbol);\n }}\n >\n {t(\"trading.hideOtherSymbols\")}\n </Text>\n </Flex>\n <Button\n variant=\"outlined\"\n size=\"xs\"\n color=\"secondary\"\n onClick={() => props.onCloseAll(props.type)}\n disabled={cancelAllDisabled}\n >\n {!props.showAllSymbol\n ? t(\"orders.cancelAll.ofSymbol\", { symbol: formattedSymbol })\n : t(\"orders.cancelAll\")}\n </Button>\n </Flex>\n );\n};\n\nconst OrdersView: React.FC<\n DataListState & { type: TabType; ordersStatus?: OrderStatus }\n> = (props) => {\n return (\n <Flex direction={\"column\"} pb={2} width={\"100%\"}>\n <Divider className=\"oui-w-full\" />\n {props.type !== TabType.orderHistory && (\n <SymbolControlHeader {...props} />\n )}\n <MobileOrderListWidget\n symbol={props.showAllSymbol ? undefined : props.symbol}\n onSymbolChange={props.onSymbolChange}\n type={props.type}\n ordersStatus={props.ordersStatus}\n classNames={{\n root: \"oui-w-full oui-hide-scrollbar oui-overflow-y-hidden\",\n content: \"!oui-space-y-1\",\n cell: \"oui-py-2 oui-bg-base-9 oui-p-2 oui-rounded-xl\",\n }}\n sharePnLConfig={props.sharePnLConfig}\n showFilter={props.type === TabType.orderHistory}\n filterConfig={{ range: { from: undefined, to: undefined } }}\n />\n </Flex>\n );\n};\n\nconst PositionsView: React.FC<DataListState> = (props) => {\n return (\n <Flex direction={\"column\"} gap={2}>\n <React.Suspense fallback={null}>\n <LazyPositionHeaderWidget\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n setPnlNotionalDecimalPrecision={props.setPnlNotionalDecimalPrecision}\n symbol={props.showAllSymbol ? undefined : props.symbol}\n unPnlPriceBasis={props.unPnlPriceBasis}\n setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <MobilePositionsWidget\n symbol={props.showAllSymbol ? undefined : props.symbol}\n onSymbolChange={props.onSymbolChange}\n sharePnLConfig={props.sharePnLConfig}\n pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n />\n </React.Suspense>\n </Flex>\n );\n};\n\nconst HistoryTab: React.FC<DataListState> = (props) => {\n const { t } = useTranslation();\n return (\n <div className=\"oui-min-h-[300px]\">\n <Tabs\n value={props.subTab}\n onValueChange={(e: any) => props.setSubTab(e)}\n size=\"md\"\n classNames={{ tabsList: \"oui-bg-base-9 oui-rounded-t-xl oui-p-2\" }}\n >\n <TabPanel\n title={t(\"positions.positionHistory\")}\n value={DataListTabSubType.positionHistory}\n >\n <MobilePositionHistoryWidget\n symbol={props.showAllSymbol ? undefined : props.symbol}\n onSymbolChange={props.onSymbolChange}\n classNames={{ cell: \"oui-p-2 oui-bg-base-9 oui-rounded-xl\" }}\n sharePnLConfig={props.sharePnLConfig}\n />\n </TabPanel>\n <TabPanel\n title={t(\"orders.orderHistory\")}\n value={DataListTabSubType.orderHistory}\n >\n <OrdersView type={TabType.orderHistory} {...props} />\n </TabPanel>\n </Tabs>\n </div>\n );\n};\n\nexport const DataList: React.FC<DataListState & { className?: string }> = (\n props,\n) => {\n const { t } = useTranslation();\n const {\n positionCount = 0,\n pendingOrderCount = 0,\n tpSlOrderCount = 0,\n showAllSymbol,\n symbol,\n tab,\n setTab,\n className,\n } = props;\n\n const tabPanelItems: (TabPanelProps & { content?: React.ReactNode })[] = [\n {\n title: `${t(\"common.positions\")} ${positionCount > 0 ? `(${positionCount})` : \"\"}`,\n value: DataListTabType.position,\n content: <PositionsView {...props} />,\n },\n {\n title: `${t(\"orders.status.pending\")} ${pendingOrderCount > 0 ? `(${pendingOrderCount})` : \"\"}`,\n value: DataListTabType.pending,\n content: (\n <OrdersView\n type={TabType.pending}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...props}\n />\n ),\n },\n {\n title: `${t(\"common.tpsl\")} ${tpSlOrderCount > 0 ? `(${tpSlOrderCount})` : \"\"}`,\n value: DataListTabType.tp_sl,\n content: (\n <OrdersView\n type={TabType.tp_sl}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...props}\n />\n ),\n },\n {\n title: t(\"trading.history\"),\n value: DataListTabType.history,\n content: <HistoryTab {...props} />,\n },\n {\n title: t(\"positions.liquidation\"),\n value: DataListTabType.liquidation,\n content: (\n <MobileLiquidationWidget\n enableLoadMore\n symbol={showAllSymbol ? undefined : symbol}\n classNames={{ cell: \"oui-p-2 oui-bg-base-9 oui-rounded-xl\" }}\n />\n ),\n },\n {\n title: t(\"common.assets\"),\n value: DataListTabType.assets,\n content: <AssetsModule.AssetsWidget />,\n },\n ];\n\n return (\n <Tabs\n value={tab}\n defaultValue={DataListTabType.position}\n onValueChange={(e) => setTab(e as DataListTabType)}\n size=\"lg\"\n className={className}\n classNames={{\n tabsList:\n \"oui-bg-base-9 oui-rounded-t-xl oui-p-2 oui-overflow-x-scroll oui-hide-scrollbar\",\n }}\n >\n {tabPanelItems.map((item) => {\n const { content, ...rest } = item;\n return (\n <TabPanel {...rest} key={`item-${rest.value}`}>\n {content}\n </TabPanel>\n );\n })}\n </Tabs>\n );\n};\n","import React from \"react\";\nimport type { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { useDataListScript } from \"./dataList.script\";\nimport { DataList } from \"./dataList.ui\";\n\nexport const DataListWidget: React.FC<{\n symbol: string;\n className?: string;\n sharePnLConfig?: SharePnLConfig;\n}> = (props) => {\n const state = useDataListScript(props);\n return <DataList {...state} className={props.className} />;\n};\n","export { DataList } from \"./dataList.ui\";\nexport { DataListWidget } from \"./dataList.widget\";\nexport { useDataListScript } from \"./dataList.script\";\n","export type {\n ShareOptions,\n TradingPageProps,\n ReferralProps,\n TradingRewardsProps,\n} from \"./types/types\";\n\nexport * from \"./components/desktop/dataList\";\nexport * from \"./components/base/lastTrades\";\nexport * from \"./components/desktop/assetView\";\nexport * from \"./components/base/orderBook\";\nexport * from \"./components/desktop/riskRate\";\nexport * from \"./components/desktop/orderBookAndTrades\";\nexport * from \"./components/desktop/layout/splitLayout/splitLayout\";\nexport * from \"./components/mobile/bottomNavBar\";\nexport * from \"./components/mobile/portfolioSheet\";\nexport * from \"./components/mobile/fundingRate\";\nexport * from \"./components/mobile/fundingRateModal\";\nexport * from \"./pages/trading\";\nexport * from \"./provider/tradingPageContext\";\nexport * from \"./provider/tradingPageProvider\";\nexport * from \"./hooks\";\n","import React, { HTMLAttributes, useMemo } from \"react\";\nimport { SplitProps } from \"@uiw/react-split\";\nimport { cn } from \"@orderly.network/ui\";\n\nexport type SplitLineBarProps = Pick<SplitProps, \"mode\"> &\n HTMLAttributes<HTMLDivElement>;\n\nexport const SplitLineBar: React.FC<SplitLineBarProps> = (props) => {\n const { onMouseDown, mode = \"horizontal\", ...rest } = props;\n\n const disable = useMemo(\n () => props.className?.split(\" \").includes(\"disable\"),\n [props.className],\n );\n\n const filterCls = useMemo(\n () => props.className?.split(\" \").filter((cls) => cls !== \"disable\"),\n [props.className],\n );\n\n return (\n <div\n {...rest}\n className={cn(\n filterCls,\n \"!oui-transition-none\",\n \"!oui-shadow-none !oui-bg-transparent\",\n \"hover:!oui-bg-primary-light hover:!oui-shadow-[0px_0px_4px_0px] hover:!oui-shadow-primary-light/80\",\n \"active:!oui-bg-primary-light active:!oui-shadow-[0px_0px_4px_0px] active:!oui-shadow-primary-light/80\",\n \"focus:!oui-bg-primary-light focus:!oui-shadow-[0px_0px_4px_0px] focus:!oui-shadow-primary-light/80\",\n mode === \"horizontal\"\n ? \"!oui-w-[2px] !oui-min-w-[2px] !oui-mx-[3px]\"\n : \"!oui-h-[2px] !oui-min-h-[2px] !oui-my-[3px]\",\n disable && \"oui-pointer-events-none\",\n )}\n >\n <div\n onMouseDown={onMouseDown}\n className={cn(\n \"!oui-transition-none\",\n mode === \"horizontal\" ? \"after:!oui-w-[2px]\" : \"after:!oui-h-[2px]\",\n \"after:!oui-bg-transparent after:!oui-shadow-transparent\",\n )}\n />\n </div>\n );\n};\n","import React, { PropsWithChildren, forwardRef } from \"react\";\nimport Split, { SplitProps } from \"@uiw/react-split\";\nimport { SplitLineBar } from \"./splitLineBar\";\n\ntype SplitLayoutProps = PropsWithChildren<SplitProps> & {\n onSizeChange?: (size: string) => void;\n};\n\nexport const SplitLayout = forwardRef<Split, SplitLayoutProps>((props, ref) => {\n const { onSizeChange, ...rest } = props;\n return (\n <Split\n ref={ref}\n {...rest}\n lineBar\n renderBar={(barProps) => <SplitLineBar {...barProps} mode={props.mode} />}\n onDragEnd={(_, width) => onSizeChange?.(`${width}`)}\n />\n );\n});\n","import { AccountState as AccountStateType } from \"@orderly.network/core\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { useTradingPageContext } from \"../../../../provider/tradingPageContext\";\nimport { AccountSheetWidget } from \"../../accountSheet\";\n\nexport const useAccountScript = () => {\n const { t } = useTranslation();\n const { referral, tradingRewards, bottomSheetLeading } =\n useTradingPageContext();\n const { account, state } = useAccount();\n\n const onShowAccountSheet = () => {\n modal.sheet({\n title: t(\"common.account\"),\n leading: bottomSheetLeading,\n content: <AccountSheetWidget {...referral} {...tradingRewards} />,\n });\n };\n\n return {\n onShowAccountSheet,\n address: account.address,\n state: state as AccountStateType,\n };\n};\n\nexport type AccountState = ReturnType<typeof useAccountScript>;\n","export const HeadIcon = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-rounded-full\"\n >\n <g clipPath=\"url(#a)\">\n <path\n d=\"m31.002 14.493-8.326-22.51L.166.31l8.327 22.51z\"\n fill=\"#03435D\"\n />\n <path\n d=\"m4.456-8.716-18.03 15.84 15.84 18.03 18.03-15.84z\"\n fill=\"#157CF2\"\n />\n <path\n d=\"m17.548 38.67 22.825-7.416-7.416-22.825-22.826 7.416z\"\n fill=\"#F3E200\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#fff\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const CopyIcon = () => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.832 2.492A3.333 3.333 0 0 0 2.5 5.826v5a3.333 3.333 0 0 0 3.333 3.333 3.333 3.333 0 0 0 3.334 3.333h5a3.333 3.333 0 0 0 3.333-3.333v-5a3.333 3.333 0 0 0-3.333-3.333 3.333 3.333 0 0 0-3.334-3.334zm8.334 5c.92 0 1.666.746 1.666 1.667v5c0 .92-.746 1.666-1.666 1.666h-5c-.92 0-1.667-.745-1.667-1.666h3.333a3.333 3.333 0 0 0 3.334-3.334z\"\n fill=\"rgb(var(--oui-color-primary))\"\n />\n </svg>\n );\n};\n\nexport const USDCIcon = (props: { size?: number }) => {\n const { size = 20 } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#a)\">\n <path\n d=\"M10 20c5.542 0 10-4.458 10-10S15.542 0 10 0 0 4.458 0 10s4.458 10 10 10\"\n fill=\"#2775CA\"\n />\n <path\n d=\"M13 11.473c0-1.452-.94-1.95-2.82-2.158-1.344-.166-1.613-.498-1.613-1.078s.448-.955 1.343-.955c.806 0 1.254.25 1.478.872.045.124.18.207.313.207h.717c.179 0 .313-.125.313-.29v-.042c-.179-.913-.985-1.618-2.015-1.701v-.996c0-.166-.134-.29-.358-.332h-.671c-.18 0-.314.124-.359.332v.954c-1.343.166-2.194.996-2.194 2.034 0 1.369.896 1.908 2.776 2.116 1.254.207 1.657.456 1.657 1.12s-.627 1.12-1.477 1.12c-1.165 0-1.568-.456-1.702-1.078a.32.32 0 0 0-.313-.25h-.762c-.179 0-.313.125-.313.291v.042c.179 1.037.895 1.784 2.373 1.991v.996c0 .166.134.29.358.332h.672c.18 0 .313-.124.358-.332v-.996C12.105 13.465 13 12.593 13 11.473\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n d=\"M7.74 16.57c-3.458-1.215-5.23-4.986-3.945-8.324.665-1.821 2.127-3.208 3.944-3.859.178-.086.266-.216.266-.433v-.607c0-.174-.088-.304-.266-.347-.044 0-.133 0-.177.043-4.21 1.3-6.516 5.68-5.186 9.798.798 2.428 2.704 4.292 5.186 5.072.177.087.355 0 .399-.173.044-.043.044-.087.044-.173v-.608c0-.13-.133-.303-.266-.39m4.698-13.527c-.178-.086-.355 0-.4.174-.043.043-.043.086-.043.173v.607c0 .174.133.347.266.434 3.457 1.213 5.23 4.985 3.944 8.323-.664 1.821-2.127 3.209-3.944 3.859-.178.086-.266.216-.266.433v.607c0 .174.088.304.266.347.044 0 .133 0 .177-.043 4.21-1.3 6.515-5.68 5.186-9.798-.798-2.471-2.748-4.335-5.186-5.116\"\n fill=\"#fff\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h20v20H0z\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport const OrderlyIcon = (props: { size?: number }) => {\n const { size = 20 } = props;\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_6403_64483)\">\n <path\n d=\"M10.0245 19.9493C15.5198 19.9493 19.9747 15.4944 19.9747 9.99908C19.9747 4.50371 15.5198 0.0488281 10.0245 0.0488281C4.5291 0.0488281 0.0742188 4.50371 0.0742188 9.99908C0.0742188 15.4944 4.5291 19.9493 10.0245 19.9493Z\"\n fill=\"url(#paint0_linear_6403_64483)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1553 4.89304C14.2199 4.94541 14.1821 5.04758 14.0989 5.04758H5.95035C5.86716 5.04758 5.82936 4.94541 5.894 4.89304C7.0223 3.97912 8.45953 3.43164 10.0246 3.43164C11.5898 3.43164 13.0269 3.97912 14.1553 4.89304Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.47013 11.7869C7.42315 11.7199 7.34748 11.6777 7.26565 11.6777H3.82985C3.75113 11.6777 3.69375 11.7525 3.71563 11.8281C4.5078 14.565 7.0326 16.566 10.0247 16.566C13.017 16.566 15.5417 14.565 16.3339 11.8281C16.3558 11.7525 16.2984 11.6777 16.2197 11.6777H12.7839C12.702 11.6777 12.6264 11.7199 12.5795 11.7869C12.0155 12.5911 11.0815 13.1167 10.0248 13.1167C8.96803 13.1167 8.03406 12.5911 7.47013 11.7869Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.3347 7.90519C12.3822 7.95756 12.449 7.9891 12.5196 7.9891H16.1137C16.1952 7.9891 16.253 7.90983 16.2261 7.83301C15.9724 7.10689 15.5948 6.43893 15.1187 5.85447C15.074 5.79961 15.0067 5.76855 14.9358 5.76855H5.11323C5.04247 5.76855 4.97512 5.79961 4.93044 5.85447C4.45429 6.43893 4.0767 7.10689 3.82306 7.83301C3.79622 7.90983 3.85398 7.9891 3.93536 7.9891H7.52952C7.60022 7.9891 7.66694 7.95756 7.71445 7.90519C8.28491 7.2763 9.10861 6.88136 10.0246 6.88136C10.9405 6.88136 11.7643 7.2763 12.3347 7.90519Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.1164 10.9586C13.0553 10.9586 13.0118 10.899 13.0284 10.8401C13.1033 10.5722 13.1433 10.2898 13.1433 9.9981C13.1433 9.58758 13.064 9.19556 12.9199 8.83657C12.8954 8.77581 12.9392 8.70801 13.0046 8.70801H16.392C16.4349 8.70801 16.472 8.73831 16.4799 8.78052C16.5538 9.17511 16.5925 9.58216 16.5925 9.9982C16.5925 10.2978 16.5724 10.5926 16.5337 10.8815C16.5277 10.9258 16.4897 10.9586 16.4451 10.9586H13.1164ZM7.02223 10.8401C7.03868 10.899 6.99532 10.9586 6.93421 10.9586H3.60551C3.56084 10.9586 3.52285 10.9258 3.5169 10.8815C3.47807 10.5926 3.45801 10.2978 3.45801 9.9982C3.45801 9.58216 3.4967 9.17511 3.57069 8.78052C3.57859 8.73831 3.61563 8.70801 3.65856 8.70801H7.04593C7.11141 8.70801 7.15516 8.77581 7.13076 8.83657C6.98657 9.19556 6.90722 9.58758 6.90722 9.9981C6.90722 10.2898 6.94728 10.5722 7.02223 10.8401Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_6403_64483\"\n x1=\"10.0245\"\n y1=\"0.0488561\"\n x2=\"10.0245\"\n y2=\"19.9493\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C750FF\" />\n <stop offset=\"1\" stopColor=\"#5800E8\" />\n </linearGradient>\n <clipPath id=\"clip0_6403_64483\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { ArrowRightShortIcon, Button, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { AccountSheetState } from \"./accountSheet.script\";\nimport { CopyIcon, HeadIcon, OrderlyIcon, USDCIcon } from \"./icons\";\n\nexport const AccountSheet: FC<AccountSheetState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"column\"} gap={4}>\n <AccountInfo {...props} />\n <ReferralInfo {...props} />\n <TradingRewardsInfo {...props} />\n <Flex gap={3} width={\"100%\"} justify={\"center\"}>\n {props.showGetTestUSDC && (\n <Button\n variant=\"outlined\"\n // color=\"primary\"\n size=\"md\"\n onClick={props.onGetTestUSDC}\n fullWidth\n loading={props.gettingTestUSDC}\n className=\"oui-border-primary-light oui-text-primary-light\"\n >\n {t(\"trading.faucet.getTestUSDC\")}\n </Button>\n )}\n <Button\n variant=\"outlined\"\n color=\"danger\"\n size=\"md\"\n onClick={props.onDisconnect}\n className={props.showGetTestUSDC ? \"oui-w-full\" : \"oui-w-[50%]\"}\n >\n {t(\"connector.disconnect\")}\n </Button>\n </Flex>\n </Flex>\n );\n};\nexport const AccountInfo: FC<AccountSheetState> = (props) => {\n return (\n <Flex width={\"100%\"} justify={\"between\"}>\n <Flex gap={3}>\n <HeadIcon />\n <Flex\n direction={\"column\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n className=\"oui-gap-[2px]\"\n >\n <Text.formatted rule={\"address\"}>{props.address}</Text.formatted>\n <Text.formatted\n size=\"2xs\"\n intensity={80}\n // @ts-ignore\n prefix={\n <div className=\"oui-h-1 oui-w-1 oui-rounded-full oui-bg-success oui-pr-1\" />\n }\n >\n {props.chainName}\n </Text.formatted>\n </Flex>\n </Flex>\n <button\n className=\"oui-cursor-pointer\"\n onClick={() => {\n props.onCopyAddress();\n }}\n >\n <CopyIcon />\n </button>\n </Flex>\n );\n};\n\nexport const ReferralInfo: FC<AccountSheetState> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n direction={\"column\"}\n gap={3}\n r=\"lg\"\n p={3}\n className=\"oui-bg-base-6\"\n width={\"100%\"}\n >\n <button\n onClick={props.onClickReferral}\n className=\"oui-cursor-pointer oui-w-full\"\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Text size=\"2xs\">{t(\"affiliate.referral\")}</Text>\n <ArrowRightShortIcon color=\"white\" opacity={0.98} size={16} />\n </Flex>\n </button>\n {props.isAffiliate && (\n <Flex\n gradient=\"primary\"\n p={4}\n r=\"lg\"\n width={\"100%\"}\n angle={180}\n justify={\"between\"}\n >\n <Flex direction={\"column\"} itemAlign={\"start\"}>\n <Text size=\"xs\">{t(\"common.affiliate\")}</Text>\n <Text size=\"2xs\" intensity={54}>\n ({t(\"affiliate.commission.30d\")})\n </Text>\n </Flex>\n <Flex className=\"oui-gap-[6px]\">\n <USDCIcon />\n <Text.numeral\n dp={2}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n rule=\"price\"\n >\n {props.affiliateCommission30D ?? \"--\"}\n </Text.numeral>\n </Flex>\n </Flex>\n )}\n {props.isTrader && (\n <Flex\n gradient=\"success\"\n p={4}\n r=\"lg\"\n width={\"100%\"}\n angle={180}\n justify={\"between\"}\n >\n <Flex direction={\"column\"} itemAlign={\"start\"}>\n <Text size=\"xs\">{t(\"affiliate.trader\")}</Text>\n <Text size=\"2xs\" intensity={54}>\n ({t(\"affiliate.commission.30d\")})\n </Text>\n </Flex>\n <Flex className=\"oui-gap-[6px]\">\n <USDCIcon />\n <Text.numeral\n dp={2}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n rule=\"price\"\n >\n {props.traderCommission30D ?? \"--\"}\n </Text.numeral>\n </Flex>\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport const TradingRewardsInfo: FC<AccountSheetState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n direction={\"column\"}\n gap={3}\n r=\"lg\"\n p={3}\n className=\"oui-bg-base-6\"\n width={\"100%\"}\n >\n <button\n onClick={props.onClickTradingRewards}\n className=\"oui-cursor-pointer oui-w-full\"\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex gap={1} className=\"oui-text-base-contrast oui-text-2xs\">\n <Text>{t(\"common.tradingRewards\")}</Text>\n <Text intensity={54}>\n (\n <Text>{`${(\n t(\"tradingRewards.epoch\") as string\n )?.toLowerCase()} `}</Text>\n <Text intensity={98}>{props.curEpochId}</Text> )\n </Text>\n </Flex>\n <ArrowRightShortIcon color=\"white\" opacity={0.98} size={16} />\n </Flex>\n </button>\n <Flex\n p={4}\n r=\"lg\"\n width={\"100%\"}\n angle={180}\n justify={\"between\"}\n className=\"oui-bg-gradient-to-t oui-from-[#2d0061] oui-to-[#bd6bed]\"\n >\n <Text size=\"2xs\" intensity={80}>\n {t(\"tradingRewards.myEstRewards\")}\n </Text>\n\n <Flex className=\"oui-gap-[6px]\">\n <OrderlyIcon />\n <Text.numeral\n dp={2}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n rule=\"price\"\n >\n {props.estRewards}\n </Text.numeral>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n TWType,\n useAccount,\n useChains,\n useConfig,\n useCurEpochEstimate,\n useEpochInfo,\n useLocalStorage,\n useMutation,\n useReferralInfo,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum, ChainNamespace } from \"@orderly.network/types\";\nimport { modal, toast, useModal } from \"@orderly.network/ui\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { ReferralProps, TradingRewardsProps } from \"../../../types/types\";\n\nexport const useAccountSheetScript = (\n props: ReferralProps & TradingRewardsProps,\n) => {\n const { t } = useTranslation();\n const [linkDeviceStorage] = useLocalStorage(\"orderly_link_device\", {});\n const { account, state } = useAccount();\n const accountId = account.accountId;\n const address = account.address;\n const { hide } = useModal();\n\n const config = useConfig();\n\n const { connectedChain, disconnect, namespace } = useWalletConnector();\n\n const chainId =\n account.chainId || connectedChain?.id || linkDeviceStorage?.chainId;\n\n const showGetTestUSDC = useMemo(() => {\n if (chainId) {\n return (\n (state.status === AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected) &&\n // @ts-ignore\n isTestnet(parseInt(chainId))\n );\n }\n\n return false;\n }, [state.status, chainId]);\n\n const chainName = useGetChains(chainId);\n\n const operatorUrl = config.get<string>(\"operatorUrl\");\n\n const onCopyAddress = () => {\n navigator.clipboard.writeText(address ?? \"\");\n toast.success(t(\"common.copy.copied\"));\n };\n\n const {\n affiliateCommission30D,\n traderCommission30D,\n isAffiliate,\n isTrader,\n onClickReferral,\n } = useReferral(props.onClickReferral);\n\n const { curEpochId, estRewards, onClickTradingRewards } = useTradingRewards(\n props.onClickTradingRewards,\n );\n\n const onDisconnect = async () => {\n // The cache must be cleared first, otherwise it will be possible entered link device mode\n localStorage.removeItem(\"orderly_link_device\");\n await disconnect({\n label: state.connectWallet?.name,\n });\n await account.disconnect();\n hide();\n };\n\n const [getTestUSDC, { isMutating: gettingTestUSDC }] = useMutation(\n `${operatorUrl}/v1/faucet/usdc`,\n );\n\n const onGetTestUSDC = () => {\n if (\n state.status < AccountStatusEnum.EnableTrading &&\n state.status !== AccountStatusEnum.EnableTradingWithoutConnected\n ) {\n // return modal.show(WalletConnectSheet, {\n // status: state.status,\n // });\n return;\n }\n\n const message = t(\"trading.faucet.getTestUSDC.success\", {\n quantity: namespace === ChainNamespace.solana ? \"100\" : \"1,000\",\n });\n\n return getTestUSDC({\n chain_id: chainId?.toString(),\n user_address: state.address,\n broker_id: config.get(\"brokerId\"),\n }).then(\n (res: any) => {\n if (res.success) {\n return modal.alert({\n title: t(\"trading.faucet.getTestUSDC\"),\n message,\n onOk: () => {\n return Promise.resolve(true);\n },\n });\n }\n res.message && toast.error(res.message);\n // return Promise.reject(res);\n },\n (error: Error) => {\n toast.error(error.message);\n },\n );\n };\n return {\n accountId,\n address,\n chainId,\n chainName,\n onCopyAddress,\n\n affiliateCommission30D,\n onClickReferral,\n isAffiliate,\n isTrader,\n traderCommission30D,\n\n curEpochId,\n onClickTradingRewards,\n estRewards,\n\n onDisconnect,\n showGetTestUSDC,\n onGetTestUSDC,\n gettingTestUSDC,\n };\n};\n\nconst useReferral = (_onClickReferral?: () => void) => {\n const { data, isLoading, isAffiliate, isTrader } = useReferralInfo();\n\n const affiliateCommission30D = useMemo(() => {\n if (isAffiliate) {\n return data?.referrer_info?.[\"30d_referrer_rebate\"];\n }\n return undefined;\n }, [data, isAffiliate]);\n\n const traderCommission30D = useMemo(() => {\n if (isTrader) {\n return data?.referee_info?.[\"30d_referee_rebate\"];\n }\n return undefined;\n }, [data, isTrader]);\n\n const onClickReferral = () => {\n _onClickReferral?.();\n };\n\n return {\n onClickReferral,\n affiliateCommission30D,\n traderCommission30D,\n isAffiliate,\n isTrader,\n\n // WARNING: test data\n // affiliateCommission30D: 1234.43,\n // traderCommission30D:44343.33,\n // isAffiliate: true,\n // isTrader: true,\n };\n};\n\nconst useTradingRewards = (_onClick?: () => void) => {\n const [curEpochEstimate] = useCurEpochEstimate(TWType.normal);\n const [list, curEpoch] = useEpochInfo(TWType.normal);\n const curEpochId = useMemo(() => {\n return curEpoch.curEpochInfo?.epoch_id ?? \"--\";\n }, [curEpoch]);\n\n const estRewards = useMemo(() => {\n if (typeof curEpochEstimate?.est_r_wallet === \"undefined\") {\n return \"--\";\n }\n return curEpochEstimate?.est_r_wallet;\n }, [curEpochEstimate]);\n\n const onClickTradingRewards = () => {\n _onClick?.();\n };\n\n return {\n curEpochId,\n estRewards,\n onClickTradingRewards,\n };\n};\n\nfunction useGetChains(chainId: number) {\n const [mainChains, { findByChainId }] = useChains(\"mainnet\", {\n pick: \"network_infos\",\n filter: (chain: any) =>\n chain.network_infos?.bridge_enable || chain.network_infos?.bridgeless,\n });\n\n const chainName = useMemo(() => {\n // @ts-ignore\n const chain = findByChainId(parseInt(chainId), \"network_infos\");\n\n if (!chain) {\n return \"Unknown\";\n }\n // // @ts-ignore\n // if (isTestnet(chain.chain_id)) {\n // return \"Testnet\";\n // }\n // @ts-ignore\n return chain.name;\n }, [chainId, findByChainId]);\n\n return chainName;\n}\n\nexport type AccountSheetState = ReturnType<typeof useAccountSheetScript>;\n","import { ReferralProps, TradingRewardsProps } from \"../../../types/types\";\nimport { useAccountSheetScript } from \"./accountSheet.script\";\nimport { AccountSheet } from \"./accountSheet.ui\";\n\nexport const AccountSheetWidget = (\n props: ReferralProps & TradingRewardsProps\n) => {\n const state = useAccountSheetScript(props);\n return <AccountSheet {...state} />;\n};\n","import { FC } from \"react\";\nimport { Button, formatAddress } from \"@orderly.network/ui\";\nimport { AccountState } from \"./account.script\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\n\nexport const Account: FC<AccountState> = (props) => {\n return (\n <AuthGuard\n buttonProps={{\n size: \"sm\",\n }}\n >\n <Button\n variant=\"gradient\"\n size={\"sm\"}\n className=\"oui-max-w-[83px]\"\n onClick={(e) => {\n props.onShowAccountSheet();\n }}\n >\n {formatAddress(props.address!, [4, 4])}\n </Button>\n </AuthGuard>\n );\n};\n","import { ExtensionPositionEnum, ExtensionSlot, installExtension } from \"@orderly.network/ui\";\nimport { useAccountScript } from \"./account.script\";\nimport { Account } from \"./account.ui\";\n\nexport const AccountWidget = () => {\n const state = useAccountScript();\n return (<Account {...state} />);\n};\ninstallExtension<any>({\n name: \"mobile-account-menu\",\n scope: [\"*\"],\n positions: [ExtensionPositionEnum.MobileAccountMenu],\n builder: useAccountScript,\n __isInternal: true,\n })((props:any) => {\n return <Account {...props} />;\n });\n \n export const MobileAccountMenuExtension = () => {\n return <ExtensionSlot position={ExtensionPositionEnum.MobileAccountMenu} />;\n };\n ","import { FC } from \"react\";\nimport { BalanceState } from \"./balance.script\";\n\nexport const Balance: FC<BalanceState> = () => {\n return null;\n};\n","export const useBalanceScript = () => {\n return {};\n};\n\nexport type BalanceState = ReturnType<typeof useBalanceScript>;\n","import { useBalanceScript } from \"./balance.script\";\nimport { Balance } from \"./balance.ui\";\n\nexport const BalanceWidget = () => {\n const state = useBalanceScript();\n return <Balance {...state} />;\n};\n","import { FC } from \"react\";\nimport { Box, ChainIcon, modal, toast } from \"@orderly.network/ui\";\nimport { ChainState } from \"./chain.script\";\nimport { ChainSelectorSheetId } from \"@orderly.network/ui-chain-selector\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Chain: FC<ChainState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <button\n onClick={(e) => {\n modal\n .show<{\n wrongNetwork: boolean;\n }>(ChainSelectorSheetId, {\n // networkId: props.networkId,\n bridgeLessOnly: false,\n isWrongNetwork: props.wrongNetwork,\n })\n .then(\n (r: any) => {\n if (r?.chainId) {\n props.setCurrentChainId(r?.chainId);\n }\n toast.success(t(\"connector.networkSwitched\"));\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n }}\n >\n <Box className=\"oui-relative oui-rounded-t-[6px] oui-rounded-bl-[6px] oui-rounded-br-[3px] oui-bg-base-5 oui-px-2 oui-h-7 oui-flex oui-items-center\">\n <ChainIcon chainId={props.currentChainId!} size=\"2xs\" />\n <div className=\"oui-absolute oui-right-0 oui-bottom-0\">\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 9 9\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6V0L0 9h6a3 3 0 0 0 3-3\" fill=\"url(#a)\" />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"9\"\n y1=\"4.5\"\n x2=\"0\"\n y2=\"4.5\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop\n offset=\"1\"\n stopColor=\"rgb(var(--oui-gradient-brand-start))\"\n />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </Box>\n </button>\n );\n};\n","import { useConfig } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useChainScript = () => {\n const config = useConfig();\n const { wrongNetwork, currentChainId, setCurrentChainId } = useAppContext();\n\n const networkId = config.get(\"networkId\");\n\n return {\n currentChainId,\n setCurrentChainId,\n networkId,\n wrongNetwork,\n };\n};\n\nexport type ChainState = ReturnType<typeof useChainScript>;\n","import React from \"react\";\nimport { useChainScript } from \"./chain.script\";\nimport { Chain } from \"./chain.ui\";\n\nexport const ChainWidget: React.FC = () => {\n const state = useChainScript();\n return <Chain {...state} />;\n};\n","import { FC, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Flex, SimpleDialog, Text } from \"@orderly.network/ui\";\nimport { ScanQRCodeWidget } from \"@orderly.network/ui-scaffold\";\nimport { MobileAccountMenuExtension } from \"./account/account.widget\";\nimport { BalanceWidget } from \"./balance\";\nimport { BottomNavBarState } from \"./bottomNavBar.script\";\nimport { ChainWidget } from \"./chain\";\n\nexport const BottomNavBar: FC<BottomNavBarState> = (props) => {\n const renderContent = () => {\n if (props.wrongNetwork) {\n return null;\n }\n\n if (\n !props.disabledConnect &&\n props.status === AccountStatusEnum.EnableTradingWithoutConnected\n ) {\n return <LinkDevice onDisconnect={props.onDisconnect} />;\n }\n\n return <ChainWidget />;\n };\n\n const showScanQRCode =\n !props.disabledConnect &&\n props.status !== AccountStatusEnum.EnableTradingWithoutConnected &&\n props.status < AccountStatusEnum.EnableTrading;\n\n return (\n <div className=\"oui-bg-base-9 oui-border-t oui-border-line-4\">\n <Flex\n height={64}\n gap={1}\n justify={\"end\"}\n itemAlign={\"center\"}\n className=\"oui-px-[14px]\"\n // style={{\n // height: \"calc(64px + env(safe-area-inset-bottom))\"\n // }}\n >\n <BalanceWidget />\n <Flex gap={2}>\n {showScanQRCode && <ScanQRCodeWidget />}\n {renderContent()}\n <MobileAccountMenuExtension />\n </Flex>\n </Flex>\n <div className=\"oui-h-[env(safe-area-inset-bottom)]\" />\n </div>\n );\n};\n\ntype LinkDeviceProps = {\n onDisconnect: () => void;\n};\n\nconst LinkDevice: FC<LinkDeviceProps> = (props) => {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n\n const showDialog = () => {\n setOpen(true);\n };\n\n const hideDialog = () => {\n setOpen(false);\n };\n\n return (\n <>\n <SimpleDialog\n open={open}\n onOpenChange={setOpen}\n title={t(\"common.tips\")}\n size=\"xs\"\n actions={{\n secondary: {\n label: t(\"common.cancel\"),\n onClick: hideDialog,\n size: \"md\",\n fullWidth: true,\n },\n primary: {\n label: t(\"connector.disconnect\"),\n onClick: async () => {\n await props.onDisconnect();\n hideDialog();\n },\n size: \"md\",\n variant: \"outlined\",\n color: \"danger\",\n },\n }}\n >\n <Text intensity={54} size=\"sm\">\n {t(\"linkDevice.scanQRCode.connected.description\")}\n </Text>\n </SimpleDialog>\n <Flex\n className=\"oui-text-base-contrast oui-px-[6px]\"\n intensity={500}\n height={28}\n r=\"md\"\n onClick={showDialog}\n >\n <DesktopIcon />\n <Dot />\n <LinkIcon />\n <Dot />\n <MobileIcon />\n </Flex>\n </>\n );\n};\n\nconst Dot = () => {\n return (\n <Flex className=\"oui-gap-x-[1px] oui-px-[1px]\">\n <DotIcon />\n <DotIcon />\n <DotIcon />\n </Flex>\n );\n};\n\nconst DesktopIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M4.5 2.93a2.25 2.25 0 0 0-2.25 2.25v5.25a.75.75 0 0 0-.75.75v1.5c0 1.272.93 2.25 2.25 2.25h10.5c1.318 0 2.25-.978 2.25-2.25v-1.5a.75.75 0 0 0-.75-.75V5.18a2.25 2.25 0 0 0-2.25-2.25zm0 1.5h9a.75.75 0 0 1 .75.75v5.25H3.75V5.18a.75.75 0 0 1 .75-.75M3 11.93h12v.75c0 .46-.277.75-.75.75H3.75c-.474 0-.75-.29-.75-.75z\" />\n </svg>\n);\n\nconst MobileIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M13.498 3.715a2.25 2.25 0 0 0-2.25-2.25h-4.5a2.25 2.25 0 0 0-2.25 2.25v10.5a2.25 2.25 0 0 0 2.25 2.25h4.5a2.25 2.25 0 0 0 2.25-2.25zm-1.5 0v9.75h-6v-9.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 .75.75m-2.25 11.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0\" />\n </svg>\n);\n\nconst LinkIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.007 6a5 5 0 1 1 10 0 5 5 0 0 1-10 0m7.486-2.344A.6.6 0 0 1 8.91 3.5c.15 0 .305.048.418.156a.55.55 0 0 1 0 .798L5.254 8.337a.62.62 0 0 1-.837 0L2.67 6.673a.55.55 0 0 1 0-.798.62.62 0 0 1 .837 0l1.329 1.266z\"\n fill=\"url(#a)\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"11.007\"\n y1=\"5.999\"\n x2=\"1.007\"\n y2=\"5.999\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nconst DotIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"2\"\n height=\"2\"\n viewBox=\"0 0 2 2\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M.667.334a.667.667 0 1 1 0 1.333.667.667 0 0 1 0-1.333\"\n fill=\"url(#a)\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"1.333\"\n y1=\"1.001\"\n x2=\"0\"\n y2=\"1.001\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n);\n","import { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useBottomNavBarScript = () => {\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { account, state } = useAccount();\n\n /** link device, acally wallet not connect */\n const onDisconnect = async () => {\n localStorage.removeItem(\"orderly_link_device\");\n await account.disconnect();\n };\n\n return {\n wrongNetwork,\n disabledConnect,\n status: state.status,\n onDisconnect,\n };\n};\n\nexport type BottomNavBarState = ReturnType<typeof useBottomNavBarScript>;\n","import React from \"react\";\nimport { useBottomNavBarScript } from \"./bottomNavBar.script\";\nimport { BottomNavBar } from \"./bottomNavBar.ui\";\n\nexport const BottomNavBarWidget: React.FC = () => {\n const state = useBottomNavBarScript();\n return <BottomNavBar {...state} />;\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport {\n useAccount,\n useCollateral,\n useDebouncedCallback,\n useEventEmitter,\n useLeverage,\n useMarginRatio,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal, SliderMarks, toast } from \"@orderly.network/ui\";\nimport {\n DepositAndWithdrawWithSheetId,\n TransferSheetId,\n} from \"@orderly.network/ui-transfer\";\nimport { useTradingLocalStorage } from \"../../../hooks\";\n\nexport const usePortfolioSheetScript = () => {\n const { state, account, isMainAccount } = useAccount();\n const assets = useAssets();\n const marginRatio = useMarginRatioAndLeverage();\n const ee = useEventEmitter();\n const { t } = useTranslation();\n const subAccounts = state.subAccounts ?? [];\n\n const [showSliderTip, setShowSliderTip] = useState(false);\n\n const onSettlePnL = useCallback(async () => {\n return account\n .settle()\n .catch((e) => {\n if (e.code == -1104) {\n toast.error(t(\"settle.settlement.error\"));\n return Promise.reject(e);\n }\n if (\n e.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: e.message,\n userAddress: account.address,\n });\n return Promise.reject(e);\n }\n\n if (e?.code === \"ACTION_REJECTED\") {\n toast.error(t(\"connector.userRejected\"));\n return Promise.reject(e);\n }\n })\n .then((res) => {\n toast.success(t(\"settle.settlement.requested\"));\n return Promise.resolve(res);\n });\n }, [account, t]);\n\n const onDeposit = useCallback(() => {\n modal.show(DepositAndWithdrawWithSheetId, {\n activeTab: \"deposit\",\n });\n }, []);\n\n const onWithdraw = useCallback(() => {\n modal.show(DepositAndWithdrawWithSheetId, {\n activeTab: \"withdraw\",\n });\n }, []);\n\n const onTransfer = useCallback(() => {\n modal.show(TransferSheetId);\n }, []);\n\n return {\n ...assets,\n ...marginRatio,\n onSettlePnL,\n onDeposit,\n onWithdraw,\n showSliderTip,\n setShowSliderTip,\n isMainAccount,\n onTransfer,\n hasSubAccount: subAccounts?.length > 0,\n };\n};\n\nconst useAssets = () => {\n const { hideAssets, setHideAssets } = useTradingLocalStorage();\n const toggleHideAssets = () => {\n setHideAssets(!hideAssets);\n };\n const { totalCollateral, freeCollateral, totalValue, availableBalance } =\n useCollateral({\n dp: 2,\n });\n return {\n hideAssets,\n toggleHideAssets,\n totalCollateral,\n freeCollateral,\n totalValue,\n availableBalance,\n };\n};\n\nconst useMarginRatioAndLeverage = () => {\n const { t } = useTranslation();\n const [{ aggregated, totalUnrealizedROI }, positionsInfo] =\n usePositionStream();\n const { marginRatio, currentLeverage, mmr } = useMarginRatio();\n\n const marginRatioVal = useMemo(() => {\n return Math.min(\n 10,\n aggregated.notional === 0\n ? positionsInfo[\"margin_ratio\"](10)!\n : marginRatio,\n );\n }, [marginRatio, aggregated]);\n\n const { update, curLeverage, maxLeverage, leverageLevers } = useLeverage();\n\n const marks = useMemo<SliderMarks>(() => {\n return leverageLevers?.map((e) => ({\n label: `${e}x`,\n value: e,\n }));\n }, [leverageLevers]);\n\n const [leverage, setLeverage] = useState<number>(curLeverage ?? 0);\n\n const step = 100 / ((marks?.length || 0) - 1);\n\n // const leverageValue = useMemo(() => {\n // const index = leverageLevers.findIndex((item: any) => item === leverage);\n\n // return index * step;\n // }, [leverageLevers, leverage, step]);\n\n const onLeverageChange = (leverage: number) => {\n // maxLeverage / 100 * leverage;\n setLeverage(leverage);\n // updateLeverage(leverage);\n };\n\n const onSave = async (leverage: number) => {\n try {\n update({ leverage }).then(\n () => {\n toast.success(t(\"leverage.updated\"));\n },\n (err: Error) => {\n toast.error(err.message);\n },\n );\n } catch {\n //\n }\n };\n\n const onValueCommit = useCallback((value: number | number[]) => {\n onSave(Array.isArray(value) ? value[0] : value);\n }, []);\n\n const debouncedCommit = useDebouncedCallback(onValueCommit, 500);\n\n const onInputChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n (e) => {\n const parsed = Number.parseInt(e.target.value, 10);\n const raw = Number.isNaN(parsed) ? 0 : parsed;\n const clamped = Math.min(Math.max(raw, 1), maxLeverage);\n setLeverage(clamped);\n debouncedCommit(clamped);\n },\n [debouncedCommit, maxLeverage],\n );\n\n const onLeverageIncrease: React.MouseEventHandler<SVGSVGElement> = () => {\n setLeverage((prev) => {\n onSave(prev + 1);\n return prev + 1;\n });\n };\n\n const onLeverageReduce: React.MouseEventHandler<SVGSVGElement> = () => {\n setLeverage((prev) => {\n onSave(prev - 1);\n return prev - 1;\n });\n };\n\n return {\n aggregated,\n totalUnrealizedROI,\n positionsInfo,\n marginRatio,\n marginRatioVal,\n mmr,\n currentLeverage,\n step,\n marks,\n onLeverageChange,\n onLeverageIncrease,\n onLeverageReduce,\n onInputChange,\n isReduceDisabled: leverage <= 1,\n isIncreaseDisabled: leverage >= maxLeverage,\n onValueCommit,\n value: leverage,\n maxLeverage,\n onSaveLeverage: onSave,\n };\n};\n\nexport function getMarginRatioColor(marginRatio: number, mmr: number | null) {\n if (mmr === null) {\n return { isRed: false, isYellow: false, isGreen: true };\n }\n const imr = mmr * 2;\n\n const high = marginRatio <= imr;\n const mid = marginRatio > imr && marginRatio < 1;\n const low = marginRatio >= 1;\n return { high, mid, low };\n}\n\nexport type PortfolioSheetState = ReturnType<typeof usePortfolioSheetScript>;\n","import { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\n\ninterface RiskIndicatorProps {\n size?: number;\n className?: string;\n}\n\nexport const RiskIndicator: FC<RiskIndicatorProps> = (props) => {\n const { size = 20, className } = props;\n\n return (\n <div\n className=\"oui-flex oui-justify-center oui-items-end\"\n style={{\n background: \"url(/images/riskLevelBg.png)\",\n backgroundSize: \"contain\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center bottom\",\n width: `${size}px`,\n height: `14px`,\n }}\n >\n <div\n className={cn(\n \"oui-relative oui-w-[2px] oui-h-[2px] oui-rounded-full oui-bg-white after:oui-block after:oui-content-[''] after:oui-absolute after:oui-right-0 after:oui-w-[10px] after:oui-h-[2px] after:oui-bg-white/50\",\n className\n // {\n // \"oui-rotate-0\": value > 1,\n // \"oui-rotate-90\": value >= 0.05 && value <= 1,\n // \"oui-rotate-180\": value < 0.05,\n // }\n )}\n ></div>\n </div>\n );\n};\n","import { FC, useCallback, useId } from \"react\";\nimport React from \"react\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\nimport {\n ArrowDownShortIcon,\n ArrowLeftRightIcon,\n ArrowUpShortIcon,\n Button,\n cn,\n Divider,\n EyeCloseIcon,\n EyeIcon,\n Flex,\n Grid,\n Input,\n inputFormatter,\n InputFormatter,\n modal,\n PlusIcon,\n ReduceIcon,\n RefreshIcon,\n Statistic,\n Text,\n} from \"@orderly.network/ui\";\nimport { LeverageProps, LeverageSlider } from \"@orderly.network/ui-leverage\";\nimport { USDCIcon } from \"../accountSheet/icons\";\nimport {\n getMarginRatioColor,\n PortfolioSheetState,\n} from \"./portfolioSheet.script\";\nimport { RiskIndicator } from \"./riskIndicator\";\n\nexport const PortfolioSheet: FC<PortfolioSheetState> = (props) => {\n return (\n <Flex direction={\"column\"} gap={4} width={\"100%\"}>\n <Asset {...props} />\n <Divider className=\"oui-w-full\" />\n <MarginRatio {...props} />\n {/* <Leverage {...props} /> */}\n {/* <Divider className=\"oui-w-full\" /> */}\n {/* <AvailableBalance {...props} /> */}\n <Buttons {...props} />\n </Flex>\n );\n};\n\nconst Asset: FC<PortfolioSheetState> = (props) => {\n const { t } = useTranslation();\n\n const onUnsettleClick = useCallback(() => {\n return modal.confirm({\n title: t(\"settle.settlePnl\"),\n // maxWidth: \"xs\",\n content: (\n <Text intensity={54} size=\"xs\">\n {/* @ts-ignore */}\n <Trans i18nKey=\"settle.settlePnl.description\" />\n </Text>\n ),\n onCancel: () => {\n return Promise.reject();\n },\n onOk: () => {\n if (typeof props.onSettlePnL !== \"function\") {\n return Promise.resolve();\n }\n return props.onSettlePnL().catch((e) => {});\n },\n });\n }, [t]);\n\n const clsName =\n props.totalUnrealizedROI > 0\n ? \"oui-text-success-darken\"\n : \"oui-text-danger-darken\";\n\n return (\n <Flex direction={\"column\"} gap={3} width={\"100%\"}>\n <Flex direction={\"column\"} itemAlign={\"start\"} width={\"100%\"}>\n <Text.formatted\n size=\"2xs\"\n intensity={36}\n suffix={\n props.hideAssets ? (\n <EyeIcon\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n ) : (\n <EyeCloseIcon\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n )\n }\n onClick={() => {\n props.toggleHideAssets();\n }}\n className=\"oui-cursor-pointer\"\n >\n {`${t(\"common.totalValue\")} (USDC)`}\n </Text.formatted>\n <Text.numeral\n size=\"base\"\n // coloring\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.totalValue ?? \"--\"}\n </Text.numeral>\n </Flex>\n <Grid cols={2} rows={1} width={\"100%\"}>\n <Statistic\n label={`${t(\"common.unrealizedPnl\")} (USDC)`}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex gap={1}>\n <Text.pnl\n size=\"xs\"\n coloring\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.aggregated.total_unreal_pnl}\n </Text.pnl>\n {!props.hideAssets && (\n <Text.roi\n size=\"xs\"\n dp={2}\n padding={false}\n rule=\"percentages\"\n prefix={\"(\"}\n suffix={\")\"}\n className={clsName}\n >\n {props.totalUnrealizedROI}\n </Text.roi>\n )}\n </Flex>\n </Statistic>\n <Statistic\n label={`${t(\"trading.asset.unsettledPnl\")} (USDC)`}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Text.pnl\n size=\"xs\"\n coloring\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.aggregated.total_unsettled_pnl}\n </Text.pnl>\n <button\n className=\"oui-flex oui-gap-1 oui-items-center\"\n onClick={onUnsettleClick}\n >\n <RefreshIcon\n opacity={1}\n size={12}\n className=\"oui-text-primary-light\"\n />\n <Text size=\"2xs\" color=\"primary\">\n {t(\"settle.settlePnl\")}\n </Text>\n </button>\n </Flex>\n </Statistic>\n </Grid>\n </Flex>\n );\n};\nconst MarginRatio: FC<PortfolioSheetState> = (props) => {\n const { t } = useTranslation();\n\n const { high, mid, low } = getMarginRatioColor(\n props.marginRatioVal,\n props.mmr,\n );\n\n return (\n <Grid cols={2} rows={1} width={\"100%\"}>\n <Statistic\n label={t(\"trading.asset.marginRatio\")}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex gap={2}>\n <Text.numeral\n size=\"xs\"\n rule=\"percentages\"\n color=\"primary\"\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.marginRatioVal}\n </Text.numeral>\n {!props.hideAssets && (\n <RiskIndicator\n className={\n low\n ? \"oui-rotate-0\"\n : mid\n ? \"oui-rotate-90\"\n : high\n ? \"oui-rotate-180\"\n : \"\"\n }\n />\n )}\n </Flex>\n </Statistic>\n <Statistic\n label={`${t(\"trading.asset.free&TotalCollateral\")} (USDC)`}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-36\",\n }}\n >\n <Flex justify={\"start\"} width={\"100%\"} gap={1}>\n <Text.collateral\n size=\"xs\"\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.freeCollateral}\n </Text.collateral>\n <Text size=\"xs\">/</Text>\n <Text.collateral\n size=\"xs\"\n dp={2}\n padding={false}\n visible={!props.hideAssets}\n >\n {props.totalCollateral}\n </Text.collateral>\n </Flex>\n </Statistic>\n </Grid>\n );\n};\n\nconst IconButton: React.FC<{\n Icon: React.ComponentType<any>;\n onClick: React.MouseEventHandler<SVGSVGElement>;\n disabled: boolean;\n}> = (props) => {\n const { Icon, onClick, disabled } = props;\n return (\n <Icon\n onClick={disabled ? undefined : onClick}\n className={cn(\n \"oui-text-white oui-m-2 oui-transition-all\",\n disabled\n ? \"oui-cursor-not-allowed oui-opacity-20\"\n : \"oui-cursor-pointer oui-opacity-100\",\n )}\n />\n );\n};\n\nconst LeverageInput: React.FC<PortfolioSheetState> = (props) => {\n const formatters = React.useMemo<InputFormatter[]>(\n () => [\n inputFormatter.numberFormatter,\n inputFormatter.currencyFormatter,\n inputFormatter.decimalPointFormatter,\n ],\n [],\n );\n const id = useId();\n return (\n <label\n htmlFor={id}\n className={cn(\n \"oui-w-full\",\n \"oui-rounded\",\n \"oui-bg-base-6\",\n \"oui-flex\",\n \"oui-items-center\",\n \"oui-justify-between\",\n \"oui-outline\",\n \"oui-outline-offset-0\",\n \"oui-outline-1\",\n \"oui-outline-transparent\",\n \"focus-within:oui-outline-primary-light\",\n \"oui-input-root\",\n )}\n >\n <IconButton\n Icon={ReduceIcon}\n onClick={props.onLeverageReduce}\n disabled={props.isReduceDisabled}\n />\n <Flex itemAlign=\"center\" justify=\"center\">\n <Input\n // {...props}\n value={props.value}\n id={id}\n autoComplete=\"off\"\n classNames={{\n input: cn(\"oui-text-center\"),\n root: cn(\n \"oui-text-center\",\n \"oui-w-6\",\n \"oui-px-0\",\n \"oui-outline\",\n \"oui-outline-offset-0\",\n \"oui-outline-1\",\n \"oui-outline-transparent\",\n \"focus-within:oui-outline-primary-none\",\n ),\n }}\n formatters={formatters}\n onChange={props.onInputChange}\n />\n <div className=\"oui-select-none\">x</div>\n </Flex>\n <IconButton\n Icon={PlusIcon}\n onClick={props.onLeverageIncrease}\n disabled={props.isIncreaseDisabled}\n />\n </label>\n );\n};\n\nexport const LeverageSelector: React.FC<PortfolioSheetState> = (props) => {\n const { value, onLeverageChange, onValueCommit } = props;\n return (\n <Flex itemAlign=\"center\" justify=\"between\" width={\"100%\"} mt={2}>\n {[1, 5, 10, 20, 50].map((option) => (\n <Flex\n key={option}\n itemAlign=\"center\"\n justify=\"center\"\n className={cn(\n `oui-transition-all oui-cursor-pointer oui-box-border oui-bg-clip-padding oui-px-3 oui-py-2.5 oui-rounded-md oui-border oui-border-solid`,\n value === option\n ? \"oui-border-primary oui-bg-base-6\"\n : \"oui-border-line-12\",\n )}\n onClick={() => {\n onLeverageChange(option);\n onValueCommit(option);\n }}\n >\n <Flex\n itemAlign=\"center\"\n justify=\"center\"\n className={cn(`oui-h-3 oui-w-9 oui-select-none`)}\n >\n {option}x\n </Flex>\n </Flex>\n ))}\n </Flex>\n );\n};\n\nconst Buttons: FC<PortfolioSheetState> = (props) => {\n const { t } = useTranslation();\n\n if (props.isMainAccount) {\n return (\n <Grid\n cols={props.hasSubAccount ? 3 : 2}\n rows={1}\n gap={3}\n className=\"oui-grid-row-[1fr,1fr]\"\n width={\"100%\"}\n pt={2}\n pb={4}\n >\n <Button\n icon={<ArrowDownShortIcon color=\"white\" opacity={0.8} />}\n size=\"md\"\n fullWidth\n onClick={props.onDeposit}\n >\n {t(\"common.deposit\")}\n </Button>\n {props.hasSubAccount && (\n <Button\n icon={<ArrowLeftRightIcon color=\"white\" opacity={0.8} />}\n color=\"gray\"\n size=\"md\"\n onClick={props.onTransfer}\n data-testid=\"oui-testid-assetView-transfer-button\"\n >\n <Text>{t(\"common.transfer\")}</Text>\n </Button>\n )}\n <Button\n icon={<ArrowUpShortIcon color=\"white\" opacity={0.8} />}\n size=\"md\"\n fullWidth\n className=\"oui-bg-base-2 hover:oui-bg-base-2/50\"\n onClick={props.onWithdraw}\n >\n {t(\"common.withdraw\")}\n </Button>\n </Grid>\n );\n }\n\n return (\n <Button\n fullWidth\n color=\"secondary\"\n size=\"md\"\n onClick={props.onTransfer}\n data-testid=\"oui-testid-assetView-transfer-button\"\n >\n <Text>{t(\"common.transfer\")}</Text>\n </Button>\n );\n};\n","import { usePortfolioSheetScript } from \"./portfolioSheet.script\";\nimport { PortfolioSheet } from \"./portfolioSheet.ui\";\n\nexport const PortfolioSheetWidget = () => {\n const state = usePortfolioSheetScript();\n return <PortfolioSheet {...state} />;\n};\n","export {\n useFundingRateModalScript,\n type FundingRateModalState,\n} from \"./fundingRateModal.script\";\nexport { FundingRateModal } from \"./fundingRateModal.ui\";\nexport {\n FundingRateModalWidget,\n FundingRateDialogId,\n FundingRateSheetId,\n} from \"./fundingRateModal.widget\";\n","import React, { type FC, PropsWithChildren, SVGProps } from \"react\";\nimport { useRef, useEffect } from \"react\";\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Box, cn } from \"@orderly.network/ui\";\n\ntype SortablePanelProps = {\n id: string;\n className?: string;\n showIndicator: boolean;\n dragOverlay?: boolean;\n};\n\nexport const SortablePanel: FC<PropsWithChildren<SortablePanelProps>> = (\n props,\n) => {\n const { showIndicator, dragOverlay } = props;\n const nodeRef = useRef<HTMLDivElement>(null);\n const [dimensions, setDimensions] = React.useState<{\n width: number;\n height: number;\n } | null>(null);\n\n // useSortable hook with custom configuration to prevent dimension changes\n const sortableResult = useSortable({\n id: props.id,\n });\n\n const {\n setNodeRef,\n attributes,\n listeners,\n transform,\n transition,\n isDragging,\n setActivatorNodeRef,\n } = sortableResult;\n\n // Store original dimensions when dragging starts\n useEffect(() => {\n if (isDragging && nodeRef.current && !dimensions) {\n const rect = nodeRef.current.getBoundingClientRect();\n // Store dimensions for placeholder\n setDimensions({\n width: rect.width,\n height: rect.height,\n });\n } else if (!isDragging && dimensions) {\n // Reset dimensions when dragging ends\n setDimensions(null);\n }\n }, [isDragging, dimensions]);\n\n // Combine refs to use both sortable ref and our dimension ref\n const combinedRef = (node: HTMLDivElement | null) => {\n setNodeRef(node);\n // Use a callback ref to properly set the node reference\n (nodeRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n // Ensure the item maintains its box model during drag\n // boxSizing: \"border-box\" as const,\n };\n\n // When dragging, render a placeholder with fixed dimensions\n if (isDragging && dimensions && !dragOverlay) {\n return (\n <Box\n intensity={900}\n r=\"2xl\"\n p={3}\n className={cn(\"oui-relative\")}\n // ref={combinedRef}\n style={{\n ...style,\n width: dimensions.width,\n height: dimensions.height,\n minWidth: dimensions.width,\n minHeight: dimensions.height,\n maxWidth: dimensions.width,\n maxHeight: dimensions.height,\n // Placeholder styling with subtle visual feedback\n border: \"1px solid rgb(var(--oui-color-primary))\",\n backgroundImage: `repeating-linear-gradient(135deg, rgb(var(--oui-color-base-6)) 0px, rgb(var(--oui-color-base-6)) 4px, transparent 4px, transparent 8px)`,\n }}\n ></Box>\n );\n }\n\n return (\n <Box\n intensity={900}\n r=\"2xl\"\n p={3}\n width=\"100%\"\n className={cn(\n \"oui-relative\",\n props.className,\n // dragOverlay && \"oui-scale-105\",\n )}\n ref={combinedRef}\n style={style}\n >\n <div\n className={cn(\n \"inner-content oui-transition-transform\",\n dragOverlay && \"oui-scale-95\",\n )}\n >\n {props.children}\n </div>\n {showIndicator && (\n <button\n {...attributes}\n {...listeners}\n className=\"oui-absolute oui-right-0 oui-top-4 oui-cursor-move oui-py-1\"\n style={{ touchAction: \"none\" }}\n ref={setActivatorNodeRef}\n >\n <IndicatorIcon\n className={cn(\n \"oui-text-base-contrast-20 hover:oui-text-base-contrast-80\",\n )}\n />\n </button>\n )}\n </Box>\n );\n};\n\nconst IndicatorIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"10\"\n height=\"16\"\n viewBox=\"0 0 10 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"6\" height=\"2\" rx=\"1\" />\n <rect x=\"2\" y=\"7\" width=\"6\" height=\"2\" rx=\"1\" />\n <rect x=\"2\" y=\"12\" width=\"6\" height=\"2\" rx=\"1\" />\n </svg>\n);\n","import { useEffect } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n toast,\n Flex,\n CloseIcon,\n ExclamationFillIcon,\n Text,\n useScreen,\n} from \"@orderly.network/ui\";\n\nconst toastId = \"rwaOutsideMarketHoursNotify\";\n\nconst RwaOutsideMarketHoursNotify = () => {\n const { t } = useTranslation();\n\n const closeNotify = () => {\n toast.remove(toastId);\n };\n\n const { isMobile } = useScreen();\n useEffect(() => {\n if (isMobile) {\n setTimeout(() => {\n toast.dismiss(toastId);\n }, 3000);\n }\n }, [isMobile]);\n\n return (\n <Flex r=\"lg\" className=\"oui-bg-base-6 oui-relative oui-max-w-[348px]\">\n <Flex\n direction=\"column\"\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-bg-warning-darken oui-px-[5px] oui-h-full oui-rounded-tl-[10px] oui-rounded-bl-[10px]\"\n >\n <ExclamationFillIcon\n opacity={1}\n className=\"oui-text-base-6\"\n size={18}\n />\n </Flex>\n <Flex p={4} mr={1}>\n <Text size=\"sm\" intensity={80} weight=\"semibold\">\n {t(\"trading.rwa.outsideMarketHours.notify\")}\n </Text>\n </Flex>\n\n <button\n className=\"oui-w-6 oui-h-6 oui-right-0 oui-top-0 oui-absolute oui-bg-base-8 oui-rounded-tr-[10px] oui-rounded-bl-[10px] oui-inline-flex oui-justify-center oui-items-center oui-gap-2.5 oui-cursor-pointer\"\n onClick={closeNotify}\n >\n <CloseIcon opacity={1} className=\"oui-text-base-contrast\" size={16} />\n </button>\n </Flex>\n );\n};\n\nconst showRwaOutsideMarketHoursNotify = () => {\n toast.custom(<RwaOutsideMarketHoursNotify />, {\n id: toastId,\n duration: 3000,\n });\n};\n\nRwaOutsideMarketHoursNotify.displayName = \"RwaOutsideMarketHoursNotify\";\nexport { RwaOutsideMarketHoursNotify, showRwaOutsideMarketHoursNotify };\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useGetRwaSymbolCloseTimeInterval } from \"@orderly.network/hooks\";\n\nexport const useShowRwaCountdown = (symbol: string) => {\n const [showCountdown, setShowCountdown] = useState<boolean | undefined>(\n undefined,\n );\n\n const [manulClose, setManulClose] = useState<boolean>(false);\n\n const { isRwa, open, closeTimeInterval } =\n useGetRwaSymbolCloseTimeInterval(symbol);\n useEffect(() => {\n if (manulClose) {\n return;\n }\n setShowCountdown(isRwa && open && !!closeTimeInterval);\n }, [isRwa, open, closeTimeInterval, manulClose]);\n\n useEffect(() => {\n return () => {\n setShowCountdown(undefined);\n setManulClose(false);\n };\n }, [symbol]);\n\n const closeCountdown = () => {\n setShowCountdown(false);\n setManulClose(true);\n };\n\n return useMemo(() => {\n return {\n showCountdown,\n closeCountdown,\n };\n }, [showCountdown, closeCountdown]);\n};\n","import { useMemo } from \"react\";\n\nexport const useSplitPersistent = (\n key: string,\n defaulValue?: string,\n dep?: any\n): [string | undefined, (size: string) => void] => {\n const size = useMemo(() => {\n const size = localStorage.getItem(key);\n\n if (size) {\n return `${size}%`;\n }\n return defaulValue;\n }, [key, defaulValue, dep]);\n\n const setSize = (size: string) => {\n localStorage.setItem(key, size);\n };\n\n return [size, setSize];\n};\n","import { RefObject, useEffect, useMemo, useRef, useState } from \"react\";\nimport Split from \"@uiw/react-split\";\nimport {\n useAccount,\n useCollateral,\n useLocalStorage,\n useMediaQuery,\n} 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 { modal } from \"@orderly.network/ui\";\nimport type { LayoutPosition } from \"../../components/desktop/layout/switchLayout\";\nimport { useSplitPersistent } from \"../../components/desktop/layout/useSplitPersistent\";\nimport { PortfolioSheetWidget } from \"../../components/mobile/portfolioSheet\";\nimport { useTradingLocalStorage } from \"../../hooks/\";\nimport { useTradingPageContext } from \"../../provider/tradingPageContext\";\nimport { TradingPageState } from \"../../types/types\";\nimport { useFirstTimeDeposit } from \"./hooks/useFirstTimeDeposit\";\n\nexport type TradingState = ReturnType<typeof useTradingScript>;\n\nexport const scrollBarWidth = 6;\nexport const topBarHeight = 48;\nexport const bottomBarHeight = 29;\nexport const space = 8;\nexport const symbolInfoBarHeight = 54;\n\nexport const orderEntryMinWidth = 280;\nexport const orderEntryMaxWidth = 360;\n\nexport const orderbookMinWidth = 280;\nexport const orderbookMaxWidth = 732;\n\nexport const orderbookMinHeight = 464;\nexport const orderbookMaxHeight = 728;\n\nexport const tradindviewMinHeight = 320;\n\nexport const tradingViewMinWidth = 540;\n\nexport const dataListMaxHeight = 800;\nexport const dataListInitialHeight = 350;\n\nconst ORDERLY_ORDER_ENTRY_SIDE_MARKETS_LAYOUT =\n \"orderly_order_entry_side_markets_layout\";\n\nconst ORDERLY_SIDE_MARKETS_MODE_KEY = \"orderly_side_markets_mode\";\n\nconst ORDERLY_HORIZONTAL_MARKETS_LAYOUT = \"orderly_horizontal_markets_layout\";\n\nexport type MarketLayoutPosition = \"left\" | \"top\" | \"bottom\" | \"hide\";\n\nexport const useTradingScript = () => {\n const [openMarketsSheet, setOpenMarketsSheet] = useState(false);\n const props = useTradingPageContext();\n const { state } = useAccount();\n const { t } = useTranslation();\n const { wrongNetwork, disabledConnect, restrictedInfo, onRouteChange } =\n useAppContext();\n const { hideAssets, setHideAssets } = useTradingLocalStorage();\n\n const isFirstTimeDeposit = useFirstTimeDeposit();\n\n const { totalValue } = useCollateral();\n\n const total = useDataTap(totalValue);\n\n /** max-width: 1279px */\n const max2XL = useMediaQuery(\"(max-width: 1279px)\");\n\n /** min-width: 1440px */\n const min3XL = useMediaQuery(\"(min-width: 1440px)\");\n\n /** max-width: 1680px */\n const max4XL = useMediaQuery(\"(max-width: 1680px)\");\n\n // Order entry and side market list position, default Order entry in right\n const [layout, setLayout] = useLocalStorage<LayoutPosition>(\n ORDERLY_ORDER_ENTRY_SIDE_MARKETS_LAYOUT,\n \"right\",\n );\n\n // Horizontal markets layout position, default left\n const [marketLayout, setMarketLayout] = useLocalStorage<MarketLayoutPosition>(\n ORDERLY_HORIZONTAL_MARKETS_LAYOUT,\n \"left\",\n );\n\n const canTrade = useMemo<boolean>(() => {\n return (\n !wrongNetwork &&\n !disabledConnect &&\n (state.status >= AccountStatusEnum.EnableTrading ||\n state.status === AccountStatusEnum.EnableTradingWithoutConnected)\n );\n }, [state.status, wrongNetwork, disabledConnect]);\n\n const onShowPortfolioSheet = () => {\n if (canTrade) {\n modal.sheet({\n title: t(\"trading.asset&Margin\"),\n leading: props.bottomSheetLeading,\n content: <PortfolioSheetWidget />,\n });\n }\n };\n\n const horizontalDraggable = useMemo(() => min3XL, [min3XL]);\n\n const positionsState = useOrderEntryPositions({\n canTrade,\n isFirstTimeDeposit,\n });\n\n const marketsCollapseState = useMarketsCollapse({ resizeable: min3XL });\n\n const observerState = useObserverOrderEntry({ max2XL });\n\n const marketsWidth = useMemo(() => {\n switch (marketsCollapseState.panelSize) {\n case \"small\":\n return 0;\n case \"middle\":\n return 70;\n case \"large\":\n return 280;\n default:\n return 0;\n }\n }, [marketsCollapseState.panelSize]);\n\n const tradindviewMaxHeight = max2XL ? 1200 : 600;\n\n const dataListMinHeight = canTrade ? 379 : 277;\n\n const splitSizeState = useSplitSize({ dep: layout });\n\n const tradingViewHeightState = useExtraHeight({\n orderEntryViewRef: observerState.orderEntryViewRef,\n tradindviewMaxHeight,\n dataListMinHeight,\n });\n\n const navigateToPortfolio =\n typeof onRouteChange === \"function\"\n ? () => onRouteChange({ href: \"/portfolio\", name: t(\"common.portfolio\") })\n : undefined;\n\n const map = {\n layout,\n onLayout: setLayout,\n marketLayout,\n onMarketLayout: setMarketLayout,\n max2XL,\n min3XL,\n max4XL,\n canTrade,\n openMarketsSheet,\n onOpenMarketsSheetChange: setOpenMarketsSheet,\n horizontalDraggable,\n ...marketsCollapseState,\n ...positionsState,\n ...splitSizeState,\n ...observerState,\n restrictedInfo,\n ...tradingViewHeightState,\n marketsWidth,\n tradindviewMaxHeight,\n dataListMinHeight,\n total,\n hideAssets,\n setHideAssets,\n onShowPortfolioSheet,\n navigateToPortfolio,\n isFirstTimeDeposit,\n symbolInfoBarHeight,\n };\n\n return { ...props, ...map } as TradingPageState & typeof map;\n};\n\nconst useMarketsCollapse = (options: { resizeable: boolean }) => {\n const { resizeable } = options;\n const [animating, setAnimating] = useState(false);\n\n const [panelSize, setPanelSize] = useLocalStorage<\n \"small\" | \"middle\" | \"large\"\n >(ORDERLY_SIDE_MARKETS_MODE_KEY, \"large\");\n\n const onPanelSizeChange = (collapsed: \"small\" | \"middle\" | \"large\") => {\n setPanelSize(collapsed);\n setAnimating(true);\n };\n\n const memoizedPanelSize = useMemo<\"small\" | \"middle\" | \"large\">(() => {\n // Force only two states\n const normalized = panelSize === \"large\" ? \"large\" : \"middle\";\n // under 1440px markets force collapsed\n return resizeable ? normalized : \"middle\";\n }, [resizeable, panelSize]);\n\n return {\n resizeable: resizeable,\n panelSize: memoizedPanelSize,\n onPanelSizeChange: onPanelSizeChange,\n animating: animating,\n setAnimating: setAnimating,\n } as const;\n};\n\nconst useOrderEntryPositions = (options: {\n canTrade: boolean;\n isFirstTimeDeposit: boolean;\n}) => {\n const { canTrade, isFirstTimeDeposit } = options;\n\n const [positions, setPositions] = useLocalStorage(\n \"orderly_assets_orderEntry_margin_positions\",\n [0, 1, 2],\n );\n\n const updatePositions = (currentIdx: number, targetIdx: number) => {\n const pos = [...positions];\n // [0,1,2] => [1,2,0]\n if (currentIdx === 0 && targetIdx === pos.length - 1) {\n pos[targetIdx] = positions[currentIdx];\n for (let i = 0; i < pos.length - 1; i++) {\n pos[i] = positions[i + 1];\n }\n\n // [0,1,2] => [2,0,1]\n } else if (currentIdx === pos.length - 1 && targetIdx === 0) {\n pos[targetIdx] = positions[currentIdx];\n for (let i = 1; i < pos.length; i++) {\n pos[i] = positions[i - 1];\n }\n } else {\n // [0,1,2] => [1,0,2], [0,1,2] => [0,2,1]\n [pos[currentIdx], pos[targetIdx]] = [pos[targetIdx], pos[currentIdx]];\n }\n setPositions(pos);\n };\n\n const showPositionIcon = useMemo(\n () => canTrade && !isFirstTimeDeposit,\n [canTrade, isFirstTimeDeposit],\n );\n\n const pos = useMemo(() => {\n return showPositionIcon ? (positions as number[]) : [0, 1, 2];\n }, [showPositionIcon, positions]);\n\n return {\n positions: pos,\n showPositionIcon,\n updatePositions,\n };\n};\n\nconst useSplitSize = (options: { dep: any }) => {\n const { dep } = options;\n const [mainSplitSize, setMainSplitSize] = useSplitPersistent(\n \"orderly_main_split_size\",\n `${orderEntryMinWidth}px`,\n dep,\n );\n const [dataListSplitSize, setDataListSplitSize] = useSplitPersistent(\n \"orderly_datalist_split_size\",\n `${dataListInitialHeight}px`,\n // undefined,\n );\n const [orderBookSplitSize, setOrderbookSplitSize] = useSplitPersistent(\n \"orderly_orderbook_split_size\",\n \"280px\",\n dep,\n );\n\n const [dataListSplitHeightSM, setDataListSplitHeightSM] = useSplitPersistent(\n \"orderly_datalist_split_height_sm\",\n \"350px\",\n );\n\n const [orderBookSplitHeightSM, setOrderbookSplitHeightSM] =\n useSplitPersistent(\"orderly_orderbook_split_height_sm\", \"280px\");\n\n return {\n orderBookSplitSize,\n setOrderbookSplitSize,\n dataListSplitSize,\n setDataListSplitSize,\n mainSplitSize,\n setMainSplitSize,\n dataListSplitHeightSM,\n setDataListSplitHeightSM,\n orderBookSplitHeightSM,\n setOrderbookSplitHeightSM,\n };\n};\n\nconst useObserverOrderEntry = (options: { max2XL: boolean }) => {\n const { max2XL } = options;\n const [orderEntryHeight, setOrderEntryHeight] = useState(0);\n const orderEntryViewRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = orderEntryViewRef.current;\n\n if (!element || !max2XL) {\n return;\n }\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const height = entry.contentRect.height;\n if (height) {\n setOrderEntryHeight(height);\n }\n }\n });\n\n resizeObserver.observe(element);\n\n return () => {\n resizeObserver.unobserve(element);\n };\n }, [orderEntryViewRef, max2XL]);\n\n return {\n orderEntryViewRef,\n orderEntryHeight,\n };\n};\n\nexport function getOffsetSizeNum(size: string | null) {\n if (size) {\n return `${100 - Math.min(Number(size), 100)}`;\n }\n return \"\";\n}\n\nfunction useExtraHeight(options: {\n orderEntryViewRef: RefObject<HTMLDivElement>;\n tradindviewMaxHeight: number;\n dataListMinHeight: number;\n}) {\n const { tradindviewMaxHeight, dataListMinHeight } = options;\n const tradingviewAndOrderbookSplitRef = useRef<Split>(null);\n const max2XLSplitRef = useRef<Split>(null);\n\n const [extraHeight, setExtraHeight] = useLocalStorage(\n \"orderly_order_entry_extra_height\",\n 0,\n );\n\n const space = 10 + 12;\n\n const [dataListHeight, setDataListHeight] = useLocalStorage(\n \"orderly_trading_data_list_height\",\n dataListMinHeight,\n );\n\n const onTradingviewAndOrderbookDragging = (\n preSize: number,\n nextSize: number,\n ) => {\n const boxHeight = tradingviewAndOrderbookSplitRef?.current?.boxHeight;\n if (!boxHeight) {\n return;\n }\n\n const splitTradingviewHeight = (boxHeight * preSize) / 100;\n const splitOrderbookHeight = (boxHeight * nextSize) / 100;\n\n const tradingviewHeight = Math.min(\n Math.max(splitTradingviewHeight, tradindviewMinHeight),\n tradindviewMaxHeight,\n );\n\n const orderbookHeight = Math.min(\n Math.max(splitOrderbookHeight, orderbookMinHeight),\n orderbookMaxHeight,\n );\n\n const orderEntryHeight =\n options.orderEntryViewRef.current?.clientHeight || 0;\n\n // console.log(\"tradingviewHeight\", splitTradingviewHeight, tradingviewHeight);\n // console.log(\"orderbookHeight\", splitOrderbookHeight, orderbookHeight);\n\n if (splitOrderbookHeight >= orderbookHeight) {\n const offset = splitOrderbookHeight - orderbookHeight;\n // console.log(\"offset ---\", offset);\n setExtraHeight(Math.max(0, extraHeight - offset));\n } else if (\n tradingviewHeight + orderbookHeight <\n tradindviewMaxHeight + orderbookMaxHeight\n ) {\n const height =\n tradingviewHeight + orderbookHeight + space + symbolInfoBarHeight;\n\n const offset = Math.max(0, height - orderEntryHeight);\n // console.log(\"offset ++++\", height, offset);\n setExtraHeight(extraHeight + offset);\n }\n };\n\n const onDataListSplitHeightDragging = (preSize: number, nextSize: number) => {\n const boxHeight = max2XLSplitRef?.current?.boxHeight;\n if (!boxHeight) {\n return;\n }\n\n // const splitTradingAndOrderbookHeight = (boxHeight * preSize) / 100;\n const splitDataListHeight = (boxHeight * nextSize) / 100;\n\n if (\n splitDataListHeight >= dataListMinHeight &&\n splitDataListHeight <= dataListMaxHeight\n ) {\n setDataListHeight(splitDataListHeight);\n const offset = splitDataListHeight - dataListHeight;\n if (offset > 0) {\n setExtraHeight(Math.max(0, extraHeight - offset));\n }\n }\n };\n\n return {\n max2XLSplitRef,\n tradingviewAndOrderbookSplitRef,\n onTradingviewAndOrderbookDragging,\n onDataListSplitHeightDragging,\n extraHeight,\n dataListHeight,\n };\n}\n","import { useMemo } from \"react\";\nimport {\n useAccount,\n useAssetsHistory,\n useCollateral,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n AccountStatusEnum,\n AssetHistorySideEnum,\n AssetHistoryStatusEnum,\n} from \"@orderly.network/types\";\n\nexport const useFirstTimeDeposit = () => {\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { totalValue } = useCollateral({\n dp: 2,\n });\n\n const unavailable =\n wrongNetwork ||\n disabledConnect ||\n (state.status < AccountStatusEnum.EnableTrading &&\n state.status !== AccountStatusEnum.EnableTradingWithoutConnected);\n\n const { startTime, endTime } = useMemo(() => {\n const d = new Date();\n // must set last second of today, when wallet ws changed, it will get latest data from api\n const today = new Date(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n 23,\n 59,\n 59,\n );\n\n const endTime = today.getTime();\n // 90 days ago timestamp\n const startTime = endTime - 90 * 24 * 60 * 60 * 1000;\n\n return {\n startTime,\n endTime,\n };\n }, []);\n\n const [_, { meta }] = useAssetsHistory(\n {\n startTime,\n endTime,\n page: 1,\n pageSize: 5,\n side: AssetHistorySideEnum.DEPOSIT,\n status: AssetHistoryStatusEnum.COMPLETED,\n },\n {\n shouldUpdateOnWalletChanged: (data) =>\n data.side === AssetHistorySideEnum.DEPOSIT &&\n data.transStatus === AssetHistoryStatusEnum.COMPLETED,\n },\n );\n\n return !unavailable && totalValue === 0 && meta?.total === 0;\n};\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragOverlay,\n DragStartEvent,\n DragEndEvent,\n Modifier,\n type ClientRect,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS, Transform } from \"@dnd-kit/utilities\";\nimport {\n useGetRwaSymbolOpenStatus,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport {\n SideMarketsWidget,\n SymbolInfoBarFullWidget,\n HorizontalMarketsWidget,\n} from \"@orderly.network/markets\";\nimport {\n OrderEntrySortKeys,\n TradingviewFullscreenKey,\n} from \"@orderly.network/types\";\nimport { Box, cn, Flex } from \"@orderly.network/ui\";\nimport { OrderEntryWidget } from \"@orderly.network/ui-order-entry\";\nimport { TradingviewWidget } from \"@orderly.network/ui-tradingview\";\nimport { DepositStatusWidget } from \"@orderly.network/ui-transfer\";\nimport { SortablePanel } from \"../../components/desktop/layout/sortablePanel\";\nimport { SplitLayout } from \"../../components/desktop/layout/splitLayout\";\nimport { showRwaOutsideMarketHoursNotify } from \"../../components/desktop/notify/rwaNotification\";\nimport { useShowRwaCountdown } from \"../../hooks/useShowRwaCountdown\";\nimport {\n dataListInitialHeight,\n getOffsetSizeNum,\n TradingState,\n} from \"./trading.script\";\nimport {\n scrollBarWidth,\n topBarHeight,\n bottomBarHeight,\n space,\n orderEntryMinWidth,\n orderEntryMaxWidth,\n orderbookMinWidth,\n orderbookMaxWidth,\n orderbookMinHeight,\n orderbookMaxHeight,\n tradindviewMinHeight,\n tradingViewMinWidth,\n dataListMaxHeight,\n} from \"./trading.script\";\n\nconst LazyRiskRateWidget = React.lazy(() =>\n import(\"../../components/desktop/riskRate\").then((mod) => {\n return {\n default: mod.RiskRateWidget,\n };\n }),\n);\n\nconst LazyAssetViewWidget = React.lazy(() =>\n import(\"../../components/desktop/assetView\").then((mod) => {\n return {\n default: mod.AssetViewWidget,\n };\n }),\n);\n\nconst LazyDataListWidget = React.lazy(() =>\n import(\"../../components/desktop/dataList\").then((mod) => {\n return {\n default: mod.DataListWidget,\n };\n }),\n);\n\nconst LazySwitchLayout = React.lazy(() =>\n import(\"../../components/desktop/layout/switchLayout\").then((mod) => {\n return {\n default: mod.SwitchLayout,\n };\n }),\n);\n\nconst LazyOrderBookAndTradesWidget = React.lazy(() =>\n import(\"../../components/desktop/orderBookAndTrades\").then((mod) => {\n return {\n default: mod.OrderBookAndTradesWidget,\n };\n }),\n);\n\nexport type DesktopLayoutProps = TradingState & {\n className?: string;\n};\n\nconst scaleModifier: Modifier = ({\n transform,\n draggingNodeRect,\n}: {\n transform: Transform;\n draggingNodeRect: ClientRect | null;\n}) => {\n if (draggingNodeRect) {\n return {\n ...transform,\n scaleX: 2.05,\n scaleY: 2.05,\n };\n }\n return transform;\n};\n\nexport const DesktopLayout: React.FC<DesktopLayoutProps> = (props) => {\n const {\n resizeable,\n panelSize,\n onPanelSizeChange,\n layout,\n onLayout,\n marketLayout,\n onMarketLayout,\n orderBookSplitSize,\n setOrderbookSplitSize,\n dataListSplitSize,\n setDataListSplitSize,\n mainSplitSize,\n setMainSplitSize,\n dataListSplitHeightSM,\n setDataListSplitHeightSM,\n orderBookSplitHeightSM,\n setOrderbookSplitHeightSM,\n max2XL,\n max4XL,\n animating,\n setAnimating,\n updatePositions,\n showPositionIcon,\n horizontalDraggable,\n marketsWidth,\n tradindviewMaxHeight,\n dataListMinHeight,\n } = props;\n\n const { showCountdown, closeCountdown } = useShowRwaCountdown(props.symbol);\n const symbolInfoBarHeight = useMemo(() => {\n return showCountdown ? 104 : 56;\n }, [showCountdown]);\n\n const { isRwa, open } = useGetRwaSymbolOpenStatus(props.symbol);\n\n useEffect(() => {\n if (isRwa && !open) {\n showRwaOutsideMarketHoursNotify();\n }\n }, [isRwa, open, props.symbol]);\n\n const [tradingViewFullScreen] = useLocalStorage(\n TradingviewFullscreenKey,\n false,\n );\n\n const [sortableItems, setSortableItems] = useLocalStorage<string[]>(\n OrderEntrySortKeys,\n [\"margin\", \"assets\", \"orderEntry\"],\n );\n\n const dropAnimationConfig = useMemo(() => {\n return {\n keyframes({\n transform,\n }: {\n transform: {\n initial: Transform;\n final: Transform;\n };\n }) {\n return [\n {\n transform: CSS.Transform.toString({\n ...transform.initial,\n scaleX: 1.05,\n scaleY: 1.05,\n }),\n },\n {\n transform: CSS.Transform.toString({\n ...transform.final,\n scaleX: 1,\n scaleY: 1,\n // scaleX: 0.85,\n // scaleY: 0.85,\n }),\n },\n ];\n },\n sideEffects: ({ active, dragOverlay }) => {\n // console.log(active.node);\n active.node.style.opacity = \"0\";\n const innerElement = dragOverlay.node.querySelector(\".inner-content\");\n if (innerElement) {\n // innerElement.animate(\n // [{ transform: \"scale(1.05)\" }, { transform: \"scale(1)\" }],\n // {\n // duration: 200,\n // easing: \"ease-out\",\n // },\n // );\n innerElement.classList.add(\"oui-animate-shake\");\n }\n return () => {\n active.node.style.opacity = \"\";\n };\n },\n };\n }, []);\n\n // Configure sensors for drag and drop interactions\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n // State for drag overlay management\n const [activeId, setActiveId] = useState<string | null>(null);\n\n /**\n * Handle drag start event for sortable panels\n * Sets the active dragging item for overlay rendering\n */\n function handleDragStart(event: DragStartEvent) {\n setActiveId(event.active.id as string);\n }\n\n /**\n * Handle drag end event for sortable panels\n * Updates the order of sortable items and corresponding positions\n */\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event;\n\n if (active.id !== over?.id && over) {\n const oldIndex = sortableItems.indexOf(active.id as string);\n const newIndex = sortableItems.indexOf(over.id as string);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n // Update sortableItems order\n const newItems = arrayMove(sortableItems, oldIndex, newIndex);\n setSortableItems(newItems as string[]);\n\n // Also update positions to keep them in sync\n // updatePositions(oldIndex, newIndex);\n }\n }\n\n // Reset active id after drag ends\n setActiveId(null);\n }\n\n const minScreenHeight = useMemo(() => {\n return tradingViewFullScreen\n ? 0\n : symbolInfoBarHeight +\n orderbookMaxHeight +\n dataListInitialHeight +\n space * 4;\n }, [tradingViewFullScreen]);\n\n const minScreenHeightSM =\n topBarHeight +\n bottomBarHeight +\n symbolInfoBarHeight +\n tradindviewMinHeight +\n orderbookMinHeight +\n dataListMinHeight +\n space * 4;\n\n const horizontalMarketsView = (\n <HorizontalMarketsWidget\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n maxItems={-1} // show all markets\n dropdownPos={marketLayout === \"bottom\" ? \"top\" : \"bottom\"}\n />\n );\n\n const containerPaddingX = useMemo(() => (max2XL ? 12 : 8), [max2XL]);\n\n const stickyHorizontalMarketsView = (\n <Box\n className={cn(\n \"oui-bg-base-10\",\n // -8 is for reducing the container's padding\n \"oui-sticky oui-z-30 oui-mb-[-8px] oui-py-2\",\n // Split line disabled for > 2xl screens\n !max2XL && \"oui-mt-[-8px]\",\n )}\n style={{\n bottom: 0,\n minWidth:\n (max2XL ? 1024 : 1440) - scrollBarWidth - containerPaddingX * 2,\n }}\n >\n {horizontalMarketsView}\n </Box>\n );\n\n const marketsWidget = (\n <SideMarketsWidget\n resizeable={resizeable}\n panelSize={panelSize}\n onPanelSizeChange={onPanelSizeChange as any}\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n />\n );\n\n const marketsView = (\n <Box\n intensity={900}\n pt={3}\n r=\"2xl\"\n height=\"100%\"\n width={marketsWidth}\n style={{ minWidth: marketsWidth }}\n className=\"oui-transition-all oui-duration-150\"\n onTransitionEnd={() => setAnimating(false)}\n >\n {!animating && marketLayout === \"left\" && marketsWidget}\n </Box>\n );\n\n const symbolInfoBarView = (\n <Box\n intensity={900}\n r=\"2xl\"\n px={3}\n width=\"100%\"\n style={{\n minHeight: symbolInfoBarHeight,\n height: symbolInfoBarHeight,\n }}\n >\n <SymbolInfoBarFullWidget\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n closeCountdown={closeCountdown}\n showCountdown={showCountdown}\n trailing={\n <React.Suspense fallback={null}>\n <LazySwitchLayout\n layout={layout}\n onLayout={onLayout}\n marketLayout={marketLayout}\n onMarketLayout={onMarketLayout}\n />\n </React.Suspense>\n }\n />\n </Box>\n );\n\n const { library_path, ...restTradingViewConfig } = props.tradingViewConfig;\n\n const tradingviewWidget = (\n <TradingviewWidget\n classNames={{\n root: cn(\n tradingViewFullScreen\n ? \"!oui-absolute oui-top-0 oui-left-0 oui-right-0 oui-bottom-0 oui-z-[40] oui-bg-base-10\"\n : \"oui-z-1\",\n ),\n content: cn(\n tradingViewFullScreen\n ? \"oui-top-3 oui-bottom-3 oui-left-3 oui-right-3 oui-bg-base-9 oui-rounded-[16px] oui-overflow-hidden\"\n : \"\",\n ),\n }}\n symbol={props.symbol}\n {...restTradingViewConfig}\n libraryPath={library_path}\n />\n );\n\n const tradingView = (\n <Box\n width=\"100%\"\n height=\"100%\"\n intensity={900}\n r=\"2xl\"\n style={{ flex: 1, minWidth: tradingViewMinWidth }}\n className=\"oui-overflow-hidden\"\n >\n {tradingviewWidget}\n </Box>\n );\n\n const orderbookWidget = (\n <React.Suspense fallback={null}>\n <LazyOrderBookAndTradesWidget symbol={props.symbol} />\n </React.Suspense>\n );\n\n const orderbookView = (\n <Box\n r=\"2xl\"\n height=\"100%\"\n style={{\n minWidth: orderbookMinWidth,\n maxWidth: horizontalDraggable ? orderbookMaxWidth : orderbookMinWidth,\n width: orderBookSplitSize,\n }}\n className=\"oui-overflow-hidden\"\n >\n {orderbookWidget}\n </Box>\n );\n\n const dataListWidget = (\n <React.Suspense fallback={null}>\n <LazyDataListWidget\n current={undefined}\n symbol={props.symbol}\n sharePnLConfig={props.sharePnLConfig}\n />\n </React.Suspense>\n );\n\n const dataListView = (\n <Box\n intensity={900}\n r=\"2xl\"\n p={2}\n style={{\n height: dataListSplitSize,\n // height: `calc(100% - ${symbolInfoBarHeight}px - ${orderbookMaxHeight}px - ${space}px)`,\n minHeight: dataListInitialHeight,\n // minHeight: `max(${dataListMinHeight}px, calc(100vh - ${symbolInfoBarHeight}px - ${orderbookMaxHeight}px - ${space}px))`,\n }}\n className=\"oui-overflow-hidden\"\n >\n {dataListWidget}\n </Box>\n );\n\n const orderInteractionWidgets = useMemo(() => {\n return {\n margin: {\n className: \"\",\n element: (\n <React.Suspense fallback={null}>\n <LazyRiskRateWidget />\n </React.Suspense>\n ),\n },\n assets: {\n className: \"oui-border oui-border-line-12\",\n element: (\n <>\n <React.Suspense fallback={null}>\n <LazyAssetViewWidget\n isFirstTimeDeposit={props.isFirstTimeDeposit}\n />\n </React.Suspense>\n <DepositStatusWidget\n className=\"oui-mt-3 oui-gap-y-2\"\n onClick={props.navigateToPortfolio}\n />\n </>\n ),\n },\n orderEntry: {\n className: \"\",\n element: (\n <OrderEntryWidget\n symbol={props.symbol}\n disableFeatures={\n props.disableFeatures as unknown as (\n | \"slippageSetting\"\n | \"feesInfo\"\n )[]\n }\n />\n ),\n },\n };\n }, [\n props.isFirstTimeDeposit,\n props.disableFeatures,\n props.navigateToPortfolio,\n props.symbol,\n ]);\n\n const orderEntryView = (\n <Flex\n gapY={2}\n direction=\"column\"\n height=\"100%\"\n style={{\n minWidth: orderEntryMinWidth,\n maxWidth: horizontalDraggable ? orderEntryMaxWidth : orderEntryMinWidth,\n width: mainSplitSize,\n }}\n >\n {sortableItems.map((key: string) => {\n return (\n <SortablePanel\n key={key}\n id={key}\n showIndicator={showPositionIcon}\n className={\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].className\n }\n >\n {\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n );\n })}\n </Flex>\n );\n\n const renderTradingView = () => {\n if (max4XL && layout === \"right\") {\n return (\n <Flex\n gap={2}\n className=\"oui-flex-1 oui-overflow-hidden\"\n style={{ minWidth: marketsWidth + tradingViewMinWidth + space }}\n >\n {marketLayout === \"left\" && marketsView}\n {tradingView}\n </Flex>\n );\n }\n\n return tradingView;\n };\n\n const tradingViewAndOrderbookView = (\n <SplitLayout\n style={{\n // the style width is not set, and a child node style needs to be set to flex: 1 to adapt\n flex: 1,\n minHeight: orderbookMinHeight,\n // maxHeight: orderbookMaxHeight,\n }}\n onSizeChange={setOrderbookSplitSize}\n disable={!horizontalDraggable}\n >\n {renderTradingView()}\n {orderbookView}\n </SplitLayout>\n );\n\n const renderTradingViewAndOrderbookView = () => {\n if (max4XL && layout === \"left\") {\n return (\n <Flex gapX={2} style={{ minHeight: orderbookMinHeight }} height=\"100%\">\n {tradingViewAndOrderbookView}\n {marketLayout === \"left\" && marketsView}\n </Flex>\n );\n }\n return tradingViewAndOrderbookView;\n };\n\n const mainView = (\n <Flex\n direction=\"column\"\n className=\"oui-flex-1 oui-overflow-hidden\"\n gap={2}\n style={{\n minWidth: max4XL\n ? marketsWidth + tradingViewMinWidth + orderbookMinWidth + space * 2\n : tradingViewMinWidth + orderbookMinWidth + space,\n }}\n >\n {symbolInfoBarView}\n <SplitLayout\n style={{\n // height: orderbookMaxHeight + dataListInitialHeight + space,\n maxHeight: `calc(100% - ${symbolInfoBarHeight}px - ${space}px)`,\n }}\n className=\"oui-w-full\"\n mode=\"vertical\"\n onSizeChange={setDataListSplitSize}\n >\n {renderTradingViewAndOrderbookView()}\n {dataListView}\n </SplitLayout>\n </Flex>\n );\n\n const onSizeChange = (width: string) =>\n layout === \"left\"\n ? setMainSplitSize(getOffsetSizeNum(width))\n : setMainSplitSize(width);\n\n if (max2XL) {\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n items={sortableItems}\n strategy={verticalListSortingStrategy}\n >\n <Box height=\"100%\">\n {marketLayout === \"top\" && (\n <Box\n className={cn(\"oui-mt-2 oui-max-h-8 oui-px-3\", props.className)}\n >\n {horizontalMarketsView}\n </Box>\n )}\n\n <SplitLayout\n ref={props.max2XLSplitRef}\n style={{\n minHeight: minScreenHeightSM,\n minWidth: 1024 - scrollBarWidth,\n // height: props.extraHeight ? props.extraHeight : undefined,\n }}\n className={cn(\n \"oui-flex oui-flex-1\",\n \"oui-size-full oui-min-w-[1018px]\",\n \"oui-px-3 oui-py-2\",\n props.className,\n )}\n onSizeChange={setDataListSplitHeightSM}\n onDragging={props.onDataListSplitHeightDragging}\n mode=\"vertical\"\n >\n <Flex\n gapX={2}\n itemAlign=\"stretch\"\n className={cn(\n \"oui-flex-1\",\n layout === \"left\" && \"oui-flex-row-reverse\",\n )}\n style={{\n minHeight: Math.max(\n symbolInfoBarHeight +\n tradindviewMinHeight +\n orderbookMinHeight +\n space * 2,\n props.orderEntryHeight,\n ),\n maxHeight:\n symbolInfoBarHeight +\n tradindviewMaxHeight +\n orderbookMaxHeight +\n space * 2,\n }}\n >\n <Flex\n height=\"100%\"\n className=\"oui-w-[calc(100%_-_280px_-_12px)] oui-flex-1\"\n direction=\"column\"\n gapY={2}\n >\n {symbolInfoBarView}\n <Flex\n width=\"100%\"\n height=\"100%\"\n gapX={2}\n itemAlign=\"stretch\"\n style={{\n minHeight:\n tradindviewMinHeight + orderbookMinHeight + space,\n maxHeight:\n tradindviewMaxHeight + orderbookMaxHeight + space,\n }}\n className={cn(\n \"oui-flex-1\",\n layout === \"left\" && \"oui-flex-row-reverse\",\n )}\n >\n {marketLayout === \"left\" && (\n <Box\n intensity={900}\n pt={3}\n r=\"2xl\"\n width={marketsWidth}\n style={{\n minHeight:\n tradindviewMinHeight + orderbookMinHeight + space,\n maxHeight:\n tradindviewMaxHeight + orderbookMaxHeight + space,\n }}\n >\n {marketsWidget}\n </Box>\n )}\n <SplitLayout\n ref={props.tradingviewAndOrderbookSplitRef}\n mode=\"vertical\"\n style={{ width: `calc(100% - ${marketsWidth}px)` }}\n className=\"oui-flex-1\"\n onSizeChange={setOrderbookSplitHeightSM}\n onDragging={props.onTradingviewAndOrderbookDragging}\n >\n <Box\n width=\"100%\"\n intensity={900}\n r=\"2xl\"\n style={{\n minHeight: tradindviewMinHeight,\n maxHeight: tradindviewMaxHeight,\n height: 1200,\n }}\n >\n {tradingviewWidget}\n </Box>\n\n <Box\n r=\"2xl\"\n height=\"100%\"\n width=\"100%\"\n style={{\n minHeight: orderbookMinHeight,\n maxHeight: orderbookMaxHeight,\n height: orderBookSplitHeightSM,\n }}\n className=\"oui-flex-1\"\n >\n {orderbookWidget}\n </Box>\n </SplitLayout>\n </Flex>\n </Flex>\n <Flex\n ref={props.orderEntryViewRef}\n id=\"orderEntryView\"\n gapY={3}\n direction=\"column\"\n className=\"oui-relative\"\n style={{\n width: orderEntryMinWidth,\n // force order entry render actual content height\n height: \"max-content\",\n // height:\n // props.extraHeight && props.extraHeight > 100\n // ? undefined\n // : \"max-content\",\n }}\n >\n <Flex\n gapY={2}\n direction=\"column\"\n height=\"100%\"\n style={{\n minWidth: orderEntryMinWidth,\n maxWidth: horizontalDraggable\n ? orderEntryMaxWidth\n : orderEntryMinWidth,\n width: mainSplitSize,\n }}\n >\n {sortableItems.map((key: string) => {\n return (\n <SortablePanel\n key={key}\n id={key}\n showIndicator={showPositionIcon}\n className={\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].className\n }\n >\n {\n orderInteractionWidgets[\n key as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n );\n })}\n </Flex>\n <Box height={props.extraHeight} />\n </Flex>\n </Flex>\n\n <Box\n intensity={900}\n r=\"2xl\"\n p={2}\n style={{\n height: dataListSplitHeightSM,\n minHeight: Math.max(dataListMinHeight, props.dataListHeight),\n maxHeight: dataListMaxHeight,\n }}\n className=\"oui-overflow-hidden\"\n >\n {dataListWidget}\n </Box>\n\n {marketLayout === \"bottom\" && stickyHorizontalMarketsView}\n </SplitLayout>\n </Box>\n </SortableContext>\n <DragOverlay dropAnimation={dropAnimationConfig}>\n {activeId ? (\n <SortablePanel\n id={activeId}\n showIndicator={showPositionIcon}\n dragOverlay\n className={`${\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].className\n } oui-shadow-lg oui-shadow-base-9`}\n >\n {\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n items={sortableItems}\n strategy={verticalListSortingStrategy}\n >\n <Flex\n style={{\n minHeight: minScreenHeight,\n minWidth: 1440 - scrollBarWidth,\n }}\n className={cn(\n props.className,\n \"oui-justify-start\",\n tradingViewFullScreen &&\n \"oui-relative oui-h-[calc(100vh-80px)] oui-w-screen oui-overflow-hidden !oui-p-0\",\n )}\n width=\"100%\"\n p={2}\n gap={2}\n itemAlign=\"stretch\"\n direction=\"column\"\n >\n {/* Horizontal Markets View on top for !=2xl screens */}\n {marketLayout === \"top\" && horizontalMarketsView}\n\n {/* Main Content Group */}\n <Flex\n className={cn(\n \"oui-flex-1 oui-overflow-hidden\",\n layout === \"left\" && \"oui-flex-row-reverse\",\n )}\n gap={2}\n >\n {!max4XL && marketLayout === \"left\" && marketsView}\n <SplitLayout\n className={cn(\"oui-flex oui-flex-1 oui-overflow-hidden\")}\n onSizeChange={onSizeChange}\n disable={!horizontalDraggable}\n >\n {layout === \"left\" && orderEntryView}\n {mainView}\n {layout === \"right\" && orderEntryView}\n </SplitLayout>\n </Flex>\n\n {marketLayout === \"bottom\" && stickyHorizontalMarketsView}\n </Flex>\n </SortableContext>\n <DragOverlay\n dropAnimation={dropAnimationConfig}\n\n // style={{\n // transform: \"scale(1.05)\",\n // }}\n // transition=\"transform 200ms ease\"\n // className=\"oui-animate-pop\"\n >\n {activeId ? (\n <SortablePanel\n id={activeId}\n showIndicator={showPositionIcon}\n dragOverlay\n className={`${\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].className\n } oui-shadow-lg oui-shadow-base-9`}\n >\n {\n orderInteractionWidgets[\n activeId as keyof typeof orderInteractionWidgets\n ].element\n }\n </SortablePanel>\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex } from \"@orderly.network/ui\";\n\nexport const Countdown = ({\n timeInterval,\n}: {\n timeInterval: number | undefined;\n}) => {\n const { t } = useTranslation();\n\n if (!timeInterval) {\n return null;\n }\n\n // if timeInterval is greater than 30 minutes, return null\n if (timeInterval >= 1800) {\n return null;\n }\n\n const [days, hours, minutes, seconds] = breakDownSeconds(timeInterval);\n\n const daysStr = days.toString().padStart(2, \"0\");\n const hoursStr = hours.toString().padStart(2, \"0\");\n const minutesStr = minutes.toString().padStart(2, \"0\");\n const secondsStr = seconds.toString().padStart(2, \"0\");\n\n const renderStr = () => {\n if (days > 0) {\n return {\n s1: daysStr,\n s2: hoursStr,\n c1: t(\"common.dayShort\"),\n c2: t(\"common.hourShort\"),\n };\n }\n\n if (hours > 0) {\n return {\n s1: hoursStr,\n s2: minutesStr,\n c1: t(\"common.hourShort\"),\n c2: t(\"common.minuteShort\"),\n };\n }\n\n return {\n s1: minutesStr,\n s2: secondsStr,\n c1: t(\"common.minuteShort\"),\n c2: t(\"common.secondShort\"),\n };\n };\n\n const { s1, s2, c1, c2 } = renderStr();\n\n return (\n <Flex className=\"oui-text-base-contrast-54 oui-text-xs oui-font-normal\">\n <Box\n ml={2}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {s1}\n </Box>\n {c1}\n {\" : \"}\n <Box\n ml={1}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {s2}\n </Box>\n {c2}\n </Flex>\n );\n};\n\nfunction breakDownSeconds(total: number): [number, number, number, number] {\n const SEC_PER_DAY = 86_400;\n const SEC_PER_HOUR = 3_600;\n const SEC_PER_MIN = 60;\n\n const days = Math.floor(total / SEC_PER_DAY);\n const remAfterDays = total % SEC_PER_DAY;\n\n const hours = Math.floor(remAfterDays / SEC_PER_HOUR);\n const remAfterHours = remAfterDays % SEC_PER_HOUR;\n\n const mins = Math.floor(remAfterHours / SEC_PER_MIN);\n const secs = remAfterHours % SEC_PER_MIN;\n\n return [days, hours, mins, secs];\n}\n","import React, { useEffect, useMemo } from \"react\";\nimport { useGetRwaSymbolInfo } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n MarketsSheetWidget,\n SymbolInfoBarWidget,\n} from \"@orderly.network/markets\";\nimport {\n Box,\n SimpleSheet,\n EyeCloseIcon,\n EyeIcon,\n Flex,\n Text,\n NewsFillIcon,\n} from \"@orderly.network/ui\";\nimport { Countdown } from \"../../components/base/countdown\";\nimport { showRwaOutsideMarketHoursNotify } from \"../../components/desktop/notify/rwaNotification\";\nimport type { TradingState } from \"./trading.script\";\n\nconst LazyTopTabWidget = React.lazy(() =>\n import(\"../../components/mobile/topTab\").then((mod) => {\n return { default: mod.TopTabWidget };\n }),\n);\n\nconst LazyOrderBookAndEntryWidget = React.lazy(() =>\n import(\"../../components/mobile/orderBookAndEntry\").then((mod) => {\n return { default: mod.OrderBookAndEntryWidget };\n }),\n);\n\nconst LazyDataListWidget = React.lazy(() =>\n import(\"../../components/mobile/dataList\").then((mod) => {\n return { default: mod.DataListWidget };\n }),\n);\n\nconst MaybeEqual: React.FC = () => {\n return (\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.456 3.48a3.5 3.5 0 0 0 .431-.567 9 9 0 0 0 .361-.654l-.648-.66-.107.185q-.071.12-.142.244a3 3 0 0 1-.27.396 1.4 1.4 0 0 1-.318.29.67.67 0 0 1-.38.114q-.307 0-.666-.194t-.742-.42q-.383-.227-.777-.42a1.7 1.7 0 0 0-.771-.194q-.401.001-.72.154a2.1 2.1 0 0 0-.57.404 2.6 2.6 0 0 0-.43.574 5 5 0 0 0-.307.646l.649.66q.165-.437.464-.833.298-.395.742-.396.347 0 .7.194.354.193.721.42.37.227.763.42.396.195.826.195.374.001.665-.155.29-.151.526-.404m.352 2.941a3.5 3.5 0 0 0 .431-.566q.196-.315.361-.654l-.648-.66-.107.184-.142.244a3 3 0 0 1-.27.396 1.4 1.4 0 0 1-.318.29.67.67 0 0 1-.38.115q-.307 0-.666-.195-.36-.193-.742-.42-.383-.226-.778-.42a1.7 1.7 0 0 0-.77-.194q-.401.001-.72.154a2.1 2.1 0 0 0-.57.405 2.6 2.6 0 0 0-.43.574 5 5 0 0 0-.307.646l.649.66q.165-.437.464-.833.297-.395.742-.396.347 0 .7.194.354.193.721.42.369.226.763.42.396.194.826.194.374.001.665-.154.29-.152.526-.404\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n\nexport const MobileLayout: React.FC<TradingState> = (props) => {\n const { t } = useTranslation();\n\n const { isRwa, open, closeTimeInterval } = useGetRwaSymbolInfo(props.symbol);\n\n useEffect(() => {\n if (isRwa && !open) {\n showRwaOutsideMarketHoursNotify();\n }\n }, [isRwa, open, props.symbol]);\n\n const rwaStatusBar = useMemo(() => {\n if (!isRwa) {\n return null;\n }\n\n if (closeTimeInterval === undefined) {\n return null;\n }\n\n const thresholdTime = 30 * 60;\n\n if ((closeTimeInterval ?? 0) > thresholdTime) {\n return null;\n }\n\n return (\n <Flex\n gap={1}\n p={2}\n justify=\"start\"\n itemAlign=\"center\"\n r=\"lg\"\n mt={2}\n className=\"oui-bg-success/15 oui-text-xs oui-text-base-contrast-54\"\n >\n <NewsFillIcon color=\"success\" size={16} className=\"oui-flex-shrink-0\" />\n <Flex className=\"oui-flex-1 oui-text-success\">\n <Text>\n {open\n ? t(\"trading.rwa.mWeb.outsideMarketHours.desc\")\n : t(\"trading.rwa.mWeb.insideMarketHours.desc\")}\n </Text>\n </Flex>\n <Countdown timeInterval={closeTimeInterval} />\n </Flex>\n );\n }, [isRwa, open, closeTimeInterval]);\n\n const symbolInfoBar = (\n <SymbolInfoBarWidget\n symbol={props.symbol}\n onSymbol={() => props.onOpenMarketsSheetChange(true)}\n trailing={\n <Flex\n direction={\"column\"}\n itemAlign={\"end\"}\n className=\"oui-cursor-pointer oui-text-[11px]\"\n onClick={props.onShowPortfolioSheet}\n >\n <Flex>\n <Text intensity={54}>{t(\"common.totalValue\")}</Text>\n <button\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.setHideAssets(!props.hideAssets);\n }}\n className=\"oui-px-1\"\n >\n {props.hideAssets ? (\n <EyeIcon\n color=\"primary\"\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n ) : (\n <EyeCloseIcon\n color=\"primary\"\n opacity={1}\n size={16}\n className=\"oui-text-primary-light\"\n />\n )}\n </button>\n <MaybeEqual />\n </Flex>\n <Text.numeral\n suffix={<Text intensity={20}>&nbsp;USDC</Text>}\n dp={2}\n visible={!props.hideAssets}\n >\n {props.canTrade ? (props.total ?? \"--\") : \"--\"}\n </Text.numeral>\n </Flex>\n }\n />\n );\n\n const topBar = (\n <Box intensity={900} className=\"oui-rounded-xl\" mx={1} px={3} py={2}>\n {symbolInfoBar}\n <SimpleSheet\n open={props.openMarketsSheet}\n onOpenChange={props.onOpenMarketsSheetChange}\n classNames={{\n body: \"oui-h-full oui-pb-0\",\n content: \"oui-w-[280px] !oui-p-0\",\n }}\n contentProps={{ side: \"left\", closeable: false }}\n >\n <MarketsSheetWidget\n symbol={props.symbol}\n onSymbolChange={(symbol) => {\n props.onOpenMarketsSheetChange(false);\n props.onSymbolChange?.(symbol);\n }}\n />\n </SimpleSheet>\n {rwaStatusBar}\n </Box>\n );\n\n return (\n <div className=\"oui-relative oui-grid oui-gap-1 oui-bg-base-10\">\n <main className=\"oui-hide-scrollbar oui-space-y-1 oui-overflow-y-auto\">\n {topBar}\n\n <React.Suspense fallback={null}>\n <LazyTopTabWidget className=\"oui-mx-1 oui-rounded-xl oui-bg-base-9\" />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyOrderBookAndEntryWidget />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataListWidget\n symbol={props.symbol}\n className=\"oui-mx-1 oui-rounded-xl\"\n sharePnLConfig={props.sharePnLConfig}\n />\n </React.Suspense>\n </main>\n </div>\n );\n};\n","import { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport type { TradingState } from \"./trading.script\";\nimport { DesktopLayout } from \"./trading.ui.desktop\";\nimport { MobileLayout } from \"./trading.ui.mobile\";\n\nexport const Trading: FC<TradingState> = (props) => {\n const { isMobile } = useScreen();\n\n if (isMobile) {\n return <MobileLayout {...props} />;\n }\n\n return (\n <DesktopLayout\n className=\"oui-h-[calc(100vh_-_48px_-_29px)] oui-bg-base-10\"\n {...props}\n />\n );\n};\n","import React from \"react\";\nimport { useTradingScript } from \"./trading.script\";\nimport { Trading } from \"./trading.ui\";\n\nexport const TradingWidget: React.FC = () => {\n const state = useTradingScript();\n return <Trading {...state} />;\n};\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { TradingPageState, TradingPageProps } from \"../types/types\";\nimport { getBasicSymbolInfo } from \"../utils/utils\";\nimport { TradingPageContext } from \"./tradingPageContext\";\n\nexport const TradingPageProvider: FC<PropsWithChildren<TradingPageProps>> = (\n props,\n) => {\n const { symbol, children } = props;\n const symbolInfo = useSymbolsInfo()[symbol];\n\n const memoizedValue = useMemo<TradingPageState>(() => {\n const basicSymbol = getBasicSymbolInfo(symbolInfo);\n return {\n ...props,\n symbolInfo: {\n ...basicSymbol,\n symbol: symbol,\n },\n };\n }, [props, symbol, symbolInfo]);\n return (\n <TradingPageContext.Provider value={memoizedValue}>\n {children}\n </TradingPageContext.Provider>\n );\n};\n","import React from \"react\";\nimport { TradingPageProvider } from \"../../provider/tradingPageProvider\";\nimport { TradingPageProps } from \"../../types/types\";\nimport { TradingWidget } from \"./trading.widget\";\n\nexport const TradingPage: React.FC<TradingPageProps> = (props) => {\n return (\n <TradingPageProvider\n symbol={props.symbol}\n tradingViewConfig={props.tradingViewConfig}\n onSymbolChange={props.onSymbolChange}\n disableFeatures={props.disableFeatures}\n overrideFeatures={props.overrideFeatures}\n referral={props.referral}\n tradingRewards={props.tradingRewards}\n bottomSheetLeading={props.bottomSheetLeading}\n sharePnLConfig={props.sharePnLConfig}\n >\n <TradingWidget />\n </TradingPageProvider>\n );\n};\n"]}