@orderly.network/portfolio 2.8.6-alpha.0 → 2.8.7-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.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var React7 = require('react');
3
+ var React12 = require('react');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var hooks = require('@orderly.network/hooks');
6
6
  var reactApp = require('@orderly.network/react-app');
@@ -23,7 +23,7 @@ var perp = require('@orderly.network/perp');
23
23
 
24
24
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
25
25
 
26
- var React7__default = /*#__PURE__*/_interopDefault(React7);
26
+ var React12__default = /*#__PURE__*/_interopDefault(React12);
27
27
  var pick__default = /*#__PURE__*/_interopDefault(pick);
28
28
 
29
29
  var __defProp = Object.defineProperty;
@@ -38,16 +38,16 @@ var __export = (target, all) => {
38
38
  var LayoutContext, useLayoutContext, LayoutProvider;
39
39
  var init_context = __esm({
40
40
  "src/layout/context.tsx"() {
41
- LayoutContext = React7.createContext({
41
+ LayoutContext = React12.createContext({
42
42
  sideOpen: true
43
43
  });
44
44
  useLayoutContext = () => {
45
- return React7.useContext(LayoutContext);
45
+ return React12.useContext(LayoutContext);
46
46
  };
47
47
  LayoutProvider = (props) => {
48
48
  const { routerAdapter, children } = props;
49
- const [sideOpen, setSideOpen] = React7.useState(true);
50
- const memoizedValue = React7.useMemo(
49
+ const [sideOpen, setSideOpen] = React12.useState(true);
50
+ const memoizedValue = React12.useMemo(
51
51
  () => ({
52
52
  sideOpen,
53
53
  onSideOpenChange: setSideOpen,
@@ -73,19 +73,19 @@ var init_assets_script = __esm({
73
73
  const { isMobile } = ui.useScreen();
74
74
  const handleDomId = isMobile ? uiTransfer.DepositAndWithdrawWithSheetId : uiTransfer.DepositAndWithdrawWithDialogId;
75
75
  const subAccounts = state.subAccounts ?? [];
76
- const canTrade = React7.useMemo(() => {
76
+ const canTrade = React12.useMemo(() => {
77
77
  return !wrongNetwork && !disabledConnect && (state.status === types.AccountStatusEnum.EnableTrading || state.status === types.AccountStatusEnum.EnableTradingWithoutConnected);
78
78
  }, [state.status, wrongNetwork, disabledConnect]);
79
79
  const onLeverageEdit = () => {
80
80
  ui.modal.show(uiLeverage.LeverageWidgetWithDialogId);
81
81
  };
82
- const onDeposit = React7.useCallback(() => {
82
+ const onDeposit = React12.useCallback(() => {
83
83
  ui.modal.show(handleDomId, { activeTab: "deposit" });
84
84
  }, [handleDomId]);
85
- const onWithdraw = React7.useCallback(() => {
85
+ const onWithdraw = React12.useCallback(() => {
86
86
  ui.modal.show(handleDomId, { activeTab: "withdraw" });
87
87
  }, []);
88
- const onTransfer = React7.useCallback(() => {
88
+ const onTransfer = React12.useCallback(() => {
89
89
  if (isMobile) {
90
90
  ui.modal.show(uiTransfer.TransferSheetId);
91
91
  } else {
@@ -315,7 +315,7 @@ var useHistoryDataGroupScript;
315
315
  var init_historyDataGroup_script = __esm({
316
316
  "src/pages/overview/historyDataGroup/historyDataGroup.script.ts"() {
317
317
  useHistoryDataGroupScript = () => {
318
- const [active, setActive] = React7.useState("deposit");
318
+ const [active, setActive] = React12.useState("deposit");
319
319
  return {
320
320
  active,
321
321
  onTabChange: setActive
@@ -334,7 +334,7 @@ var init_column = __esm({
334
334
  e.stopPropagation();
335
335
  ui.toast.success(t("common.copy.copied"));
336
336
  };
337
- const columns = React7.useMemo(() => {
337
+ const columns = React12.useMemo(() => {
338
338
  const txIdColumn = {
339
339
  title: t("common.txId"),
340
340
  dataIndex: "tx_id",
@@ -455,18 +455,18 @@ var init_assetHistory_script = __esm({
455
455
  useAssetHistoryScript = (options) => {
456
456
  const { side } = options;
457
457
  const isDeposit = side === types.AssetHistorySideEnum.DEPOSIT;
458
- const [today] = React7.useState(() => {
458
+ const [today] = React12.useState(() => {
459
459
  const d = /* @__PURE__ */ new Date();
460
460
  return new Date(dateFns.getYear(d), dateFns.getMonth(d), dateFns.getDate(d), 0, 0, 0);
461
461
  });
462
462
  const tokensInfo = hooks.useAppStore((state) => state.tokensInfo);
463
- const [target, setTarget] = React7.useState("Web3Wallet" /* Web3Wallet */);
464
- const [dateRange, setDateRange] = React7.useState([
463
+ const [target, setTarget] = React12.useState("Web3Wallet" /* Web3Wallet */);
464
+ const [dateRange, setDateRange] = React12.useState([
465
465
  utils.subtractDaysFromCurrentDate(90, today),
466
466
  today
467
467
  ]);
468
468
  const { page, pageSize, setPage, parsePagination } = ui.usePagination();
469
- const { startTime, endTime } = React7.useMemo(() => {
469
+ const { startTime, endTime } = React12.useMemo(() => {
470
470
  const startTime2 = dateRange[0].getTime();
471
471
  const endTime2 = dateFns.set(dateRange[1], {
472
472
  hours: 23,
@@ -505,23 +505,23 @@ var init_assetHistory_script = __esm({
505
505
  setPage(1);
506
506
  }
507
507
  };
508
- const isLoading = React7.useMemo(() => {
508
+ const isLoading = React12.useMemo(() => {
509
509
  if (target === "Web3Wallet" /* Web3Wallet */) {
510
510
  return assetLoading;
511
511
  }
512
512
  return transferLoading;
513
513
  }, [target, assetLoading, transferLoading]);
514
- const meta = React7.useMemo(() => {
514
+ const meta = React12.useMemo(() => {
515
515
  if (target === "Web3Wallet" /* Web3Wallet */) {
516
516
  return assetMeta;
517
517
  }
518
518
  return transferMeta;
519
519
  }, [target, assetMeta, transferMeta]);
520
- const pagination = React7.useMemo(
520
+ const pagination = React12.useMemo(
521
521
  () => parsePagination(meta),
522
522
  [parsePagination, meta]
523
523
  );
524
- const dataSource2 = React7.useMemo(() => {
524
+ const dataSource2 = React12.useMemo(() => {
525
525
  return (target === "Web3Wallet" /* Web3Wallet */ ? assetData : transferData).map(
526
526
  (item) => {
527
527
  const findToken = tokensInfo?.find(({ token }) => token === item.token);
@@ -532,7 +532,7 @@ var init_assetHistory_script = __esm({
532
532
  }
533
533
  );
534
534
  }, [target, assetData, transferData, tokensInfo]);
535
- const onDeposit = React7.useCallback(() => {
535
+ const onDeposit = React12.useCallback(() => {
536
536
  ui.modal.show(uiTransfer.DepositAndWithdrawWithSheetId, { activeTab: "deposit" });
537
537
  }, []);
538
538
  const isWeb3Wallet = target === "Web3Wallet" /* Web3Wallet */;
@@ -568,7 +568,7 @@ var init_assetHistory_ui = __esm({
568
568
  isWeb3Wallet: props.isWeb3Wallet
569
569
  });
570
570
  const { t } = i18n.useTranslation();
571
- const options = React7.useMemo(() => {
571
+ const options = React12.useMemo(() => {
572
572
  return [
573
573
  { label: t("common.web3Wallet"), value: "Web3Wallet" /* Web3Wallet */ },
574
574
  { label: t("common.accountId"), value: "AccountId" /* AccountId */ }
@@ -635,7 +635,7 @@ var init_assetHistory_ui_mobile = __esm({
635
635
  } = props;
636
636
  const { dateRange, target } = queryParameter;
637
637
  const { t } = i18n.useTranslation();
638
- const options = React7.useMemo(() => {
638
+ const options = React12.useMemo(() => {
639
639
  return [
640
640
  { label: t("common.web3Wallet"), value: "Web3Wallet" /* Web3Wallet */ },
641
641
  { label: t("common.accountId"), value: "AccountId" /* AccountId */ }
@@ -852,7 +852,7 @@ var init_column2 = __esm({
852
852
  "src/pages/overview/funding/column.tsx"() {
853
853
  useFundingHistoryColumns = () => {
854
854
  const { t } = i18n.useTranslation();
855
- const columns = React7.useMemo(() => {
855
+ const columns = React12.useMemo(() => {
856
856
  return [
857
857
  {
858
858
  title: t("common.symbol"),
@@ -928,7 +928,7 @@ var init_fundingHistory_ui = __esm({
928
928
  const symbols = hooks.useSymbolsInfo();
929
929
  const { symbol, dateRange } = queryParameter;
930
930
  const { t } = i18n.useTranslation();
931
- const options = React7.useMemo(() => {
931
+ const options = React12.useMemo(() => {
932
932
  return [
933
933
  {
934
934
  label: t("common.all"),
@@ -1091,6 +1091,21 @@ var init_fundingHistory_ui_mobile = __esm({
1091
1091
  }
1092
1092
  );
1093
1093
  };
1094
+ const options = React12.useMemo(() => {
1095
+ return [
1096
+ {
1097
+ label: t("common.all"),
1098
+ value: "All"
1099
+ },
1100
+ ...Object.keys(symbols).map((symbol2) => {
1101
+ const s = symbol2.split("_")[1];
1102
+ return {
1103
+ label: s,
1104
+ value: symbol2
1105
+ };
1106
+ })
1107
+ ];
1108
+ }, [t, symbols]);
1094
1109
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1095
1110
  /* @__PURE__ */ jsxRuntime.jsx(
1096
1111
  ui.DataFilter,
@@ -1100,25 +1115,11 @@ var init_fundingHistory_ui_mobile = __esm({
1100
1115
  type: "select",
1101
1116
  name: "symbol",
1102
1117
  isCombine: true,
1103
- options: [
1104
- {
1105
- label: "All",
1106
- value: "All"
1107
- },
1108
- ...Object.keys(symbols).map((symbol2) => {
1109
- const s = symbol2.split("_")[1];
1110
- return {
1111
- label: s,
1112
- value: symbol2
1113
- };
1114
- })
1115
- ],
1118
+ options,
1116
1119
  value: symbol,
1117
1120
  valueFormatter: (value) => {
1118
- if (value === "All") {
1119
- return "All";
1120
- }
1121
- return value.split("_")[1];
1121
+ const option = options.find((item) => item.value === value);
1122
+ return option?.label || value;
1122
1123
  }
1123
1124
  },
1124
1125
  {
@@ -1156,15 +1157,15 @@ var init_useDataSource_script = __esm({
1156
1157
  "src/pages/overview/funding/useDataSource.script.ts"() {
1157
1158
  init_date();
1158
1159
  useFundingHistoryHook = () => {
1159
- const [today] = React7.useState(() => {
1160
+ const [today] = React12.useState(() => {
1160
1161
  const d = /* @__PURE__ */ new Date();
1161
1162
  return new Date(dateFns.getYear(d), dateFns.getMonth(d), dateFns.getDate(d), 0, 0, 0);
1162
1163
  });
1163
- const [dateRange, setDateRange] = React7.useState([
1164
+ const [dateRange, setDateRange] = React12.useState([
1164
1165
  utils.subtractDaysFromCurrentDate(90, today),
1165
1166
  today
1166
1167
  ]);
1167
- const [symbol, setSymbol] = React7.useState("All");
1168
+ const [symbol, setSymbol] = React12.useState("All");
1168
1169
  const { page, pageSize, setPage, parsePagination } = ui.usePagination();
1169
1170
  const [data, { isLoading, meta, isValidating }] = hooks.useFundingFeeHistory(
1170
1171
  {
@@ -1196,7 +1197,7 @@ var init_useDataSource_script = __esm({
1196
1197
  setPage(1);
1197
1198
  }
1198
1199
  };
1199
- const pagination = React7.useMemo(
1200
+ const pagination = React12.useMemo(
1200
1201
  () => parsePagination(meta),
1201
1202
  [parsePagination, meta]
1202
1203
  );
@@ -1255,7 +1256,7 @@ var init_column3 = __esm({
1255
1256
  "src/pages/overview/distribution/column.tsx"() {
1256
1257
  useColumns = () => {
1257
1258
  const { t } = i18n.useTranslation();
1258
- const columns = React7.useMemo(() => {
1259
+ const columns = React12.useMemo(() => {
1259
1260
  return [
1260
1261
  {
1261
1262
  title: t("common.token"),
@@ -1330,7 +1331,7 @@ var init_distribution_ui = __esm({
1330
1331
  const columns = useColumns();
1331
1332
  const { type, dateRange } = queryParameter;
1332
1333
  const { t } = i18n.useTranslation();
1333
- const TYPES = React7.useMemo(() => {
1334
+ const TYPES = React12.useMemo(() => {
1334
1335
  return [
1335
1336
  { label: t("common.all"), value: "All" },
1336
1337
  {
@@ -1397,7 +1398,7 @@ var init_distribution_ui_mobile = __esm({
1397
1398
  const { dataSource: dataSource2, queryParameter, onFilter, isLoading, pagination } = props;
1398
1399
  const { type, dateRange } = queryParameter;
1399
1400
  const { t } = i18n.useTranslation();
1400
- const TYPES = React7.useMemo(() => {
1401
+ const TYPES = React12.useMemo(() => {
1401
1402
  return [
1402
1403
  { label: t("common.all"), value: "All" },
1403
1404
  {
@@ -1530,15 +1531,15 @@ var init_useDataSource_script2 = __esm({
1530
1531
  "src/pages/overview/distribution/useDataSource.script.ts"() {
1531
1532
  init_date();
1532
1533
  useDistributionHistoryHook = () => {
1533
- const [today] = React7.useState(() => {
1534
+ const [today] = React12.useState(() => {
1534
1535
  const d = /* @__PURE__ */ new Date();
1535
1536
  return new Date(dateFns.getYear(d), dateFns.getMonth(d), dateFns.getDate(d), 0, 0, 0);
1536
1537
  });
1537
- const [dateRange, setDateRange] = React7.useState([
1538
+ const [dateRange, setDateRange] = React12.useState([
1538
1539
  utils.subtractDaysFromCurrentDate(90, today),
1539
1540
  today
1540
1541
  ]);
1541
- const [type, setType] = React7.useState("All");
1542
+ const [type, setType] = React12.useState("All");
1542
1543
  const { page, pageSize, setPage, parsePagination } = ui.usePagination();
1543
1544
  const [data, { isLoading, meta, isValidating }] = hooks.useDistributionHistory({
1544
1545
  // dataRange: dateRange.map((date) => date.getTime()),
@@ -1565,7 +1566,7 @@ var init_useDataSource_script2 = __esm({
1565
1566
  setPage(1);
1566
1567
  }
1567
1568
  };
1568
- const pagination = React7.useMemo(
1569
+ const pagination = React12.useMemo(
1569
1570
  () => parsePagination(meta),
1570
1571
  [parsePagination, meta]
1571
1572
  );
@@ -1615,6 +1616,202 @@ var init_distribution = __esm({
1615
1616
  init_distribution_ui();
1616
1617
  }
1617
1618
  });
1619
+ var TransferHistoryMobileUI;
1620
+ var init_transfer_mobile_ui = __esm({
1621
+ "src/pages/overview/TransferHistory/transfer.mobile.ui.tsx"() {
1622
+ TransferHistoryMobileUI = (props) => {
1623
+ const {
1624
+ dataSource: dataSource2,
1625
+ queryParameter,
1626
+ state,
1627
+ isMainAccount,
1628
+ isLoading,
1629
+ selectedAccount,
1630
+ onFilter,
1631
+ pagination
1632
+ } = props;
1633
+ const { side, dateRange } = queryParameter;
1634
+ const { t } = i18n.useTranslation();
1635
+ const ALL_ACCOUNTS = {
1636
+ label: t("common.allAccount"),
1637
+ value: "All accounts" /* ALL */
1638
+ };
1639
+ const MAIN_ACCOUNT = {
1640
+ label: t("common.mainAccount"),
1641
+ value: "Main accounts" /* MAIN */
1642
+ };
1643
+ const subAccounts = state.subAccounts ?? [];
1644
+ const memoizedOptions = React12.useMemo(() => {
1645
+ if (Array.isArray(subAccounts) && subAccounts.length) {
1646
+ return [
1647
+ ALL_ACCOUNTS,
1648
+ MAIN_ACCOUNT,
1649
+ ...subAccounts.map((value) => ({
1650
+ value: value.id,
1651
+ label: value?.description || ui.formatAddress(value?.id)
1652
+ }))
1653
+ ];
1654
+ }
1655
+ return [ALL_ACCOUNTS, MAIN_ACCOUNT];
1656
+ }, [subAccounts]);
1657
+ const loadMore = () => {
1658
+ if (dataSource2 && dataSource2.length < (pagination?.count || 0)) {
1659
+ pagination?.onPageSizeChange?.(pagination?.pageSize + 50);
1660
+ }
1661
+ };
1662
+ const onCopy = () => {
1663
+ ui.toast.success(t("common.copy.copied"));
1664
+ };
1665
+ const renderHistoryItem = (item) => {
1666
+ const isFromMainAccount = item.from_account_id === state.mainAccountId;
1667
+ const isToMainAccount = item.to_account_id === state.mainAccountId;
1668
+ const fromSubAccount = subAccounts.find(
1669
+ (acc) => acc.id === item.from_account_id
1670
+ );
1671
+ const toSubAccount = subAccounts.find(
1672
+ (acc) => acc.id === item.to_account_id
1673
+ );
1674
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1675
+ ui.Flex,
1676
+ {
1677
+ p: 2,
1678
+ direction: "column",
1679
+ gapY: 2,
1680
+ className: "oui-rounded-xl oui-bg-base-9 oui-font-semibold",
1681
+ children: [
1682
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "row", justify: "between", width: "100%", children: [
1683
+ /* @__PURE__ */ jsxRuntime.jsx(
1684
+ ui.Text.formatted,
1685
+ {
1686
+ rule: "date",
1687
+ className: "oui-text-base-contrast-36 oui-text-2xs",
1688
+ children: item.updated_time
1689
+ }
1690
+ ),
1691
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "sm", className: "oui-text-base-contrast-80", children: utils.capitalizeString(item.status) })
1692
+ ] }),
1693
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "oui-w-full oui-h-[1px] oui-bg-base-6" }),
1694
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "row", justify: "between", width: "100%", children: [
1695
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", itemAlign: "start", children: [
1696
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { className: "oui-text-base-contrast-36 oui-text-2xs", children: t("common.token") }),
1697
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "row", itemAlign: "center", gap: 1, children: [
1698
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TokenIcon, { name: item.token, size: "2xs" }),
1699
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "xs", className: "oui-text-base-contrast-80", children: item.token })
1700
+ ] })
1701
+ ] }),
1702
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", itemAlign: "end", children: [
1703
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { className: "oui-text-base-contrast-36 oui-text-2xs", children: t("common.amount") }),
1704
+ /* @__PURE__ */ jsxRuntime.jsx(
1705
+ ui.Text.numeral,
1706
+ {
1707
+ dp: 6,
1708
+ className: "oui-text-base-contrast-80 oui-text-xs",
1709
+ children: item.amount
1710
+ }
1711
+ )
1712
+ ] })
1713
+ ] }),
1714
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "row", justify: "between", width: "100%", children: [
1715
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", gap: 1, children: [
1716
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Text, { className: "oui-text-base-contrast-36 oui-text-2xs", children: [
1717
+ t("transfer.internalTransfer.from"),
1718
+ " (",
1719
+ t("common.accountId"),
1720
+ ")"
1721
+ ] }),
1722
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", gap: 1, itemAlign: "start", children: [
1723
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { direction: "row", itemAlign: "center", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(
1724
+ ui.Text.formatted,
1725
+ {
1726
+ rule: "address",
1727
+ copyable: true,
1728
+ onCopy,
1729
+ className: "oui-text-base-contrast-80 oui-text-xs",
1730
+ children: item.from_account_id
1731
+ }
1732
+ ) }),
1733
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { color: "neutral", size: "xs", children: isFromMainAccount ? t("common.mainAccount") : fromSubAccount?.description || t("common.subAccount") })
1734
+ ] })
1735
+ ] }),
1736
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", itemAlign: "end", gap: 1, children: [
1737
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Text, { className: "oui-text-base-contrast-36 oui-text-2xs", children: [
1738
+ t("transfer.internalTransfer.to"),
1739
+ " (",
1740
+ t("common.accountId"),
1741
+ ")"
1742
+ ] }),
1743
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", itemAlign: "end", gap: 1, children: [
1744
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { direction: "row", itemAlign: "center", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(
1745
+ ui.Text.formatted,
1746
+ {
1747
+ rule: "address",
1748
+ copyable: true,
1749
+ onCopy,
1750
+ className: "oui-text-base-contrast-80 oui-text-xs",
1751
+ children: item.to_account_id
1752
+ }
1753
+ ) }),
1754
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { color: "neutral", size: "xs", children: isToMainAccount ? t("common.mainAccount") : toSubAccount?.description || t("common.subAccount") })
1755
+ ] })
1756
+ ] })
1757
+ ] })
1758
+ ]
1759
+ }
1760
+ );
1761
+ };
1762
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1763
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "oui-px-3", children: /* @__PURE__ */ jsxRuntime.jsx(
1764
+ ui.DataFilter,
1765
+ {
1766
+ onFilter,
1767
+ items: immer.produce(
1768
+ [
1769
+ {
1770
+ type: "select",
1771
+ name: "side",
1772
+ value: side,
1773
+ options: [
1774
+ { value: "OUT", label: t("common.outflow") },
1775
+ { value: "IN", label: t("common.inflow") }
1776
+ ]
1777
+ },
1778
+ {
1779
+ type: "range",
1780
+ name: "dateRange",
1781
+ value: {
1782
+ from: dateRange[0],
1783
+ to: dateRange[1]
1784
+ }
1785
+ }
1786
+ ],
1787
+ (draft) => {
1788
+ if (isMainAccount) {
1789
+ draft.unshift({
1790
+ type: "select",
1791
+ name: "account",
1792
+ value: selectedAccount,
1793
+ options: memoizedOptions
1794
+ });
1795
+ }
1796
+ }
1797
+ )
1798
+ }
1799
+ ) }),
1800
+ /* @__PURE__ */ jsxRuntime.jsx(
1801
+ ui.ListView,
1802
+ {
1803
+ dataSource: dataSource2,
1804
+ renderItem: renderHistoryItem,
1805
+ contentClassName: "!oui-space-y-1",
1806
+ loadMore,
1807
+ isLoading,
1808
+ className: "oui-px-1"
1809
+ }
1810
+ )
1811
+ ] });
1812
+ };
1813
+ }
1814
+ });
1618
1815
  var useColumns2;
1619
1816
  var init_column4 = __esm({
1620
1817
  "src/pages/overview/TransferHistory/column.tsx"() {
@@ -1625,7 +1822,7 @@ var init_column4 = __esm({
1625
1822
  };
1626
1823
  const { state } = hooks.useAccount();
1627
1824
  const sub = state.subAccounts ?? [];
1628
- const columns = React7__default.default.useMemo(() => {
1825
+ const columns = React12__default.default.useMemo(() => {
1629
1826
  return [
1630
1827
  {
1631
1828
  title: t("common.token"),
@@ -1645,7 +1842,7 @@ var init_column4 = __esm({
1645
1842
  rule: "date"
1646
1843
  },
1647
1844
  {
1648
- title: `${t("transfer.internalTransfer.from")} (Account ID)`,
1845
+ title: `${t("transfer.internalTransfer.from")} (${t("common.accountId")})`,
1649
1846
  dataIndex: "from_account_id",
1650
1847
  render(val) {
1651
1848
  const isMainAccount = val === state.mainAccountId;
@@ -1657,7 +1854,7 @@ var init_column4 = __esm({
1657
1854
  }
1658
1855
  },
1659
1856
  {
1660
- title: `${t("transfer.internalTransfer.to")} (Account ID)`,
1857
+ title: `${t("transfer.internalTransfer.to")} (${t("common.accountId")})`,
1661
1858
  dataIndex: "to_account_id",
1662
1859
  render(val) {
1663
1860
  const isMainAccount = val === state.mainAccountId;
@@ -1712,7 +1909,7 @@ var init_transfer_ui = __esm({
1712
1909
  value: "Main accounts" /* MAIN */
1713
1910
  };
1714
1911
  const subAccounts = state.subAccounts ?? [];
1715
- const memoizedOptions = React7.useMemo(() => {
1912
+ const memoizedOptions = React12.useMemo(() => {
1716
1913
  if (Array.isArray(subAccounts) && subAccounts.length) {
1717
1914
  return [
1718
1915
  ALL_ACCOUNTS,
@@ -1738,8 +1935,8 @@ var init_transfer_ui = __esm({
1738
1935
  name: "side",
1739
1936
  value: side,
1740
1937
  options: [
1741
- { value: "OUT", label: "Outflow" },
1742
- { value: "IN", label: "Inflow" }
1938
+ { value: "OUT", label: t("common.outflow") },
1939
+ { value: "IN", label: t("common.inflow") }
1743
1940
  ]
1744
1941
  },
1745
1942
  {
@@ -1787,18 +1984,18 @@ var init_useDataSource_script3 = __esm({
1787
1984
  init_date();
1788
1985
  init_transfer_ui();
1789
1986
  useTransferHistoryHook = () => {
1790
- const today = React7__default.default.useMemo(() => {
1987
+ const today = React12__default.default.useMemo(() => {
1791
1988
  const date = /* @__PURE__ */ new Date();
1792
1989
  return new Date(dateFns.getYear(date), dateFns.getMonth(date), dateFns.getDate(date), 0, 0, 0);
1793
1990
  }, []);
1794
- const [dateRange, setDateRange] = React7__default.default.useState([
1991
+ const [dateRange, setDateRange] = React12__default.default.useState([
1795
1992
  utils.subtractDaysFromCurrentDate(90, today),
1796
1993
  today
1797
1994
  ]);
1798
1995
  const { page, pageSize, setPage, parsePagination } = ui.usePagination();
1799
1996
  const { state } = hooks.useAccount();
1800
- const [selectedAccount, setAccount] = React7__default.default.useState("All accounts" /* ALL */);
1801
- const [side, setSide] = React7__default.default.useState("OUT");
1997
+ const [selectedAccount, setAccount] = React12__default.default.useState("All accounts" /* ALL */);
1998
+ const [side, setSide] = React12__default.default.useState("OUT");
1802
1999
  const [data, { isLoading, meta }] = hooks.useTransferHistory({
1803
2000
  dataRange: [
1804
2001
  dateRange[0]?.getTime(),
@@ -1814,7 +2011,7 @@ var init_useDataSource_script3 = __esm({
1814
2011
  page,
1815
2012
  main_sub_only: true
1816
2013
  });
1817
- const filteredData = React7__default.default.useMemo(() => {
2014
+ const filteredData = React12__default.default.useMemo(() => {
1818
2015
  return data.filter((item) => {
1819
2016
  if (!selectedAccount || selectedAccount === "All accounts" /* ALL */) {
1820
2017
  return true;
@@ -1826,7 +2023,7 @@ var init_useDataSource_script3 = __esm({
1826
2023
  }
1827
2024
  });
1828
2025
  }, [data, selectedAccount]);
1829
- const onAccountFilter = React7__default.default.useCallback(
2026
+ const onAccountFilter = React12__default.default.useCallback(
1830
2027
  (filter) => {
1831
2028
  if (filter.name === "account") {
1832
2029
  setAccount(filter.value);
@@ -1841,7 +2038,7 @@ var init_useDataSource_script3 = __esm({
1841
2038
  },
1842
2039
  [setPage]
1843
2040
  );
1844
- const pagination = React7__default.default.useMemo(
2041
+ const pagination = React12__default.default.useMemo(
1845
2042
  () => parsePagination(meta),
1846
2043
  [parsePagination, meta]
1847
2044
  );
@@ -1863,11 +2060,16 @@ var init_useDataSource_script3 = __esm({
1863
2060
  var TransferHistoryWidget;
1864
2061
  var init_transfer_widget = __esm({
1865
2062
  "src/pages/overview/TransferHistory/transfer.widget.tsx"() {
2063
+ init_transfer_mobile_ui();
1866
2064
  init_transfer_ui();
1867
2065
  init_useDataSource_script3();
1868
2066
  TransferHistoryWidget = () => {
1869
2067
  const state = useTransferHistoryHook();
1870
2068
  const accountState = hooks.useAccount();
2069
+ const { isMobile } = ui.useScreen();
2070
+ if (isMobile) {
2071
+ return /* @__PURE__ */ jsxRuntime.jsx(TransferHistoryMobileUI, { ...state, ...accountState });
2072
+ }
1871
2073
  return /* @__PURE__ */ jsxRuntime.jsx(TransferHistoryUI, { ...state, ...accountState });
1872
2074
  };
1873
2075
  }
@@ -1885,423 +2087,32 @@ var init_TransferHistory = __esm({
1885
2087
  init_transfer_ui();
1886
2088
  }
1887
2089
  });
1888
- var useColumns3;
1889
- var init_column5 = __esm({
1890
- "src/pages/overview/VaultsHistory/column.tsx"() {
1891
- useColumns3 = () => {
2090
+ var EMPTY_HOLDING, useAccountsData;
2091
+ var init_useAccountsData = __esm({
2092
+ "src/hooks/useAccountsData.ts"() {
2093
+ EMPTY_HOLDING = {
2094
+ token: "USDC",
2095
+ holding: 0,
2096
+ frozen: 0
2097
+ };
2098
+ useAccountsData = () => {
1892
2099
  const { t } = i18n.useTranslation();
1893
- const columns = React7__default.default.useMemo(() => {
1894
- return [
1895
- {
1896
- title: t("common.type"),
1897
- dataIndex: "type",
1898
- className: (record) => {
1899
- if (record?.type === "deposit") {
1900
- return "oui-text-success";
1901
- }
1902
- if (record?.type === "withdrawal") {
1903
- return "oui-text-danger";
1904
- }
1905
- return "";
1906
- },
1907
- render(val) {
1908
- if (val === "deposit") {
1909
- return t("common.deposit");
1910
- }
1911
- if (val === "withdrawal") {
1912
- return t("common.withdraw");
1913
- }
1914
- return null;
1915
- }
1916
- },
1917
- {
1918
- title: t("portfolio.overview.vaultName"),
1919
- dataIndex: "vaultName"
1920
- },
1921
- {
1922
- title: t("common.token"),
1923
- dataIndex: "token",
1924
- render(val) {
1925
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { justify: "start", itemAlign: "center", gap: 2, children: [
1926
- /* @__PURE__ */ jsxRuntime.jsx(ui.TokenIcon, { name: val }),
1927
- val
1928
- ] });
1929
- }
1930
- },
1931
- {
1932
- title: t("common.time"),
1933
- dataIndex: "created_time",
1934
- rule: "date"
1935
- },
1936
- {
1937
- title: t("common.status"),
1938
- dataIndex: "status",
1939
- render(val) {
1940
- return utils.capitalizeString(val);
1941
- }
1942
- },
1943
- {
1944
- title: t("common.amount"),
1945
- dataIndex: "amount_change",
1946
- render(val) {
1947
- return /* @__PURE__ */ jsxRuntime.jsx(
1948
- ui.Text.numeral,
1949
- {
1950
- showIdentifier: true,
1951
- className: ui.cn(
1952
- "oui-select-none",
1953
- val >= 0 ? "oui-text-success" : "oui-text-danger"
1954
- ),
1955
- children: val
1956
- }
1957
- );
2100
+ const { state, isMainAccount } = hooks.useAccount();
2101
+ const { holding = [] } = hooks.useCollateral();
2102
+ const subAccounts = state.subAccounts ?? [];
2103
+ return React12.useMemo(() => {
2104
+ return immer.produce(subAccounts, (draft) => {
2105
+ for (const sub of draft) {
2106
+ sub.account_id = sub.id;
2107
+ if (Array.isArray(sub.holding) && sub.holding.length) {
2108
+ sub.children = sub.holding.map((item) => ({
2109
+ ...item,
2110
+ account_id: sub.id
2111
+ }));
2112
+ } else {
2113
+ sub.children = [{ ...EMPTY_HOLDING, account_id: sub.id }];
1958
2114
  }
1959
- }
1960
- ];
1961
- }, [t]);
1962
- return columns;
1963
- };
1964
- }
1965
- });
1966
- var VaultsHistoryUI;
1967
- var init_transfer_ui2 = __esm({
1968
- "src/pages/overview/VaultsHistory/transfer.ui.tsx"() {
1969
- init_column5();
1970
- VaultsHistoryUI = (props) => {
1971
- const { dataSource: dataSource2, dateRange, isLoading, onFilter } = props;
1972
- const columns = useColumns3();
1973
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1974
- /* @__PURE__ */ jsxRuntime.jsx(
1975
- ui.DataFilter,
1976
- {
1977
- onFilter,
1978
- items: [
1979
- {
1980
- type: "range",
1981
- name: "dateRange",
1982
- value: {
1983
- from: dateRange[0],
1984
- to: dateRange[1]
1985
- }
1986
- }
1987
- ]
1988
- }
1989
- ),
1990
- /* @__PURE__ */ jsxRuntime.jsx(
1991
- uiConnector.AuthGuardDataTable,
1992
- {
1993
- bordered: true,
1994
- columns,
1995
- dataSource: dataSource2,
1996
- loading: isLoading,
1997
- className: "oui-font-semibold",
1998
- classNames: { root: "oui-h-[calc(100%_-_49px)]" },
1999
- pagination: props.pagination,
2000
- generatedRowKey: (row) => row.id
2001
- }
2002
- )
2003
- ] });
2004
- };
2005
- }
2006
- });
2007
- var useVaultsHistoryHook;
2008
- var init_useDataSource_script4 = __esm({
2009
- "src/pages/overview/VaultsHistory/useDataSource.script.ts"() {
2010
- init_date();
2011
- useVaultsHistoryHook = () => {
2012
- const today = React7__default.default.useMemo(() => {
2013
- const date = /* @__PURE__ */ new Date();
2014
- return new Date(dateFns.getYear(date), dateFns.getMonth(date), dateFns.getDate(date), 0, 0, 0);
2015
- }, []);
2016
- const [dateRange, setDateRange] = React7__default.default.useState([
2017
- utils.subtractDaysFromCurrentDate(90, today),
2018
- today
2019
- ]);
2020
- const { page, pageSize, setPage, parsePagination } = ui.usePagination();
2021
- const [data, { isLoading, meta }] = hooks.useVaultsHistory({
2022
- dataRange: [
2023
- dateRange[0]?.getTime(),
2024
- dateFns.set(dateRange[1], {
2025
- hours: 23,
2026
- minutes: 59,
2027
- seconds: 59,
2028
- milliseconds: 0
2029
- })?.getTime()
2030
- ],
2031
- size: pageSize,
2032
- page
2033
- });
2034
- const dataSource2 = React7__default.default.useMemo(() => {
2035
- if (!Array.isArray(data) || !data.length) {
2036
- return [];
2037
- }
2038
- return data.map((item) => ({
2039
- ...item,
2040
- token: "USDC",
2041
- // need to hard code for now
2042
- vaultName: "Orderly OmniVault",
2043
- amount_change: item.type === "withdrawal" ? -item.amount_change : item.amount_change
2044
- }));
2045
- }, [data]);
2046
- const onDateRangeFilter = React7__default.default.useCallback(
2047
- (filter) => {
2048
- if (filter.name === "dateRange") {
2049
- setDateRange(parseDateRangeForFilter(filter.value));
2050
- }
2051
- setPage(1);
2052
- },
2053
- [setPage]
2054
- );
2055
- const pagination = React7__default.default.useMemo(
2056
- () => parsePagination(meta),
2057
- [parsePagination, meta]
2058
- );
2059
- return {
2060
- dataSource: dataSource2,
2061
- isLoading,
2062
- dateRange,
2063
- onFilter: onDateRangeFilter,
2064
- pagination
2065
- };
2066
- };
2067
- }
2068
- });
2069
- var VaultsHistoryMobile;
2070
- var init_vaults_ui_mobile = __esm({
2071
- "src/pages/overview/VaultsHistory/vaults.ui.mobile.tsx"() {
2072
- VaultsHistoryMobile = (props) => {
2073
- const { dateRange, onFilter, dataSource: dataSource2, isLoading, pagination } = props;
2074
- const { t } = i18n.useTranslation();
2075
- const loadMore = () => {
2076
- if (dataSource2.length < (pagination?.count || 0)) {
2077
- pagination?.onPageSizeChange?.(pagination?.pageSize + 50);
2078
- }
2079
- };
2080
- const renderHistoryItem = (item) => {
2081
- const typeColor = item.type === "deposit" ? "buy" : "sell";
2082
- const typeText = item.type === "deposit" ? t("common.deposit") : t("common.withdraw");
2083
- const amountText = item.amount_change ? Math.abs(item.amount_change) : "-";
2084
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-flex-col oui-rounded-xl oui-bg-base-9 oui-p-2 oui-font-semibold", children: [
2085
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-items-center oui-justify-between oui-text-sm oui-text-base-contrast-80", children: [
2086
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: item.vaultName }),
2087
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: item.status?.slice(0, 1).toUpperCase() + item.status?.slice(1) })
2088
- ] }),
2089
- /* @__PURE__ */ jsxRuntime.jsx(ui.Text.formatted, { rule: "date", intensity: 36, size: "2xs", children: item.created_time }),
2090
- /* @__PURE__ */ jsxRuntime.jsx(ui.Divider, { className: "oui-my-2" }),
2091
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-items-center [&>div]:oui-flex-1 [&>div]:oui-text-2xs [&>div]:oui-text-base-contrast-36", children: [
2092
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2093
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("common.token") }),
2094
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-items-center oui-gap-1 oui-text-xs oui-text-base-contrast-80", children: [
2095
- /* @__PURE__ */ jsxRuntime.jsx(ui.TokenIcon, { name: "USDC", size: "2xs" }),
2096
- /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { children: "USDC" })
2097
- ] })
2098
- ] }),
2099
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2100
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("common.type") }),
2101
- /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { color: typeColor, className: "oui-text-xs", children: typeText })
2102
- ] }),
2103
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-text-right", children: [
2104
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("common.amount") }),
2105
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "oui-text-xs oui-text-base-contrast-80", children: amountText })
2106
- ] })
2107
- ] })
2108
- ] });
2109
- };
2110
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2111
- /* @__PURE__ */ jsxRuntime.jsx(
2112
- ui.DataFilter,
2113
- {
2114
- items: [
2115
- {
2116
- type: "range",
2117
- name: "dateRange",
2118
- value: {
2119
- from: dateRange[0],
2120
- to: dateRange[1]
2121
- }
2122
- }
2123
- ],
2124
- onFilter: (value) => {
2125
- onFilter(value);
2126
- },
2127
- className: "oui-sticky oui-top-[44px] oui-z-10 oui-border-none oui-bg-base-10 oui-px-3 oui-py-2"
2128
- }
2129
- ),
2130
- /* @__PURE__ */ jsxRuntime.jsx(
2131
- ui.ListView,
2132
- {
2133
- dataSource: dataSource2,
2134
- renderItem: renderHistoryItem,
2135
- contentClassName: "!oui-space-y-1",
2136
- loadMore,
2137
- isLoading,
2138
- className: "oui-px-1"
2139
- }
2140
- )
2141
- ] });
2142
- };
2143
- }
2144
- });
2145
- var VaultsHistoryWidget;
2146
- var init_transfer_widget2 = __esm({
2147
- "src/pages/overview/VaultsHistory/transfer.widget.tsx"() {
2148
- init_transfer_ui2();
2149
- init_useDataSource_script4();
2150
- init_vaults_ui_mobile();
2151
- VaultsHistoryWidget = () => {
2152
- const state = useVaultsHistoryHook();
2153
- const { isMobile } = ui.useScreen();
2154
- if (isMobile) {
2155
- return /* @__PURE__ */ jsxRuntime.jsx(VaultsHistoryMobile, { ...state });
2156
- }
2157
- return /* @__PURE__ */ jsxRuntime.jsx(VaultsHistoryUI, { ...state });
2158
- };
2159
- }
2160
- });
2161
-
2162
- // src/pages/overview/VaultsHistory/index.tsx
2163
- var VaultsHistory_exports = {};
2164
- __export(VaultsHistory_exports, {
2165
- VaultsHistoryUI: () => VaultsHistoryUI,
2166
- VaultsHistoryWidget: () => VaultsHistoryWidget
2167
- });
2168
- var init_VaultsHistory = __esm({
2169
- "src/pages/overview/VaultsHistory/index.tsx"() {
2170
- init_transfer_widget2();
2171
- init_transfer_ui2();
2172
- }
2173
- });
2174
- var LazyAssetHistoryWidget, LazyFundingHistoryWidget, LazyDistributionHistoryWidget, LazyTransferHistoryWidget, LazyVaultsHistoryWidget, HistoryDataGroupDesktop;
2175
- var init_historyDataGroup_ui_desktop = __esm({
2176
- "src/pages/overview/historyDataGroup/historyDataGroup.ui.desktop.tsx"() {
2177
- LazyAssetHistoryWidget = React7__default.default.lazy(
2178
- () => Promise.resolve().then(() => (init_assetHistory(), assetHistory_exports)).then((mod) => {
2179
- return { default: mod.AssetHistoryWidget };
2180
- })
2181
- );
2182
- LazyFundingHistoryWidget = React7__default.default.lazy(
2183
- () => Promise.resolve().then(() => (init_funding(), funding_exports)).then((mod) => {
2184
- return { default: mod.FundingHistoryWidget };
2185
- })
2186
- );
2187
- LazyDistributionHistoryWidget = React7__default.default.lazy(
2188
- () => Promise.resolve().then(() => (init_distribution(), distribution_exports)).then((mod) => {
2189
- return { default: mod.DistributionHistoryWidget };
2190
- })
2191
- );
2192
- LazyTransferHistoryWidget = React7__default.default.lazy(
2193
- () => Promise.resolve().then(() => (init_TransferHistory(), TransferHistory_exports)).then((mod) => {
2194
- return { default: mod.TransferHistoryWidget };
2195
- })
2196
- );
2197
- LazyVaultsHistoryWidget = React7__default.default.lazy(
2198
- () => Promise.resolve().then(() => (init_VaultsHistory(), VaultsHistory_exports)).then((mod) => {
2199
- return { default: mod.VaultsHistoryWidget };
2200
- })
2201
- );
2202
- HistoryDataGroupDesktop = (props) => {
2203
- const { active = "deposit", onTabChange } = props;
2204
- const { t } = i18n.useTranslation();
2205
- const { isMainAccount } = hooks.useAccount();
2206
- React7.useEffect(() => {
2207
- if (active === "vaults" && !isMainAccount) {
2208
- onTabChange("deposit");
2209
- }
2210
- }, [active, isMainAccount]);
2211
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(
2212
- ui.Tabs,
2213
- {
2214
- value: active,
2215
- onValueChange: onTabChange,
2216
- variant: "contained",
2217
- size: "xl",
2218
- children: [
2219
- /* @__PURE__ */ jsxRuntime.jsx(
2220
- ui.TabPanel,
2221
- {
2222
- title: t("common.deposits"),
2223
- icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowDownSquareFillIcon, {}),
2224
- value: "deposit",
2225
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetHistoryWidget, { side: types.AssetHistorySideEnum.DEPOSIT }) })
2226
- }
2227
- ),
2228
- /* @__PURE__ */ jsxRuntime.jsx(
2229
- ui.TabPanel,
2230
- {
2231
- title: t("common.withdrawals"),
2232
- icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowUpSquareFillIcon, {}),
2233
- value: "withdraw",
2234
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetHistoryWidget, { side: types.AssetHistorySideEnum.WITHDRAW }) })
2235
- }
2236
- ),
2237
- /* @__PURE__ */ jsxRuntime.jsx(
2238
- ui.TabPanel,
2239
- {
2240
- title: t("common.funding"),
2241
- icon: /* @__PURE__ */ jsxRuntime.jsx(ui.FeeTierIcon, {}),
2242
- value: "funding",
2243
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyFundingHistoryWidget, {}) })
2244
- }
2245
- ),
2246
- /* @__PURE__ */ jsxRuntime.jsx(
2247
- ui.TabPanel,
2248
- {
2249
- title: t("portfolio.overview.distribution"),
2250
- icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ServerFillIcon, {}),
2251
- value: "distribution",
2252
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyDistributionHistoryWidget, {}) })
2253
- }
2254
- ),
2255
- /* @__PURE__ */ jsxRuntime.jsx(
2256
- ui.TabPanel,
2257
- {
2258
- title: t("portfolio.overview.transferHistory"),
2259
- icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowLeftRightSquareFill, {}),
2260
- value: "transfer",
2261
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyTransferHistoryWidget, {}) })
2262
- }
2263
- ),
2264
- isMainAccount && /* @__PURE__ */ jsxRuntime.jsx(
2265
- ui.TabPanel,
2266
- {
2267
- value: "vaults",
2268
- icon: /* @__PURE__ */ jsxRuntime.jsx(ui.VaultsIcon, {}),
2269
- title: t("portfolio.overview.vaults"),
2270
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyVaultsHistoryWidget, {}) })
2271
- }
2272
- )
2273
- ]
2274
- }
2275
- ) });
2276
- };
2277
- }
2278
- });
2279
- var EMPTY_HOLDING, useAccountsData;
2280
- var init_useAccountsData = __esm({
2281
- "src/hooks/useAccountsData.ts"() {
2282
- EMPTY_HOLDING = {
2283
- token: "USDC",
2284
- holding: 0,
2285
- frozen: 0
2286
- };
2287
- useAccountsData = () => {
2288
- const { t } = i18n.useTranslation();
2289
- const { state, isMainAccount } = hooks.useAccount();
2290
- const { holding = [] } = hooks.useCollateral();
2291
- const subAccounts = state.subAccounts ?? [];
2292
- return React7.useMemo(() => {
2293
- return immer.produce(subAccounts, (draft) => {
2294
- for (const sub of draft) {
2295
- sub.account_id = sub.id;
2296
- if (Array.isArray(sub.holding) && sub.holding.length) {
2297
- sub.children = sub.holding.map((item) => ({
2298
- ...item,
2299
- account_id: sub.id
2300
- }));
2301
- } else {
2302
- sub.children = [{ ...EMPTY_HOLDING, account_id: sub.id }];
2303
- }
2304
- Reflect.deleteProperty(sub, "holding");
2115
+ Reflect.deleteProperty(sub, "holding");
2305
2116
  }
2306
2117
  if (isMainAccount) {
2307
2118
  draft.unshift({
@@ -2353,15 +2164,15 @@ var init_useAssetTotalValue = __esm({
2353
2164
  const { getIndexPrice } = hooks.useIndexPricesStream();
2354
2165
  const allAccounts = useAccountsData();
2355
2166
  const subAccounts = state.subAccounts ?? [];
2356
- const mainTotalValue = React7.useMemo(
2167
+ const mainTotalValue = React12.useMemo(
2357
2168
  () => calculateTotalHolding(holding, getIndexPrice),
2358
2169
  [holding, getIndexPrice]
2359
2170
  );
2360
- const subTotalValue = React7.useMemo(
2171
+ const subTotalValue = React12.useMemo(
2361
2172
  () => calculateTotalHolding(subAccounts, getIndexPrice),
2362
2173
  [subAccounts, getIndexPrice]
2363
2174
  );
2364
- const totalValue = React7.useMemo(() => {
2175
+ const totalValue = React12.useMemo(() => {
2365
2176
  if (isMainAccount) {
2366
2177
  return mainTotalValue.plus(subTotalValue).toNumber();
2367
2178
  } else {
@@ -2386,7 +2197,7 @@ var init_useAssetTotalValue = __esm({
2386
2197
  var LazyConvertHistoryWidget, TotalValueInfo, DepositAndWithdrawButton, DataFilterSection, AssetsDataTable, AssetsTable;
2387
2198
  var init_assets_ui_desktop = __esm({
2388
2199
  "src/pages/assets/assetsPage/assets.ui.desktop.tsx"() {
2389
- LazyConvertHistoryWidget = React7__default.default.lazy(
2200
+ LazyConvertHistoryWidget = React12__default.default.lazy(
2390
2201
  () => Promise.resolve().then(() => (init_convert_widget(), convert_widget_exports)).then((mod) => {
2391
2202
  return { default: mod.ConvertHistoryWidget };
2392
2203
  })
@@ -2502,10 +2313,10 @@ var init_assets_ui_desktop = __esm({
2502
2313
  label: t("common.allAssets", "All assets"),
2503
2314
  value: "all"
2504
2315
  };
2505
- const subAccounts = React7.useMemo(() => {
2316
+ const subAccounts = React12.useMemo(() => {
2506
2317
  return state.subAccounts ?? [];
2507
2318
  }, [state.subAccounts]);
2508
- const memoizedOptions = React7.useMemo(() => {
2319
+ const memoizedOptions = React12.useMemo(() => {
2509
2320
  if (Array.isArray(subAccounts) && subAccounts.length) {
2510
2321
  return [
2511
2322
  ALL_ACCOUNTS,
@@ -2518,7 +2329,7 @@ var init_assets_ui_desktop = __esm({
2518
2329
  }
2519
2330
  return [ALL_ACCOUNTS, MAIN_ACCOUNT];
2520
2331
  }, [ALL_ACCOUNTS, MAIN_ACCOUNT, subAccounts]);
2521
- const memoizedAssetOptions = React7.useMemo(() => {
2332
+ const memoizedAssetOptions = React12.useMemo(() => {
2522
2333
  return [ALL_ASSETS, ...assetsOptions];
2523
2334
  }, [ALL_ASSETS, assetsOptions]);
2524
2335
  if (!isMainAccount) {
@@ -2690,7 +2501,19 @@ var init_assets_ui_desktop = __esm({
2690
2501
  value: "convertHistory",
2691
2502
  className: "oui-rounded-xl oui-bg-base-9 oui-px-6",
2692
2503
  title: t("portfolio.overview.tab.convert.history"),
2693
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyConvertHistoryWidget, {}) })
2504
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsxs(
2505
+ ui.Flex,
2506
+ {
2507
+ direction: "column",
2508
+ mt: 4,
2509
+ itemAlign: "center",
2510
+ className: "oui-w-full",
2511
+ children: [
2512
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Divider, { className: "oui-w-full oui-border-b oui-border-line-4 oui-pt-6" }),
2513
+ /* @__PURE__ */ jsxRuntime.jsx(LazyConvertHistoryWidget, {})
2514
+ ]
2515
+ }
2516
+ ) })
2694
2517
  }
2695
2518
  )
2696
2519
  ]
@@ -2712,10 +2535,10 @@ var init_useAssetsAccountFilter = __esm({
2712
2535
  init_assets_ui_desktop();
2713
2536
  useAssetsAccountFilter = (data) => {
2714
2537
  const { state, isMainAccount } = hooks.useAccount();
2715
- const [selectedAccount, setSelectedAccount] = React7__default.default.useState(
2538
+ const [selectedAccount, setSelectedAccount] = React12__default.default.useState(
2716
2539
  "All accounts" /* ALL */
2717
2540
  );
2718
- const filteredData = React7.useMemo(() => {
2541
+ const filteredData = React12.useMemo(() => {
2719
2542
  return data.filter((item) => {
2720
2543
  if (isMainAccount) {
2721
2544
  if (!selectedAccount || selectedAccount === "All accounts" /* ALL */) {
@@ -2731,7 +2554,7 @@ var init_useAssetsAccountFilter = __esm({
2731
2554
  }
2732
2555
  });
2733
2556
  }, [data, selectedAccount, isMainAccount, state]);
2734
- const onAccountFilter = React7__default.default.useCallback(
2557
+ const onAccountFilter = React12__default.default.useCallback(
2735
2558
  (filter) => {
2736
2559
  const { name, value } = filter;
2737
2560
  if (name === "account") {
@@ -2749,11 +2572,11 @@ var init_useAssetsAccountFilter = __esm({
2749
2572
  };
2750
2573
  useAssetsMultiFilter = (data) => {
2751
2574
  const { state, isMainAccount } = hooks.useAccount();
2752
- const [selectedAccount, setSelectedAccount] = React7__default.default.useState(
2575
+ const [selectedAccount, setSelectedAccount] = React12__default.default.useState(
2753
2576
  "All accounts" /* ALL */
2754
2577
  );
2755
- const [selectedAsset, setSelectedAsset] = React7__default.default.useState("all");
2756
- const filteredData = React7.useMemo(() => {
2578
+ const [selectedAsset, setSelectedAsset] = React12__default.default.useState("all");
2579
+ const filteredData = React12.useMemo(() => {
2757
2580
  let accountFiltered = data;
2758
2581
  if (isMainAccount) {
2759
2582
  if (selectedAccount && selectedAccount !== "All accounts" /* ALL */) {
@@ -2785,7 +2608,7 @@ var init_useAssetsAccountFilter = __esm({
2785
2608
  }
2786
2609
  return accountFiltered;
2787
2610
  }, [data, selectedAccount, selectedAsset, isMainAccount, state]);
2788
- const onFilter = React7__default.default.useCallback(
2611
+ const onFilter = React12__default.default.useCallback(
2789
2612
  (filter) => {
2790
2613
  const { name, value } = filter;
2791
2614
  if (name === "account") {
@@ -2823,6 +2646,7 @@ var init_convert_script = __esm({
2823
2646
  init_hooks();
2824
2647
  init_date();
2825
2648
  useConvertScript = () => {
2649
+ const { t } = i18n.useTranslation();
2826
2650
  const { isMainAccount, state } = hooks.useAccount();
2827
2651
  const { holding = [] } = hooks.useCollateral();
2828
2652
  const { data: indexPrices } = hooks.useIndexPricesStream();
@@ -2834,24 +2658,24 @@ var init_convert_script = __esm({
2834
2658
  const allAccounts = useAccountsData();
2835
2659
  const tokensInfo = hooks.useAppStore((state2) => state2.tokensInfo);
2836
2660
  const { selectedAccount, onAccountFilter } = useAssetsAccountFilter(allAccounts);
2837
- const [today] = React7.useState(() => {
2661
+ const [today] = React12.useState(() => {
2838
2662
  const d = /* @__PURE__ */ new Date();
2839
2663
  return new Date(dateFns.getYear(d), dateFns.getMonth(d), dateFns.getDate(d), 0, 0, 0);
2840
2664
  });
2841
- const [dateRange, setDateRange] = React7.useState([
2665
+ const [dateRange, setDateRange] = React12.useState([
2842
2666
  utils.subtractDaysFromCurrentDate(90, today),
2843
2667
  today
2844
2668
  ]);
2845
- const [statusFilter, setStatusFilter] = React7.useState("all");
2846
- const [convertedAssetFilter, setConvertedAssetFilter] = React7.useState("all");
2847
- const convertedAssetOptions = React7.useMemo(() => {
2669
+ const [statusFilter, setStatusFilter] = React12.useState("all");
2670
+ const [convertedAssetFilter, setConvertedAssetFilter] = React12.useState("all");
2671
+ const convertedAssetOptions = React12.useMemo(() => {
2848
2672
  const assetOptions = tokensInfo?.map((item) => ({
2849
2673
  value: item.token,
2850
2674
  label: item.token
2851
2675
  })) || [];
2852
- return [{ label: "All assets", value: "all" }, ...assetOptions];
2853
- }, [tokensInfo]);
2854
- const onFilter = React7__default.default.useCallback(
2676
+ return [{ label: t("common.allAssets"), value: "all" }, ...assetOptions];
2677
+ }, [tokensInfo, t]);
2678
+ const onFilter = React12__default.default.useCallback(
2855
2679
  (filter) => {
2856
2680
  const { name, value } = filter;
2857
2681
  if (name === "account") {
@@ -2871,7 +2695,7 @@ var init_convert_script = __esm({
2871
2695
  },
2872
2696
  [onAccountFilter, setPage]
2873
2697
  );
2874
- const queryUrl = React7__default.default.useMemo(() => {
2698
+ const queryUrl = React12__default.default.useMemo(() => {
2875
2699
  const params = new URLSearchParams();
2876
2700
  params.set("page", page.toString());
2877
2701
  params.set("size", pageSize.toString());
@@ -2903,7 +2727,7 @@ var init_convert_script = __esm({
2903
2727
  return data2;
2904
2728
  }
2905
2729
  });
2906
- const pagination = React7.useMemo(() => {
2730
+ const pagination = React12.useMemo(() => {
2907
2731
  if (data?.meta) {
2908
2732
  return parsePagination(data.meta);
2909
2733
  }
@@ -2915,7 +2739,7 @@ var init_convert_script = __esm({
2915
2739
  }
2916
2740
  };
2917
2741
  }, [data?.meta, parsePagination, page, pageSize, setPage]);
2918
- const summary = React7.useMemo(() => {
2742
+ const summary = React12.useMemo(() => {
2919
2743
  const dataRows = data?.rows || [];
2920
2744
  const totalConversions = dataRows.length;
2921
2745
  const totalUSDCReceived = dataRows.reduce(
@@ -2967,10 +2791,10 @@ var init_convert_column = __esm({
2967
2791
  convertedAssets
2968
2792
  }) => {
2969
2793
  const { t } = i18n.useTranslation();
2970
- const assets = React7.useMemo(() => {
2794
+ const assets = React12.useMemo(() => {
2971
2795
  return Object.keys(convertedAssets);
2972
2796
  }, [convertedAssets]);
2973
- const tooltipContent = React7.useMemo(() => {
2797
+ const tooltipContent = React12.useMemo(() => {
2974
2798
  return /* @__PURE__ */ jsxRuntime.jsxs(
2975
2799
  ui.Flex,
2976
2800
  {
@@ -3038,7 +2862,7 @@ var init_convert_column = __esm({
3038
2862
  e.stopPropagation();
3039
2863
  ui.toast.success(t("common.copy.copied"));
3040
2864
  };
3041
- const columns = React7__default.default.useMemo(() => {
2865
+ const columns = React12__default.default.useMemo(() => {
3042
2866
  return [
3043
2867
  {
3044
2868
  title: t("portfolio.overview.column.convert.convertedAsset"),
@@ -3135,7 +2959,7 @@ var init_convert_column = __esm({
3135
2959
  e.stopPropagation();
3136
2960
  ui.toast.success(t("common.copy.copied"));
3137
2961
  };
3138
- const columns = React7__default.default.useMemo(() => {
2962
+ const columns = React12__default.default.useMemo(() => {
3139
2963
  return [
3140
2964
  {
3141
2965
  title: t("portfolio.overview.column.convert.convertedAsset"),
@@ -3227,24 +3051,10 @@ var init_convert_column = __esm({
3227
3051
  };
3228
3052
  }
3229
3053
  });
3230
- var CONVERT_STATUS_OPTIONS, ConvertDetailsModal, ConvertDesktopUI;
3054
+ var ConvertDetailsModal, ConvertDesktopUI;
3231
3055
  var init_convert_ui_desktop = __esm({
3232
3056
  "src/pages/assets/convertPage/convert.ui.desktop.tsx"() {
3233
3057
  init_convert_column();
3234
- CONVERT_STATUS_OPTIONS = [
3235
- {
3236
- label: "All status",
3237
- value: "all"
3238
- },
3239
- {
3240
- label: "Completed",
3241
- value: "completed"
3242
- },
3243
- {
3244
- label: "Pending",
3245
- value: "pending"
3246
- }
3247
- ];
3248
3058
  ConvertDetailsModal = ui.modal.create((props) => {
3249
3059
  const { t } = i18n.useTranslation();
3250
3060
  const { visible, onOpenChange } = ui.useModal();
@@ -3272,7 +3082,7 @@ var init_convert_ui_desktop = __esm({
3272
3082
  className: "oui-w-full",
3273
3083
  classNames: {
3274
3084
  header: "oui-h-10",
3275
- root: "oui-bg-base-8 oui-max-h-[60vh] oui-overflow-y-scroll"
3085
+ root: "oui-bg-base-8 oui-max-h-[60vh] oui-overflow-y-scroll oui-custom-scrollbar"
3276
3086
  },
3277
3087
  onRow: () => ({
3278
3088
  className: "oui-h-[40px]"
@@ -3286,6 +3096,7 @@ var init_convert_ui_desktop = __esm({
3286
3096
  ConvertDesktopUI = ({
3287
3097
  convertState
3288
3098
  }) => {
3099
+ const { t } = i18n.useTranslation();
3289
3100
  const handleDetailsClick = (convertId) => {
3290
3101
  const record = convertState.dataSource.find(
3291
3102
  (item) => item.convert_id === convertId
@@ -3308,7 +3119,15 @@ var init_convert_ui_desktop = __esm({
3308
3119
  onFilter,
3309
3120
  convertedAssetOptions
3310
3121
  } = convertState;
3311
- const dataFilter = React7.useMemo(() => {
3122
+ const statusOptions = React12.useMemo(
3123
+ () => [
3124
+ { label: t("common.status.all"), value: "all" },
3125
+ { label: t("orders.status.completed"), value: "completed" },
3126
+ { label: t("orders.status.pending"), value: "pending" }
3127
+ ],
3128
+ [t]
3129
+ );
3130
+ const dataFilter = React12.useMemo(() => {
3312
3131
  return /* @__PURE__ */ jsxRuntime.jsx(
3313
3132
  ui.DataFilter,
3314
3133
  {
@@ -3331,7 +3150,7 @@ var init_convert_ui_desktop = __esm({
3331
3150
  type: "select",
3332
3151
  name: "status",
3333
3152
  value: statusFilter,
3334
- options: CONVERT_STATUS_OPTIONS
3153
+ options: statusOptions
3335
3154
  },
3336
3155
  {
3337
3156
  type: "range",
@@ -3349,24 +3168,23 @@ var init_convert_ui_desktop = __esm({
3349
3168
  statusFilter,
3350
3169
  dateRange,
3351
3170
  onFilter,
3352
- convertedAssetOptions
3171
+ convertedAssetOptions,
3172
+ statusOptions
3353
3173
  ]);
3354
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { direction: "column", mt: 4, itemAlign: "center", className: "oui-w-full", children: [
3355
- /* @__PURE__ */ jsxRuntime.jsx(ui.Divider, { className: "oui-w-full oui-border-b oui-border-line-4 oui-pt-6" }),
3356
- /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { direction: "row", className: "oui-w-full", children: dataFilter }),
3174
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3175
+ dataFilter,
3357
3176
  /* @__PURE__ */ jsxRuntime.jsx(
3358
3177
  uiConnector.AuthGuardDataTable,
3359
3178
  {
3179
+ bordered: true,
3360
3180
  columns,
3361
3181
  dataSource: convertState.dataSource,
3362
3182
  loading: convertState.isLoading,
3363
- bordered: true,
3364
3183
  pagination: convertState.pagination,
3365
3184
  manualPagination: true,
3366
3185
  className: "oui-mt-4 oui-w-full",
3367
3186
  classNames: {
3368
- root: "oui-h-[calc(100vh_-_200px)]",
3369
- header: "oui-h-12"
3187
+ root: "oui-h-[calc(100%_-_49px)]"
3370
3188
  },
3371
3189
  onRow: () => ({
3372
3190
  className: "oui-h-[48px] oui-cursor-pointer"
@@ -3384,7 +3202,6 @@ var ConvertMobileUI, ConvertMobileField, ConvertMobileItem, ConverHistoryItemDet
3384
3202
  var init_convert_ui_mobile = __esm({
3385
3203
  "src/pages/assets/convertPage/convert.ui.mobile.tsx"() {
3386
3204
  init_convert_column();
3387
- init_convert_ui_desktop();
3388
3205
  ConvertMobileUI = ({
3389
3206
  convertState
3390
3207
  }) => {
@@ -3396,7 +3213,15 @@ var init_convert_ui_mobile = __esm({
3396
3213
  onFilter,
3397
3214
  convertedAssetOptions
3398
3215
  } = convertState;
3399
- const dataFilter = React7.useMemo(() => {
3216
+ const statusOptions = React12.useMemo(
3217
+ () => [
3218
+ { label: t("common.status.all"), value: "all" },
3219
+ { label: t("orders.status.completed"), value: "completed" },
3220
+ { label: t("orders.status.pending"), value: "pending" }
3221
+ ],
3222
+ [t]
3223
+ );
3224
+ const dataFilter = React12.useMemo(() => {
3400
3225
  return /* @__PURE__ */ jsxRuntime.jsx(
3401
3226
  ui.DataFilter,
3402
3227
  {
@@ -3422,7 +3247,7 @@ var init_convert_ui_mobile = __esm({
3422
3247
  type: "picker",
3423
3248
  name: "status",
3424
3249
  value: statusFilter,
3425
- options: CONVERT_STATUS_OPTIONS,
3250
+ options: statusOptions,
3426
3251
  className: "oui-whitespace-nowrap"
3427
3252
  },
3428
3253
  {
@@ -3441,7 +3266,8 @@ var init_convert_ui_mobile = __esm({
3441
3266
  statusFilter,
3442
3267
  dateRange,
3443
3268
  onFilter,
3444
- convertedAssetOptions
3269
+ convertedAssetOptions,
3270
+ statusOptions
3445
3271
  ]);
3446
3272
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-flex-col oui-gap-1 oui-px-3", children: [
3447
3273
  /* @__PURE__ */ jsxRuntime.jsx(ui.ScrollIndicator, { className: "oui-pr-5", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { direction: "row", children: dataFilter }) }),
@@ -3628,32 +3454,436 @@ var init_convert_ui_mobile = __esm({
3628
3454
  ] })) })
3629
3455
  }
3630
3456
  );
3631
- });
3457
+ });
3458
+ }
3459
+ });
3460
+
3461
+ // src/pages/assets/convertPage/convert.widget.tsx
3462
+ var convert_widget_exports = {};
3463
+ __export(convert_widget_exports, {
3464
+ ConvertHistoryWidget: () => ConvertHistoryWidget
3465
+ });
3466
+ var ConvertHistoryWidget;
3467
+ var init_convert_widget = __esm({
3468
+ "src/pages/assets/convertPage/convert.widget.tsx"() {
3469
+ init_convert_script();
3470
+ init_convert_ui_desktop();
3471
+ init_convert_ui_mobile();
3472
+ ConvertHistoryWidget = () => {
3473
+ const convertState = useConvertScript();
3474
+ const { isMobile } = ui.useScreen();
3475
+ if (isMobile) {
3476
+ return /* @__PURE__ */ jsxRuntime.jsx(ConvertMobileUI, { convertState });
3477
+ }
3478
+ return /* @__PURE__ */ jsxRuntime.jsx(ConvertDesktopUI, { convertState });
3479
+ };
3480
+ }
3481
+ });
3482
+ var useColumns3;
3483
+ var init_column5 = __esm({
3484
+ "src/pages/overview/VaultsHistory/column.tsx"() {
3485
+ useColumns3 = () => {
3486
+ const { t } = i18n.useTranslation();
3487
+ const columns = React12__default.default.useMemo(() => {
3488
+ return [
3489
+ {
3490
+ title: t("common.type"),
3491
+ dataIndex: "type",
3492
+ className: (record) => {
3493
+ if (record?.type === "deposit") {
3494
+ return "oui-text-success";
3495
+ }
3496
+ if (record?.type === "withdrawal") {
3497
+ return "oui-text-danger";
3498
+ }
3499
+ return "";
3500
+ },
3501
+ render(val) {
3502
+ if (val === "deposit") {
3503
+ return t("common.deposit");
3504
+ }
3505
+ if (val === "withdrawal") {
3506
+ return t("common.withdraw");
3507
+ }
3508
+ return null;
3509
+ }
3510
+ },
3511
+ {
3512
+ title: t("portfolio.overview.vaultName"),
3513
+ dataIndex: "vaultName"
3514
+ },
3515
+ {
3516
+ title: t("common.token"),
3517
+ dataIndex: "token",
3518
+ render(val) {
3519
+ return /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { justify: "start", itemAlign: "center", gap: 2, children: [
3520
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TokenIcon, { name: val }),
3521
+ val
3522
+ ] });
3523
+ }
3524
+ },
3525
+ {
3526
+ title: t("common.time"),
3527
+ dataIndex: "created_time",
3528
+ rule: "date"
3529
+ },
3530
+ {
3531
+ title: t("common.status"),
3532
+ dataIndex: "status",
3533
+ render(val) {
3534
+ return utils.capitalizeString(val);
3535
+ }
3536
+ },
3537
+ {
3538
+ title: t("common.amount"),
3539
+ dataIndex: "amount_change",
3540
+ render(val) {
3541
+ return /* @__PURE__ */ jsxRuntime.jsx(
3542
+ ui.Text.numeral,
3543
+ {
3544
+ showIdentifier: true,
3545
+ className: ui.cn(
3546
+ "oui-select-none",
3547
+ val >= 0 ? "oui-text-success" : "oui-text-danger"
3548
+ ),
3549
+ children: val
3550
+ }
3551
+ );
3552
+ }
3553
+ }
3554
+ ];
3555
+ }, [t]);
3556
+ return columns;
3557
+ };
3558
+ }
3559
+ });
3560
+ var VaultsHistoryUI;
3561
+ var init_transfer_ui2 = __esm({
3562
+ "src/pages/overview/VaultsHistory/transfer.ui.tsx"() {
3563
+ init_column5();
3564
+ VaultsHistoryUI = (props) => {
3565
+ const { dataSource: dataSource2, dateRange, isLoading, onFilter } = props;
3566
+ const columns = useColumns3();
3567
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3568
+ /* @__PURE__ */ jsxRuntime.jsx(
3569
+ ui.DataFilter,
3570
+ {
3571
+ onFilter,
3572
+ items: [
3573
+ {
3574
+ type: "range",
3575
+ name: "dateRange",
3576
+ value: {
3577
+ from: dateRange[0],
3578
+ to: dateRange[1]
3579
+ }
3580
+ }
3581
+ ]
3582
+ }
3583
+ ),
3584
+ /* @__PURE__ */ jsxRuntime.jsx(
3585
+ uiConnector.AuthGuardDataTable,
3586
+ {
3587
+ bordered: true,
3588
+ columns,
3589
+ dataSource: dataSource2,
3590
+ loading: isLoading,
3591
+ className: "oui-font-semibold",
3592
+ classNames: { root: "oui-h-[calc(100%_-_49px)]" },
3593
+ pagination: props.pagination,
3594
+ generatedRowKey: (row) => row.id
3595
+ }
3596
+ )
3597
+ ] });
3598
+ };
3599
+ }
3600
+ });
3601
+ var useVaultsHistoryHook;
3602
+ var init_useDataSource_script4 = __esm({
3603
+ "src/pages/overview/VaultsHistory/useDataSource.script.ts"() {
3604
+ init_date();
3605
+ useVaultsHistoryHook = () => {
3606
+ const today = React12__default.default.useMemo(() => {
3607
+ const date = /* @__PURE__ */ new Date();
3608
+ return new Date(dateFns.getYear(date), dateFns.getMonth(date), dateFns.getDate(date), 0, 0, 0);
3609
+ }, []);
3610
+ const [dateRange, setDateRange] = React12__default.default.useState([
3611
+ utils.subtractDaysFromCurrentDate(90, today),
3612
+ today
3613
+ ]);
3614
+ const { page, pageSize, setPage, parsePagination } = ui.usePagination();
3615
+ const [data, { isLoading, meta }] = hooks.useVaultsHistory({
3616
+ dataRange: [
3617
+ dateRange[0]?.getTime(),
3618
+ dateFns.set(dateRange[1], {
3619
+ hours: 23,
3620
+ minutes: 59,
3621
+ seconds: 59,
3622
+ milliseconds: 0
3623
+ })?.getTime()
3624
+ ],
3625
+ size: pageSize,
3626
+ page
3627
+ });
3628
+ const dataSource2 = React12__default.default.useMemo(() => {
3629
+ if (!Array.isArray(data) || !data.length) {
3630
+ return [];
3631
+ }
3632
+ return data.map((item) => ({
3633
+ ...item,
3634
+ token: "USDC",
3635
+ // need to hard code for now
3636
+ vaultName: "Orderly OmniVault",
3637
+ amount_change: item.type === "withdrawal" ? -item.amount_change : item.amount_change
3638
+ }));
3639
+ }, [data]);
3640
+ const onDateRangeFilter = React12__default.default.useCallback(
3641
+ (filter) => {
3642
+ if (filter.name === "dateRange") {
3643
+ setDateRange(parseDateRangeForFilter(filter.value));
3644
+ }
3645
+ setPage(1);
3646
+ },
3647
+ [setPage]
3648
+ );
3649
+ const pagination = React12__default.default.useMemo(
3650
+ () => parsePagination(meta),
3651
+ [parsePagination, meta]
3652
+ );
3653
+ return {
3654
+ dataSource: dataSource2,
3655
+ isLoading,
3656
+ dateRange,
3657
+ onFilter: onDateRangeFilter,
3658
+ pagination
3659
+ };
3660
+ };
3632
3661
  }
3633
3662
  });
3634
-
3635
- // src/pages/assets/convertPage/convert.widget.tsx
3636
- var convert_widget_exports = {};
3637
- __export(convert_widget_exports, {
3638
- ConvertHistoryWidget: () => ConvertHistoryWidget
3663
+ var VaultsHistoryMobile;
3664
+ var init_vaults_ui_mobile = __esm({
3665
+ "src/pages/overview/VaultsHistory/vaults.ui.mobile.tsx"() {
3666
+ VaultsHistoryMobile = (props) => {
3667
+ const { dateRange, onFilter, dataSource: dataSource2, isLoading, pagination } = props;
3668
+ const { t } = i18n.useTranslation();
3669
+ const loadMore = () => {
3670
+ if (dataSource2.length < (pagination?.count || 0)) {
3671
+ pagination?.onPageSizeChange?.(pagination?.pageSize + 50);
3672
+ }
3673
+ };
3674
+ const renderHistoryItem = (item) => {
3675
+ const typeColor = item.type === "deposit" ? "buy" : "sell";
3676
+ const typeText = item.type === "deposit" ? t("common.deposit") : t("common.withdraw");
3677
+ const amountText = item.amount_change ? Math.abs(item.amount_change) : "-";
3678
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-flex-col oui-rounded-xl oui-bg-base-9 oui-p-2 oui-font-semibold", children: [
3679
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-items-center oui-justify-between oui-text-sm oui-text-base-contrast-80", children: [
3680
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: item.vaultName }),
3681
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: item.status?.slice(0, 1).toUpperCase() + item.status?.slice(1) })
3682
+ ] }),
3683
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text.formatted, { rule: "date", intensity: 36, size: "2xs", children: item.created_time }),
3684
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Divider, { className: "oui-my-2" }),
3685
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-items-center [&>div]:oui-flex-1 [&>div]:oui-text-2xs [&>div]:oui-text-base-contrast-36", children: [
3686
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3687
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("common.token") }),
3688
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-flex oui-items-center oui-gap-1 oui-text-xs oui-text-base-contrast-80", children: [
3689
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TokenIcon, { name: "USDC", size: "2xs" }),
3690
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { children: "USDC" })
3691
+ ] })
3692
+ ] }),
3693
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3694
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("common.type") }),
3695
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { color: typeColor, className: "oui-text-xs", children: typeText })
3696
+ ] }),
3697
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "oui-text-right", children: [
3698
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("common.amount") }),
3699
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "oui-text-xs oui-text-base-contrast-80", children: amountText })
3700
+ ] })
3701
+ ] })
3702
+ ] });
3703
+ };
3704
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3705
+ /* @__PURE__ */ jsxRuntime.jsx(
3706
+ ui.DataFilter,
3707
+ {
3708
+ items: [
3709
+ {
3710
+ type: "range",
3711
+ name: "dateRange",
3712
+ value: {
3713
+ from: dateRange[0],
3714
+ to: dateRange[1]
3715
+ }
3716
+ }
3717
+ ],
3718
+ onFilter: (value) => {
3719
+ onFilter(value);
3720
+ },
3721
+ className: "oui-sticky oui-top-[44px] oui-z-10 oui-border-none oui-bg-base-10 oui-px-3 oui-py-2"
3722
+ }
3723
+ ),
3724
+ /* @__PURE__ */ jsxRuntime.jsx(
3725
+ ui.ListView,
3726
+ {
3727
+ dataSource: dataSource2,
3728
+ renderItem: renderHistoryItem,
3729
+ contentClassName: "!oui-space-y-1",
3730
+ loadMore,
3731
+ isLoading,
3732
+ className: "oui-px-1"
3733
+ }
3734
+ )
3735
+ ] });
3736
+ };
3737
+ }
3639
3738
  });
3640
- var ConvertHistoryWidget;
3641
- var init_convert_widget = __esm({
3642
- "src/pages/assets/convertPage/convert.widget.tsx"() {
3643
- init_convert_script();
3644
- init_convert_ui_desktop();
3645
- init_convert_ui_mobile();
3646
- ConvertHistoryWidget = () => {
3647
- const convertState = useConvertScript();
3739
+ var VaultsHistoryWidget;
3740
+ var init_transfer_widget2 = __esm({
3741
+ "src/pages/overview/VaultsHistory/transfer.widget.tsx"() {
3742
+ init_transfer_ui2();
3743
+ init_useDataSource_script4();
3744
+ init_vaults_ui_mobile();
3745
+ VaultsHistoryWidget = () => {
3746
+ const state = useVaultsHistoryHook();
3648
3747
  const { isMobile } = ui.useScreen();
3649
3748
  if (isMobile) {
3650
- return /* @__PURE__ */ jsxRuntime.jsx(ConvertMobileUI, { convertState });
3749
+ return /* @__PURE__ */ jsxRuntime.jsx(VaultsHistoryMobile, { ...state });
3651
3750
  }
3652
- return /* @__PURE__ */ jsxRuntime.jsx(ConvertDesktopUI, { convertState });
3751
+ return /* @__PURE__ */ jsxRuntime.jsx(VaultsHistoryUI, { ...state });
3752
+ };
3753
+ }
3754
+ });
3755
+
3756
+ // src/pages/overview/VaultsHistory/index.tsx
3757
+ var VaultsHistory_exports = {};
3758
+ __export(VaultsHistory_exports, {
3759
+ VaultsHistoryUI: () => VaultsHistoryUI,
3760
+ VaultsHistoryWidget: () => VaultsHistoryWidget
3761
+ });
3762
+ var init_VaultsHistory = __esm({
3763
+ "src/pages/overview/VaultsHistory/index.tsx"() {
3764
+ init_transfer_widget2();
3765
+ init_transfer_ui2();
3766
+ }
3767
+ });
3768
+ var LazyAssetHistoryWidget, LazyFundingHistoryWidget, LazyDistributionHistoryWidget, LazyTransferHistoryWidget, LazyConvertHistoryWidget2, LazyVaultsHistoryWidget, HistoryDataGroupDesktop;
3769
+ var init_historyDataGroup_ui_desktop = __esm({
3770
+ "src/pages/overview/historyDataGroup/historyDataGroup.ui.desktop.tsx"() {
3771
+ LazyAssetHistoryWidget = React12__default.default.lazy(
3772
+ () => Promise.resolve().then(() => (init_assetHistory(), assetHistory_exports)).then((mod) => {
3773
+ return { default: mod.AssetHistoryWidget };
3774
+ })
3775
+ );
3776
+ LazyFundingHistoryWidget = React12__default.default.lazy(
3777
+ () => Promise.resolve().then(() => (init_funding(), funding_exports)).then((mod) => {
3778
+ return { default: mod.FundingHistoryWidget };
3779
+ })
3780
+ );
3781
+ LazyDistributionHistoryWidget = React12__default.default.lazy(
3782
+ () => Promise.resolve().then(() => (init_distribution(), distribution_exports)).then((mod) => {
3783
+ return { default: mod.DistributionHistoryWidget };
3784
+ })
3785
+ );
3786
+ LazyTransferHistoryWidget = React12__default.default.lazy(
3787
+ () => Promise.resolve().then(() => (init_TransferHistory(), TransferHistory_exports)).then((mod) => {
3788
+ return { default: mod.TransferHistoryWidget };
3789
+ })
3790
+ );
3791
+ LazyConvertHistoryWidget2 = React12__default.default.lazy(
3792
+ () => Promise.resolve().then(() => (init_convert_widget(), convert_widget_exports)).then((mod) => {
3793
+ return { default: mod.ConvertHistoryWidget };
3794
+ })
3795
+ );
3796
+ LazyVaultsHistoryWidget = React12__default.default.lazy(
3797
+ () => Promise.resolve().then(() => (init_VaultsHistory(), VaultsHistory_exports)).then((mod) => {
3798
+ return { default: mod.VaultsHistoryWidget };
3799
+ })
3800
+ );
3801
+ HistoryDataGroupDesktop = (props) => {
3802
+ const { active = "deposit", onTabChange } = props;
3803
+ const { t } = i18n.useTranslation();
3804
+ const { isMainAccount } = hooks.useAccount();
3805
+ React12.useEffect(() => {
3806
+ if (active === "vaults" && !isMainAccount) {
3807
+ onTabChange("deposit");
3808
+ }
3809
+ }, [active, isMainAccount]);
3810
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3811
+ ui.Tabs,
3812
+ {
3813
+ value: active,
3814
+ onValueChange: onTabChange,
3815
+ variant: "contained",
3816
+ size: "xl",
3817
+ children: [
3818
+ /* @__PURE__ */ jsxRuntime.jsx(
3819
+ ui.TabPanel,
3820
+ {
3821
+ title: t("common.deposits"),
3822
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowDownSquareFillIcon, {}),
3823
+ value: "deposit",
3824
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetHistoryWidget, { side: types.AssetHistorySideEnum.DEPOSIT }) })
3825
+ }
3826
+ ),
3827
+ /* @__PURE__ */ jsxRuntime.jsx(
3828
+ ui.TabPanel,
3829
+ {
3830
+ title: t("common.withdrawals"),
3831
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowUpSquareFillIcon, {}),
3832
+ value: "withdraw",
3833
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetHistoryWidget, { side: types.AssetHistorySideEnum.WITHDRAW }) })
3834
+ }
3835
+ ),
3836
+ /* @__PURE__ */ jsxRuntime.jsx(
3837
+ ui.TabPanel,
3838
+ {
3839
+ title: t("common.funding"),
3840
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.FeeTierIcon, {}),
3841
+ value: "funding",
3842
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyFundingHistoryWidget, {}) })
3843
+ }
3844
+ ),
3845
+ /* @__PURE__ */ jsxRuntime.jsx(
3846
+ ui.TabPanel,
3847
+ {
3848
+ title: t("portfolio.overview.distribution"),
3849
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ServerFillIcon, {}),
3850
+ value: "distribution",
3851
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyDistributionHistoryWidget, {}) })
3852
+ }
3853
+ ),
3854
+ /* @__PURE__ */ jsxRuntime.jsx(
3855
+ ui.TabPanel,
3856
+ {
3857
+ title: t("portfolio.overview.transferHistory"),
3858
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowLeftRightSquareFill, {}),
3859
+ value: "transfer",
3860
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyTransferHistoryWidget, {}) })
3861
+ }
3862
+ ),
3863
+ /* @__PURE__ */ jsxRuntime.jsx(
3864
+ ui.TabPanel,
3865
+ {
3866
+ title: t("portfolio.overview.tab.convert.history"),
3867
+ value: "convert",
3868
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyConvertHistoryWidget2, {}) })
3869
+ }
3870
+ ),
3871
+ isMainAccount && /* @__PURE__ */ jsxRuntime.jsx(
3872
+ ui.TabPanel,
3873
+ {
3874
+ value: "vaults",
3875
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.VaultsIcon, {}),
3876
+ title: t("portfolio.overview.vaults"),
3877
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyVaultsHistoryWidget, {}) })
3878
+ }
3879
+ )
3880
+ ]
3881
+ }
3882
+ ) });
3653
3883
  };
3654
3884
  }
3655
3885
  });
3656
- var HistoryDataGroupMobile;
3886
+ var LazyTransferHistoryWidget2, HistoryDataGroupMobile;
3657
3887
  var init_historyDataGroup_ui_mobile = __esm({
3658
3888
  "src/pages/overview/historyDataGroup/historyDataGroup.ui.mobile.tsx"() {
3659
3889
  init_convert_widget();
@@ -3661,6 +3891,11 @@ var init_historyDataGroup_ui_mobile = __esm({
3661
3891
  init_assetHistory();
3662
3892
  init_distribution();
3663
3893
  init_funding();
3894
+ LazyTransferHistoryWidget2 = React12__default.default.lazy(
3895
+ () => Promise.resolve().then(() => (init_TransferHistory(), TransferHistory_exports)).then((mod) => {
3896
+ return { default: mod.TransferHistoryWidget };
3897
+ })
3898
+ );
3664
3899
  HistoryDataGroupMobile = (props) => {
3665
3900
  const { active = "deposit", onTabChange } = props;
3666
3901
  const { t } = i18n.useTranslation();
@@ -3688,6 +3923,14 @@ var init_historyDataGroup_ui_mobile = __esm({
3688
3923
  children: /* @__PURE__ */ jsxRuntime.jsx(DistributionHistoryWidget, {})
3689
3924
  }
3690
3925
  ),
3926
+ /* @__PURE__ */ jsxRuntime.jsx(
3927
+ ui.TabPanel,
3928
+ {
3929
+ title: t("portfolio.overview.transferHistory"),
3930
+ value: "transfer",
3931
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyTransferHistoryWidget2, {}) })
3932
+ }
3933
+ ),
3691
3934
  /* @__PURE__ */ jsxRuntime.jsx(
3692
3935
  ui.TabPanel,
3693
3936
  {
@@ -3733,11 +3976,11 @@ var init_historyDataGroup = __esm({
3733
3976
  var OverviewContext, useOverviewContext;
3734
3977
  var init_overviewContext = __esm({
3735
3978
  "src/pages/overview/provider/overviewContext.tsx"() {
3736
- OverviewContext = React7.createContext(
3979
+ OverviewContext = React12.createContext(
3737
3980
  {}
3738
3981
  );
3739
3982
  useOverviewContext = () => {
3740
- return React7.useContext(OverviewContext);
3983
+ return React12.useContext(OverviewContext);
3741
3984
  };
3742
3985
  }
3743
3986
  });
@@ -3756,7 +3999,7 @@ var init_assetsChart_script = __esm({
3756
3999
  { account_value: 500 }
3757
4000
  )
3758
4001
  });
3759
- const _data = React7.useMemo(() => {
4002
+ const _data = React12.useMemo(() => {
3760
4003
  if (filteredData?.length) {
3761
4004
  return filteredData;
3762
4005
  }
@@ -3790,7 +4033,7 @@ var init_useAssetHistory = __esm({
3790
4033
  return PeriodType2;
3791
4034
  })(PeriodType || {});
3792
4035
  useAssetsHistoryData = (localKey2, options) => {
3793
- const [today] = React7.useState(() => /* @__PURE__ */ new Date());
4036
+ const [today] = React12.useState(() => /* @__PURE__ */ new Date());
3794
4037
  const { getIndexPrice } = hooks.useIndexPricesStream();
3795
4038
  const { t } = i18n.useTranslation();
3796
4039
  const { isRealtime = false } = options || {};
@@ -3799,7 +4042,7 @@ var init_useAssetHistory = __esm({
3799
4042
  localKey2,
3800
4043
  "7D" /* WEEK */
3801
4044
  );
3802
- const convertToUSDCAndOperate = React7.useCallback(
4045
+ const convertToUSDCAndOperate = React12.useCallback(
3803
4046
  (inputs) => {
3804
4047
  const { token, amount, value, op = "sub" } = inputs;
3805
4048
  if (token.toUpperCase() === "USDC") {
@@ -3815,7 +4058,7 @@ var init_useAssetHistory = __esm({
3815
4058
  },
3816
4059
  [getIndexPrice]
3817
4060
  );
3818
- const periodLabel = React7.useMemo(() => {
4061
+ const periodLabel = React12.useMemo(() => {
3819
4062
  return {
3820
4063
  ["7D" /* WEEK */]: t("common.select.7d"),
3821
4064
  ["30D" /* MONTH */]: t("common.select.30d"),
@@ -3833,7 +4076,7 @@ var init_useAssetHistory = __esm({
3833
4076
  return dateFns.subDays(today, 10);
3834
4077
  }
3835
4078
  };
3836
- const periodValue = React7.useMemo(() => {
4079
+ const periodValue = React12.useMemo(() => {
3837
4080
  switch (period) {
3838
4081
  case "7D" /* WEEK */:
3839
4082
  return 7;
@@ -3845,13 +4088,13 @@ var init_useAssetHistory = __esm({
3845
4088
  return 7;
3846
4089
  }
3847
4090
  }, [period]);
3848
- const [startDate, setStartDate] = React7.useState(getStartDate(period));
3849
- const endDate = React7.useMemo(() => {
4091
+ const [startDate, setStartDate] = React12.useState(getStartDate(period));
4092
+ const endDate = React12.useMemo(() => {
3850
4093
  const end = new Date(today);
3851
4094
  end.setHours(23, 59, 59, 999);
3852
4095
  return end;
3853
4096
  }, [today]);
3854
- const totalDeposit = React7.useRef(utils.zero);
4097
+ const totalDeposit = React12.useRef(utils.zero);
3855
4098
  const { data: transferOutHistory, mutate: mutateTransferOut } = hooks.usePrivateQuery(
3856
4099
  `/v1/internal_transfer_history?page=1&size=200&side=OUT&start_t=${startDate.getTime()}&end_t=${endDate.getTime()}`,
3857
4100
  {
@@ -3873,8 +4116,8 @@ var init_useAssetHistory = __esm({
3873
4116
  ignoreAggregation: true
3874
4117
  }
3875
4118
  );
3876
- const lastBalanceEventRef = React7.useRef(0);
3877
- const refreshTransferHistory = React7.useCallback(() => {
4119
+ const lastBalanceEventRef = React12.useRef(0);
4120
+ const refreshTransferHistory = React12.useCallback(() => {
3878
4121
  const now = Date.now();
3879
4122
  if (now - lastBalanceEventRef.current < 15e3) {
3880
4123
  return;
@@ -3899,7 +4142,7 @@ var init_useAssetHistory = __esm({
3899
4142
  endTime: endDate.getTime(),
3900
4143
  pageSize: 200
3901
4144
  });
3902
- const totalDepositForROI = React7.useMemo(() => {
4145
+ const totalDepositForROI = React12.useMemo(() => {
3903
4146
  return allDepositHistory?.filter((item) => item.trans_status === "COMPLETED").reduce((acc, item) => {
3904
4147
  return acc.add(
3905
4148
  // item.amount
@@ -3912,7 +4155,7 @@ var init_useAssetHistory = __esm({
3912
4155
  );
3913
4156
  }, utils.zero);
3914
4157
  }, [allDepositHistory, convertToUSDCAndOperate]);
3915
- const totalTransferInForROI = React7.useMemo(() => {
4158
+ const totalTransferInForROI = React12.useMemo(() => {
3916
4159
  if (!Array.isArray(transferInHistory)) {
3917
4160
  return utils.zero;
3918
4161
  }
@@ -3931,10 +4174,10 @@ var init_useAssetHistory = __esm({
3931
4174
  setStartDate(getStartDate(value));
3932
4175
  setPeriod(value);
3933
4176
  };
3934
- const lastItem = React7.useMemo(() => {
4177
+ const lastItem = React12.useMemo(() => {
3935
4178
  return data.length > 0 ? data[data.length - 1] : null;
3936
4179
  }, [data]);
3937
- const totalTransferIn = React7.useMemo(() => {
4180
+ const totalTransferIn = React12.useMemo(() => {
3938
4181
  if (!Array.isArray(transferInHistory)) {
3939
4182
  return null;
3940
4183
  }
@@ -3955,7 +4198,7 @@ var init_useAssetHistory = __esm({
3955
4198
  );
3956
4199
  }, utils.zero);
3957
4200
  }, [transferInHistory, lastItem, convertToUSDCAndOperate]);
3958
- const totalTransferOut = React7.useMemo(() => {
4201
+ const totalTransferOut = React12.useMemo(() => {
3959
4202
  if (!Array.isArray(transferOutHistory)) {
3960
4203
  return null;
3961
4204
  }
@@ -4054,7 +4297,7 @@ var init_useAssetHistory = __esm({
4054
4297
  const _data = !realtime ? data2 : mergeData(data2, totalValue2, totalTransferIn2, totalTransferOut2);
4055
4298
  return _data.slice(Math.max(0, _data.length - periodValue));
4056
4299
  };
4057
- const calculatedData = React7.useMemo(() => {
4300
+ const calculatedData = React12.useMemo(() => {
4058
4301
  if (totalValue === null) {
4059
4302
  return [];
4060
4303
  }
@@ -4079,7 +4322,7 @@ var init_useAssetHistory = __esm({
4079
4322
  totalTransferIn,
4080
4323
  totalTransferOut
4081
4324
  ]);
4082
- const aggregateValue = React7.useMemo(() => {
4325
+ const aggregateValue = React12.useMemo(() => {
4083
4326
  let vol = utils.zero;
4084
4327
  let pnl = utils.zero;
4085
4328
  let roi = utils.zero;
@@ -4148,7 +4391,7 @@ var init_periodHeader = __esm({
4148
4391
  init_useAssetHistory();
4149
4392
  PeriodTitle = (props) => {
4150
4393
  const { t } = i18n.useTranslation();
4151
- const periodLabel = React7.useMemo(() => {
4394
+ const periodLabel = React12.useMemo(() => {
4152
4395
  return {
4153
4396
  ["7D" /* WEEK */]: t("common.select.7d"),
4154
4397
  ["30D" /* MONTH */]: t("common.select.30d"),
@@ -4176,7 +4419,7 @@ var init_periodHeader = __esm({
4176
4419
  var LazyPeriodTitle, AssetsChart;
4177
4420
  var init_assetsChart_ui = __esm({
4178
4421
  "src/pages/overview/assetChart/assetsChart.ui.tsx"() {
4179
- LazyPeriodTitle = React7__default.default.lazy(
4422
+ LazyPeriodTitle = React12__default.default.lazy(
4180
4423
  () => Promise.resolve().then(() => (init_periodHeader(), periodHeader_exports)).then((mod) => {
4181
4424
  return { default: mod.PeriodTitle };
4182
4425
  })
@@ -4187,7 +4430,7 @@ var init_assetsChart_ui = __esm({
4187
4430
  return /* @__PURE__ */ jsxRuntime.jsx(
4188
4431
  ui.Card,
4189
4432
  {
4190
- title: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
4433
+ title: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
4191
4434
  LazyPeriodTitle,
4192
4435
  {
4193
4436
  onPeriodChange,
@@ -4198,7 +4441,7 @@ var init_assetsChart_ui = __esm({
4198
4441
  ) }),
4199
4442
  id: "portfolio-overview-assets-chart",
4200
4443
  classNames: { content: "oui-h-[168px] oui-pb-0" },
4201
- children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(chart.AssetAreaChart, { data, invisible: props.invisible }) })
4444
+ children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(chart.AssetAreaChart, { data, invisible: props.invisible }) })
4202
4445
  }
4203
4446
  );
4204
4447
  };
@@ -4233,7 +4476,7 @@ var init_assetChart = __esm({
4233
4476
  var LazyPeriodTitle2, PerformanceUI, LabelWithHint, PerformancePnL, CumulativePnlChart;
4234
4477
  var init_performance_ui = __esm({
4235
4478
  "src/pages/overview/performance/performance.ui.tsx"() {
4236
- LazyPeriodTitle2 = React7__default.default.lazy(
4479
+ LazyPeriodTitle2 = React12__default.default.lazy(
4237
4480
  () => Promise.resolve().then(() => (init_periodHeader(), periodHeader_exports)).then((mod) => {
4238
4481
  return { default: mod.PeriodTitle };
4239
4482
  })
@@ -4253,7 +4496,7 @@ var init_performance_ui = __esm({
4253
4496
  return /* @__PURE__ */ jsxRuntime.jsxs(
4254
4497
  ui.Card,
4255
4498
  {
4256
- title: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
4499
+ title: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
4257
4500
  LazyPeriodTitle2,
4258
4501
  {
4259
4502
  onPeriodChange,
@@ -4456,7 +4699,7 @@ var init_performance_script = __esm({
4456
4699
  { account_value: 500, pnl: 500 }
4457
4700
  )
4458
4701
  });
4459
- const _data = React7.useMemo(() => {
4702
+ const _data = React12.useMemo(() => {
4460
4703
  if (filteredData?.length) {
4461
4704
  return filteredData;
4462
4705
  }
@@ -4505,8 +4748,8 @@ var init_performance = __esm({
4505
4748
  var EffectiveFee;
4506
4749
  var init_effectiveFee = __esm({
4507
4750
  "src/pages/feeTier/icons/effectiveFee.tsx"() {
4508
- EffectiveFee = React7__default.default.forwardRef((props, ref) => {
4509
- const linearId = React7.useId();
4751
+ EffectiveFee = React12__default.default.forwardRef((props, ref) => {
4752
+ const linearId = React12.useId();
4510
4753
  return /* @__PURE__ */ jsxRuntime.jsxs(
4511
4754
  "svg",
4512
4755
  {
@@ -4809,7 +5052,7 @@ var init_feeTierHeader = __esm({
4809
5052
  )
4810
5053
  }
4811
5054
  ];
4812
- const mergedData = React7.useMemo(() => {
5055
+ const mergedData = React12.useMemo(() => {
4813
5056
  if (typeof headerDataAdapter === "function") {
4814
5057
  return headerDataAdapter(items);
4815
5058
  }
@@ -4826,11 +5069,11 @@ var init_feeTierHeader = __esm({
4826
5069
  direction: "column",
4827
5070
  gap: 2,
4828
5071
  itemAlign: "stretch",
4829
- children: mergedData.map((item, index) => /* @__PURE__ */ React7.createElement(MobileHeaderItem, { ...item, key: `mobile-item-${index}` }))
5072
+ children: mergedData.map((item, index) => /* @__PURE__ */ React12.createElement(MobileHeaderItem, { ...item, key: `mobile-item-${index}` }))
4830
5073
  }
4831
5074
  );
4832
5075
  }
4833
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { className: "", direction: "row", gapX: 4, my: 4, itemAlign: "stretch", children: mergedData.map((item, index) => /* @__PURE__ */ React7.createElement(DesktopHeaderItem, { ...item, key: `desktop-item-${index}` })) });
5076
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { className: "", direction: "row", gapX: 4, my: 4, itemAlign: "stretch", children: mergedData.map((item, index) => /* @__PURE__ */ React12.createElement(DesktopHeaderItem, { ...item, key: `desktop-item-${index}` })) });
4834
5077
  };
4835
5078
  }
4836
5079
  });
@@ -4842,9 +5085,9 @@ var init_apiManager_script = __esm({
4842
5085
  "src/pages/api/apiManager.script.tsx"() {
4843
5086
  useApiManagerScript = (props) => {
4844
5087
  const { filterTags, keyStatus } = props ?? {};
4845
- const [showCreateDialog, setShowCreateDialog] = React7.useState(false);
4846
- const [showCreatedDialog, setShowCreatedDialog] = React7.useState(false);
4847
- const [generateKey, setGenerateKey] = React7.useState();
5088
+ const [showCreateDialog, setShowCreateDialog] = React12.useState(false);
5089
+ const [showCreatedDialog, setShowCreatedDialog] = React12.useState(false);
5090
+ const [generateKey, setGenerateKey] = React12.useState();
4848
5091
  const { wrongNetwork, disabledConnect } = reactApp.useAppContext();
4849
5092
  const { state, account: account2 } = hooks.useAccount();
4850
5093
  const { t } = i18n.useTranslation();
@@ -4863,8 +5106,8 @@ var init_apiManager_script = __esm({
4863
5106
  ] = hooks.useApiKeyManager({
4864
5107
  keyInfo: { key_status: keyStatus }
4865
5108
  });
4866
- const [curPubKey, setCurPubKey] = React7.useState(void 0);
4867
- React7.useEffect(() => {
5109
+ const [curPubKey, setCurPubKey] = React12.useState(void 0);
5110
+ React12.useEffect(() => {
4868
5111
  account2.keyStore.getOrderlyKey()?.getPublicKey().then((pubKey) => {
4869
5112
  setCurPubKey(pubKey);
4870
5113
  });
@@ -4972,7 +5215,7 @@ var init_apiManager_script = __esm({
4972
5215
  };
4973
5216
  const onCopyApiSecretKey = () => ui.toast.success(t("portfolio.apiKey.secretKey.copied"));
4974
5217
  const onCopyIP = () => ui.toast.success(t("portfolio.apiKey.column.restrictedIP.copy"));
4975
- const keyList = React7.useMemo(() => {
5218
+ const keyList = React12.useMemo(() => {
4976
5219
  return keys?.filter((e) => {
4977
5220
  const filterTag = filterTags ? filterTags?.includes(e.tag) : true;
4978
5221
  const filterCurKey = curPubKey ? !e.orderly_key.includes(curPubKey) : true;
@@ -5032,12 +5275,12 @@ var CreateAPIKeyDialog, Checkbox;
5032
5275
  var init_createApiKey = __esm({
5033
5276
  "src/pages/api/dialog/createApiKey.tsx"() {
5034
5277
  CreateAPIKeyDialog = (props) => {
5035
- const [ipText, setIpText] = React7.useState("");
5036
- const [read, setRead] = React7.useState(true);
5037
- const [trade, setTrade] = React7.useState(true);
5038
- const [hint, setHint] = React7.useState("");
5278
+ const [ipText, setIpText] = React12.useState("");
5279
+ const [read, setRead] = React12.useState(true);
5280
+ const [trade, setTrade] = React12.useState(true);
5281
+ const [hint, setHint] = React12.useState("");
5039
5282
  const { t } = i18n.useTranslation();
5040
- React7.useEffect(() => {
5283
+ React12.useEffect(() => {
5041
5284
  if (!props.showCreateDialog) {
5042
5285
  setIpText("");
5043
5286
  setRead(true);
@@ -5045,7 +5288,7 @@ var init_createApiKey = __esm({
5045
5288
  setHint("");
5046
5289
  }
5047
5290
  }, [props.showCreateDialog]);
5048
- React7.useEffect(() => {
5291
+ React12.useEffect(() => {
5049
5292
  if (ipText.length === 0)
5050
5293
  setHint("");
5051
5294
  }, [ipText]);
@@ -5436,18 +5679,18 @@ var init_editApiKey = __esm({
5436
5679
  init_createApiKey();
5437
5680
  EditAPIKeyDialog = (props) => {
5438
5681
  const { item, open, setOpen, onUpdate } = props;
5439
- const [ipText, setIpText] = React7.useState(item.ip_restriction_list?.join(","));
5440
- const [read, setRead] = React7.useState(true);
5441
- const [trade, setTrade] = React7.useState(true);
5442
- const [hint, setHint] = React7.useState("");
5682
+ const [ipText, setIpText] = React12.useState(item.ip_restriction_list?.join(","));
5683
+ const [read, setRead] = React12.useState(true);
5684
+ const [trade, setTrade] = React12.useState(true);
5685
+ const [hint, setHint] = React12.useState("");
5443
5686
  const { t } = i18n.useTranslation();
5444
- React7.useEffect(() => {
5687
+ React12.useEffect(() => {
5445
5688
  setIpText(item.ip_restriction_list.join(","));
5446
5689
  const scope = item.scope?.toLocaleLowerCase() || "";
5447
5690
  setRead(scope.includes("read"));
5448
5691
  setTrade(scope.includes("trading"));
5449
5692
  }, [item]);
5450
- React7.useEffect(() => {
5693
+ React12.useEffect(() => {
5451
5694
  if (ipText.length === 0)
5452
5695
  setHint("");
5453
5696
  }, [ipText]);
@@ -5574,22 +5817,22 @@ var LazyCreateAPIKeyDialog, LazyCreatedAPIKeyDialog, LazyDeleteAPIKeyDialog, Laz
5574
5817
  var init_apiManager_ui = __esm({
5575
5818
  "src/pages/api/apiManager.ui.tsx"() {
5576
5819
  init_apiManager_script();
5577
- LazyCreateAPIKeyDialog = React7__default.default.lazy(
5820
+ LazyCreateAPIKeyDialog = React12__default.default.lazy(
5578
5821
  () => Promise.resolve().then(() => (init_createApiKey(), createApiKey_exports)).then((mod) => {
5579
5822
  return { default: mod.CreateAPIKeyDialog };
5580
5823
  })
5581
5824
  );
5582
- LazyCreatedAPIKeyDialog = React7__default.default.lazy(
5825
+ LazyCreatedAPIKeyDialog = React12__default.default.lazy(
5583
5826
  () => Promise.resolve().then(() => (init_createdApiKey(), createdApiKey_exports)).then((mod) => {
5584
5827
  return { default: mod.CreatedAPIKeyDialog };
5585
5828
  })
5586
5829
  );
5587
- LazyDeleteAPIKeyDialog = React7__default.default.lazy(
5830
+ LazyDeleteAPIKeyDialog = React12__default.default.lazy(
5588
5831
  () => Promise.resolve().then(() => (init_deleteApiKey(), deleteApiKey_exports)).then((mod) => {
5589
5832
  return { default: mod.DeleteAPIKeyDialog };
5590
5833
  })
5591
5834
  );
5592
- LazyEditAPIKeyDialog = React7__default.default.lazy(
5835
+ LazyEditAPIKeyDialog = React12__default.default.lazy(
5593
5836
  () => Promise.resolve().then(() => (init_editApiKey(), editApiKey_exports)).then((mod) => {
5594
5837
  return { default: mod.EditAPIKeyDialog };
5595
5838
  })
@@ -5618,8 +5861,8 @@ var init_apiManager_ui = __esm({
5618
5861
  ),
5619
5862
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5620
5863
  /* @__PURE__ */ jsxRuntime.jsx(KeyList, { ...props }),
5621
- /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyCreateAPIKeyDialog, { ...props }) }),
5622
- /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyCreatedAPIKeyDialog, { ...props }) })
5864
+ /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyCreateAPIKeyDialog, { ...props }) }),
5865
+ /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyCreatedAPIKeyDialog, { ...props }) })
5623
5866
  ] })
5624
5867
  ]
5625
5868
  }
@@ -5841,7 +6084,7 @@ var init_apiManager_ui = __esm({
5841
6084
  };
5842
6085
  EditButton = (props) => {
5843
6086
  const { item, onUpdate, verifyIP } = props;
5844
- const [open, setOpen] = React7.useState(false);
6087
+ const [open, setOpen] = React12.useState(false);
5845
6088
  const { t } = i18n.useTranslation();
5846
6089
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5847
6090
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5858,7 +6101,7 @@ var init_apiManager_ui = __esm({
5858
6101
  children: t("common.edit")
5859
6102
  }
5860
6103
  ),
5861
- open && /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
6104
+ open && /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
5862
6105
  LazyEditAPIKeyDialog,
5863
6106
  {
5864
6107
  item,
@@ -5872,7 +6115,7 @@ var init_apiManager_ui = __esm({
5872
6115
  };
5873
6116
  DeleteButton = (props) => {
5874
6117
  const { item, onDelete } = props;
5875
- const [open, setOpen] = React7.useState(false);
6118
+ const [open, setOpen] = React12.useState(false);
5876
6119
  const { t } = i18n.useTranslation();
5877
6120
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5878
6121
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5889,7 +6132,7 @@ var init_apiManager_ui = __esm({
5889
6132
  children: t("common.delete")
5890
6133
  }
5891
6134
  ),
5892
- open && /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
6135
+ open && /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
5893
6136
  LazyDeleteAPIKeyDialog,
5894
6137
  {
5895
6138
  item,
@@ -5915,16 +6158,16 @@ var PortfolioLeftSidebarPath = /* @__PURE__ */ ((PortfolioLeftSidebarPath2) => {
5915
6158
  })(PortfolioLeftSidebarPath || {});
5916
6159
  var usePortfolioLayoutScript = (props) => {
5917
6160
  const { routerAdapter } = uiScaffold.useScaffoldContext();
5918
- const [current, setCurrent] = React7.useState(
6161
+ const [current, setCurrent] = React12.useState(
5919
6162
  props.current ?? routerAdapter?.currentPath ?? "/portfolio"
5920
6163
  );
5921
6164
  const { t } = i18n.useTranslation();
5922
- React7.useEffect(() => {
6165
+ React12.useEffect(() => {
5923
6166
  if (props.current || routerAdapter?.currentPath) {
5924
6167
  setCurrent(props.current || routerAdapter?.currentPath || "/portfolio");
5925
6168
  }
5926
6169
  }, [props.current, routerAdapter?.currentPath]);
5927
- const items = React7.useMemo(() => {
6170
+ const items = React12.useMemo(() => {
5928
6171
  return [
5929
6172
  {
5930
6173
  name: t("common.overview"),
@@ -6404,12 +6647,12 @@ var useRewardsData = ({ type = hooks.TWType.normal }) => {
6404
6647
  );
6405
6648
  const epochList = hooks.useEpochInfo(type);
6406
6649
  const brokerId = hooks.useConfig("brokerId");
6407
- const brokerName = React7.useMemo(() => {
6650
+ const brokerName = React12.useMemo(() => {
6408
6651
  return brokers?.[brokerId];
6409
6652
  }, [brokerId, brokers]);
6410
- const lastStete = React7.useRef(types.AccountStatusEnum.NotConnected);
6411
- const timerRef = React7.useRef(null);
6412
- React7.useEffect(() => {
6653
+ const lastStete = React12.useRef(types.AccountStatusEnum.NotConnected);
6654
+ const timerRef = React12.useRef(null);
6655
+ React12.useEffect(() => {
6413
6656
  if (lastStete.current !== state.status) {
6414
6657
  lastStete.current = state.status;
6415
6658
  timerRef.current = setTimeout(() => {
@@ -6460,7 +6703,7 @@ var OverviewProvider = (props) => {
6460
6703
  const { type, children } = props;
6461
6704
  const state = useAssetsHistoryData(localKey, { isRealtime: true });
6462
6705
  const rewardsData = useRewardsData({ type });
6463
- const memoizedValue = React7.useMemo(() => {
6706
+ const memoizedValue = React12.useMemo(() => {
6464
6707
  return {
6465
6708
  ...state,
6466
6709
  type,
@@ -6525,7 +6768,7 @@ var usePortfolioChartsState = () => {
6525
6768
  ORDERLY_ASSETS_VISIBLE_KEY,
6526
6769
  true
6527
6770
  );
6528
- const onPerformanceClick = React7.useCallback(() => {
6771
+ const onPerformanceClick = React12.useCallback(() => {
6529
6772
  return ui.modal.show(PerformanceMobileSheetId);
6530
6773
  }, []);
6531
6774
  return {
@@ -6539,7 +6782,7 @@ var usePortfolioChartsState = () => {
6539
6782
  var PortfolioChartsMobileUI = (props) => {
6540
6783
  const { data, invisible, unrealPnL, unrealROI, visible, onPerformanceClick } = props;
6541
6784
  const { t } = i18n.useTranslation();
6542
- const colorId = React7.useId();
6785
+ const colorId = React12.useId();
6543
6786
  return /* @__PURE__ */ jsxRuntime.jsxs(
6544
6787
  ui.Flex,
6545
6788
  {
@@ -6664,7 +6907,7 @@ var useCurrentStatus = () => {
6664
6907
  textClass: ""
6665
6908
  }
6666
6909
  };
6667
- return React7.useMemo(() => {
6910
+ return React12.useMemo(() => {
6668
6911
  if (disabledConnect) {
6669
6912
  return statusText.connectWallet;
6670
6913
  }
@@ -6752,7 +6995,7 @@ var ShowAccount = () => {
6752
6995
  navigator.clipboard.writeText(state.address ?? "");
6753
6996
  ui.toast.success(t("common.copy.copied"));
6754
6997
  };
6755
- const currentNamespace = React7.useMemo(() => {
6998
+ const currentNamespace = React12.useMemo(() => {
6756
6999
  if (namespace) {
6757
7000
  return namespace;
6758
7001
  }
@@ -6761,7 +7004,7 @@ var ShowAccount = () => {
6761
7004
  }
6762
7005
  return null;
6763
7006
  }, [namespace, state.status]);
6764
- const leftNode = React7.useMemo(() => {
7007
+ const leftNode = React12.useMemo(() => {
6765
7008
  if (!state.address) {
6766
7009
  return;
6767
7010
  }
@@ -6786,7 +7029,7 @@ var ShowAccount = () => {
6786
7029
  )
6787
7030
  ] });
6788
7031
  }, [state.address]);
6789
- const rightNode = React7.useMemo(() => {
7032
+ const rightNode = React12.useMemo(() => {
6790
7033
  if (currentNamespace === types.ChainNamespace.evm) {
6791
7034
  return /* @__PURE__ */ jsxRuntime.jsx(EVMChains, {});
6792
7035
  }
@@ -6801,7 +7044,7 @@ var ShowAccount = () => {
6801
7044
  "Solana"
6802
7045
  ] });
6803
7046
  }, [currentNamespace]);
6804
- const bgClass = React7.useMemo(() => {
7047
+ const bgClass = React12.useMemo(() => {
6805
7048
  let bg = "";
6806
7049
  if (currentNamespace == types.ChainNamespace.evm) {
6807
7050
  bg = "oui-bg-[linear-gradient(15deg,#283BEE_-11%,transparent_30%,transparent_77%,#A53411_100%)]";
@@ -6828,7 +7071,7 @@ var AccountStatusMobile = () => {
6828
7071
  const { state } = hooks.useAccount();
6829
7072
  const { wrongNetwork } = reactApp.useAppContext();
6830
7073
  const { description, rootClass } = useCurrentStatus();
6831
- const alreadyShowAccount = React7.useMemo(() => {
7074
+ const alreadyShowAccount = React12.useMemo(() => {
6832
7075
  if (state.status === types.AccountStatusEnum.EnableTradingWithoutConnected) {
6833
7076
  return true;
6834
7077
  }
@@ -7025,7 +7268,7 @@ var PortfolioHandleMobile = (props) => {
7025
7268
  var PortfolioValueMobile = (props) => {
7026
7269
  const { t } = i18n.useTranslation();
7027
7270
  const { state } = hooks.useAccount();
7028
- const currentNamespace = React7.useMemo(() => {
7271
+ const currentNamespace = React12.useMemo(() => {
7029
7272
  if (props.namespace) {
7030
7273
  return props.namespace;
7031
7274
  }
@@ -7316,22 +7559,22 @@ var MobileOverview = (props) => {
7316
7559
  )
7317
7560
  ] });
7318
7561
  };
7319
- var LazyAssetWidget = React7__default.default.lazy(
7562
+ var LazyAssetWidget = React12__default.default.lazy(
7320
7563
  () => Promise.resolve().then(() => (init_assets(), assets_exports)).then((mod) => {
7321
7564
  return { default: mod.AssetWidget };
7322
7565
  })
7323
7566
  );
7324
- var LazyAssetsChartWidget = React7__default.default.lazy(
7567
+ var LazyAssetsChartWidget = React12__default.default.lazy(
7325
7568
  () => Promise.resolve().then(() => (init_assetChart(), assetChart_exports)).then((mod) => {
7326
7569
  return { default: mod.AssetsChartWidget };
7327
7570
  })
7328
7571
  );
7329
- var LazyPerformanceWidget = React7__default.default.lazy(
7572
+ var LazyPerformanceWidget = React12__default.default.lazy(
7330
7573
  () => Promise.resolve().then(() => (init_performance(), performance_exports)).then((mod) => {
7331
7574
  return { default: mod.PerformanceWidget };
7332
7575
  })
7333
7576
  );
7334
- var LazyHistoryDataGroupWidget = React7__default.default.lazy(
7577
+ var LazyHistoryDataGroupWidget = React12__default.default.lazy(
7335
7578
  () => Promise.resolve().then(() => (init_historyDataGroup(), historyDataGroup_exports)).then((mod) => {
7336
7579
  return { default: mod.HistoryDataGroupWidget };
7337
7580
  })
@@ -7345,10 +7588,10 @@ var OverviewPage = (props) => {
7345
7588
  hideTraderCard: props.hideTraderCard
7346
7589
  }
7347
7590
  ) : /* @__PURE__ */ jsxRuntime.jsxs(ui.Grid, { cols: 2, gap: 4, children: [
7348
- /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetWidget, {}) }),
7349
- /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetsChartWidget, {}) }),
7350
- /* @__PURE__ */ jsxRuntime.jsx(ui.Grid.span, { colSpan: 2, children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyPerformanceWidget, {}) }) }),
7351
- /* @__PURE__ */ jsxRuntime.jsx(ui.Grid.span, { colSpan: 2, children: /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyHistoryDataGroupWidget, {}) }) })
7591
+ /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetWidget, {}) }),
7592
+ /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyAssetsChartWidget, {}) }),
7593
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Grid.span, { colSpan: 2, children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyPerformanceWidget, {}) }) }),
7594
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Grid.span, { colSpan: 2, children: /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(LazyHistoryDataGroupWidget, {}) }) })
7352
7595
  ] }) });
7353
7596
  };
7354
7597
 
@@ -7358,7 +7601,7 @@ __export(feeTier_exports, {
7358
7601
  FeeTierPage: () => FeeTierPage,
7359
7602
  useFeeTierScript: () => useFeeTierScript
7360
7603
  });
7361
- var LazyFeeTierHeader = React7__default.default.lazy(
7604
+ var LazyFeeTierHeader = React12__default.default.lazy(
7362
7605
  () => Promise.resolve().then(() => (init_feeTierHeader(), feeTierHeader_exports)).then((mod) => {
7363
7606
  return { default: mod.FeeTierHeader };
7364
7607
  })
@@ -7366,7 +7609,7 @@ var LazyFeeTierHeader = React7__default.default.lazy(
7366
7609
  var FeeTierTable = (props) => {
7367
7610
  const { isMobile } = ui.useScreen();
7368
7611
  const { tier, columns, dataSource: dataSource2, onRow, onCell } = props;
7369
- const internalOnRow = React7.useCallback(
7612
+ const internalOnRow = React12.useCallback(
7370
7613
  (record, index) => {
7371
7614
  const config = typeof onRow === "function" ? onRow(record, index) : { normal: void 0, active: void 0 };
7372
7615
  const active = tier !== void 0 && tier !== null && tier === index + 1;
@@ -7388,7 +7631,7 @@ var FeeTierTable = (props) => {
7388
7631
  },
7389
7632
  [tier, onRow]
7390
7633
  );
7391
- const internalOnCell = React7.useCallback(
7634
+ const internalOnCell = React12.useCallback(
7392
7635
  (column, record, index) => {
7393
7636
  const config = typeof onCell === "function" ? onCell(column, record, index) : { normal: void 0, active: void 0 };
7394
7637
  const active = tier !== void 0 && tier !== null && tier === index + 1;
@@ -7464,7 +7707,7 @@ var FeeTier = (props) => {
7464
7707
  },
7465
7708
  children: [
7466
7709
  !isMobile && /* @__PURE__ */ jsxRuntime.jsx(ui.Divider, {}),
7467
- /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
7710
+ /* @__PURE__ */ jsxRuntime.jsx(React12__default.default.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
7468
7711
  LazyFeeTierHeader,
7469
7712
  {
7470
7713
  vol,
@@ -7499,7 +7742,7 @@ var textStyle = {
7499
7742
  };
7500
7743
  var useFeeTierColumns = () => {
7501
7744
  const { t } = i18n.useTranslation();
7502
- return React7.useMemo(() => {
7745
+ return React12.useMemo(() => {
7503
7746
  return [
7504
7747
  {
7505
7748
  title: t("portfolio.feeTier.column.tier"),
@@ -7621,15 +7864,15 @@ var findCurrentTier = (feeList, data) => {
7621
7864
  };
7622
7865
  var useFeeTierScript = (options) => {
7623
7866
  const { dataAdapter, headerDataAdapter, onRow, onCell } = options || {};
7624
- const [tier, setTier] = React7.useState();
7867
+ const [tier, setTier] = React12.useState();
7625
7868
  const { data, isLoading } = hooks.useAccountInfo();
7626
7869
  const { state } = hooks.useAccount();
7627
7870
  const cols = useFeeTierColumns();
7628
7871
  const { data: volumeStatistics } = hooks.usePrivateQuery("/v1/volume/user/stats");
7629
- const { columns, dataSource: dataSource2 } = React7.useMemo(() => {
7872
+ const { columns, dataSource: dataSource2 } = React12.useMemo(() => {
7630
7873
  return typeof dataAdapter === "function" ? dataAdapter(cols, dataSource, { tier }) : { columns: cols, dataSource };
7631
7874
  }, [dataAdapter, cols, tier]);
7632
- React7.useEffect(() => {
7875
+ React12.useEffect(() => {
7633
7876
  if (!data || isLoading) {
7634
7877
  return;
7635
7878
  }
@@ -7661,12 +7904,12 @@ __export(page_exports, {
7661
7904
  });
7662
7905
  init_assets_ui_desktop();
7663
7906
  var PositionsPage = (props) => {
7664
- const [tab, setTab] = React7.useState("Positions" /* positions */);
7907
+ const [tab, setTab] = React12.useState("Positions" /* positions */);
7665
7908
  const { t } = i18n.useTranslation();
7666
7909
  const { state, isMainAccount } = hooks.useAccount();
7667
7910
  const subAccounts = state.subAccounts ?? [];
7668
- const [selectedAccount, setAccount] = React7__default.default.useState("All accounts" /* ALL */);
7669
- const onAccountFilter = React7__default.default.useCallback(
7911
+ const [selectedAccount, setAccount] = React12__default.default.useState("All accounts" /* ALL */);
7912
+ const onAccountFilter = React12__default.default.useCallback(
7670
7913
  (filter) => {
7671
7914
  const { name, value } = filter;
7672
7915
  if (name === "account") {
@@ -7683,7 +7926,7 @@ var PositionsPage = (props) => {
7683
7926
  label: t("common.mainAccount"),
7684
7927
  value: "Main accounts" /* MAIN */
7685
7928
  };
7686
- const memoizedOptions = React7.useMemo(() => {
7929
+ const memoizedOptions = React12.useMemo(() => {
7687
7930
  if (Array.isArray(subAccounts) && subAccounts.length) {
7688
7931
  return [
7689
7932
  ALL_ACCOUNTS,
@@ -7796,7 +8039,7 @@ __export(page_exports2, {
7796
8039
  var OrdersPage = (props) => {
7797
8040
  const { sharePnLConfig } = props;
7798
8041
  const { t } = i18n.useTranslation();
7799
- const ordersRef = React7.useRef(null);
8042
+ const ordersRef = React12.useRef(null);
7800
8043
  const onDownload = () => {
7801
8044
  ordersRef.current?.download?.();
7802
8045
  };
@@ -7831,7 +8074,7 @@ var OrdersPage = (props) => {
7831
8074
  }
7832
8075
  );
7833
8076
  };
7834
- var TooltipIcon = React7__default.default.forwardRef(
8077
+ var TooltipIcon = React12__default.default.forwardRef(
7835
8078
  (props, ref) => {
7836
8079
  return /* @__PURE__ */ jsxRuntime.jsx(
7837
8080
  "svg",
@@ -7879,13 +8122,13 @@ var useSettingScript = () => {
7879
8122
  const { data, mutate: refresh } = hooks.useAccountInfo();
7880
8123
  const { wrongNetwork, disabledConnect } = reactApp.useAppContext();
7881
8124
  const [update, { isMutating }] = hooks.useMutation("/v1/client/maintenance_config");
7882
- const [checked, setChecked] = React7.useState(false);
8125
+ const [checked, setChecked] = React12.useState(false);
7883
8126
  const { notification } = hooks.useOrderlyContext();
7884
8127
  const [soundAlert, setSoundAlert] = hooks.useLocalStorage(
7885
8128
  ORDERLY_ORDER_SOUND_ALERT_KEY,
7886
8129
  notification?.orderFilled?.defaultOpen ?? false
7887
8130
  );
7888
- React7.useEffect(() => {
8131
+ React12.useEffect(() => {
7889
8132
  setChecked(data?.maintenance_cancel_orders || false);
7890
8133
  }, [data]);
7891
8134
  const updateCheckState = hooks.useDebouncedCallback((value) => {
@@ -7998,7 +8241,7 @@ var SettingDesktop = (props) => {
7998
8241
  };
7999
8242
  var SettingMobile = (props) => {
8000
8243
  const { t } = i18n.useTranslation();
8001
- const [open, setOpen] = React7.useState(false);
8244
+ const [open, setOpen] = React12.useState(false);
8002
8245
  const onLanguageChange = () => {
8003
8246
  setOpen(true);
8004
8247
  };
@@ -8158,7 +8401,7 @@ var useAssetsColumns = (options) => {
8158
8401
  const tokensInfo = hooks.useAppStore((state) => state.tokensInfo);
8159
8402
  const { namespace } = hooks.useWalletConnector();
8160
8403
  const { onTransfer, onConvert } = options;
8161
- const columns = React7__default.default.useMemo(() => {
8404
+ const columns = React12__default.default.useMemo(() => {
8162
8405
  return [
8163
8406
  {
8164
8407
  title: t("portfolio.overview.column.token"),
@@ -8267,7 +8510,7 @@ var useAssetsScript = () => {
8267
8510
  const { getIndexPrice } = hooks.useIndexPricesStream();
8268
8511
  const tokensInfo = hooks.useAppStore((state2) => state2.tokensInfo);
8269
8512
  const subAccounts = state.subAccounts ?? [];
8270
- React7.useEffect(() => {
8513
+ React12.useEffect(() => {
8271
8514
  if (holding.length > 0) {
8272
8515
  subAccount.refresh();
8273
8516
  }
@@ -8276,7 +8519,7 @@ var useAssetsScript = () => {
8276
8519
  const toggleVisible = () => {
8277
8520
  setVisible((visible2) => !visible2);
8278
8521
  };
8279
- const assetsOptions = React7.useMemo(() => {
8522
+ const assetsOptions = React12.useMemo(() => {
8280
8523
  return tokensInfo?.map((item) => ({
8281
8524
  label: item.token,
8282
8525
  value: item.token
@@ -8289,7 +8532,7 @@ var useAssetsScript = () => {
8289
8532
  filteredData: filtered,
8290
8533
  onFilter
8291
8534
  } = useAssetsMultiFilter(allAccounts);
8292
- const enhancedFiltered = React7.useMemo(() => {
8535
+ const enhancedFiltered = React12.useMemo(() => {
8293
8536
  return filtered.map((accountData) => {
8294
8537
  const enhancedChildren = accountData.children?.map((holding2) => {
8295
8538
  const tokenInfo = tokensInfo?.find(
@@ -8324,7 +8567,7 @@ var useAssetsScript = () => {
8324
8567
  };
8325
8568
  });
8326
8569
  }, [filtered, getIndexPrice, tokensInfo]);
8327
- const handleTransfer = React7.useCallback((accountId, token) => {
8570
+ const handleTransfer = React12.useCallback((accountId, token) => {
8328
8571
  if (!accountId) {
8329
8572
  return;
8330
8573
  }
@@ -8344,7 +8587,7 @@ var useAssetsScript = () => {
8344
8587
  onTransfer: showTransfer ? handleTransfer : void 0,
8345
8588
  onConvert: handleConvert
8346
8589
  });
8347
- const openDepositAndWithdraw = React7.useCallback(
8590
+ const openDepositAndWithdraw = React12.useCallback(
8348
8591
  (viewName) => {
8349
8592
  ui.modal.show(uiTransfer.DepositAndWithdrawWithDialogId, {
8350
8593
  activeTab: viewName
@@ -8352,10 +8595,10 @@ var useAssetsScript = () => {
8352
8595
  },
8353
8596
  []
8354
8597
  );
8355
- const onDeposit = React7.useCallback(() => {
8598
+ const onDeposit = React12.useCallback(() => {
8356
8599
  openDepositAndWithdraw("deposit");
8357
8600
  }, []);
8358
- const onWithdraw = React7.useCallback(() => {
8601
+ const onWithdraw = React12.useCallback(() => {
8359
8602
  openDepositAndWithdraw("withdraw");
8360
8603
  }, []);
8361
8604
  const dataSource2 = reactApp.useDataTap(enhancedFiltered, {
@@ -8629,10 +8872,10 @@ var AssetsTableMobile = (props) => {
8629
8872
  value: "Main accounts" /* MAIN */
8630
8873
  };
8631
8874
  const ALL_ASSETS = {
8632
- label: "All assets",
8875
+ label: t("common.allAssets"),
8633
8876
  value: "all"
8634
8877
  };
8635
- const memoizedOptions = React7.useMemo(() => {
8878
+ const memoizedOptions = React12.useMemo(() => {
8636
8879
  if (Array.isArray(subAccounts) && subAccounts.length) {
8637
8880
  return [
8638
8881
  ALL_ACCOUNTS,
@@ -8645,7 +8888,7 @@ var AssetsTableMobile = (props) => {
8645
8888
  }
8646
8889
  return [ALL_ACCOUNTS, MAIN_ACCOUNT];
8647
8890
  }, [subAccounts]);
8648
- const memoizedAssets = React7.useMemo(() => {
8891
+ const memoizedAssets = React12.useMemo(() => {
8649
8892
  return [ALL_ASSETS, ...assetsOptions];
8650
8893
  }, [assetsOptions]);
8651
8894
  if (!props.canTrade) {
@@ -8686,7 +8929,7 @@ var AssetsTableMobile = (props) => {
8686
8929
  }
8687
8930
  ),
8688
8931
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "oui-flex oui-flex-col oui-gap-1", children: dataSource2?.map((assets, index) => {
8689
- return /* @__PURE__ */ jsxRuntime.jsxs(React7__default.default.Fragment, { children: [
8932
+ return /* @__PURE__ */ jsxRuntime.jsxs(React12__default.default.Fragment, { children: [
8690
8933
  /* @__PURE__ */ jsxRuntime.jsx(AccountTag, { name: assets.description ?? "sub account" }),
8691
8934
  Array.isArray(assets.children) && assets.children.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
8692
8935
  AssetMobileItem,