@orderly.network/trading-leaderboard 2.8.6 → 2.8.7

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.d.mts CHANGED
@@ -446,6 +446,7 @@ type RankingProps = {
446
446
  } & Omit<GeneralRankingScriptReturn, "dataList" | "dataSource"> & {
447
447
  dataList: RankingData[];
448
448
  dataSource: RankingData[];
449
+ type?: "general" | "campaign";
449
450
  };
450
451
  declare const Ranking: FC<RankingProps>;
451
452
 
package/dist/index.d.ts CHANGED
@@ -446,6 +446,7 @@ type RankingProps = {
446
446
  } & Omit<GeneralRankingScriptReturn, "dataList" | "dataSource"> & {
447
447
  dataList: RankingData[];
448
448
  dataSource: RankingData[];
449
+ type?: "general" | "campaign";
449
450
  };
450
451
  declare const Ranking: FC<RankingProps>;
451
452
 
package/dist/index.js CHANGED
@@ -1549,7 +1549,7 @@ function isSameAddress2(address1, address2) {
1549
1549
  function getCurrentAddressRowKey(address) {
1550
1550
  return `current-address-${address?.toLowerCase()}`;
1551
1551
  }
1552
- var useRankingColumns = (fields, address, enableSort, brokerId) => {
1552
+ var useRankingColumns = (fields, address, enableSort, type) => {
1553
1553
  const { t } = i18n.useTranslation();
1554
1554
  const { isMobile } = ui.useScreen();
1555
1555
  return react.useMemo(() => {
@@ -1608,7 +1608,7 @@ var useRankingColumns = (fields, address, enableSort, brokerId) => {
1608
1608
  "a",
1609
1609
  {
1610
1610
  className: "oui-flex oui-items-start oui-gap-1",
1611
- href: `https://orderly-dashboard.orderly.network/address/${value}?broker_id=${brokerId}`,
1611
+ href: `https://orderly-dashboard.orderly.network/address/${value}?broker_id=${record.broker_id}`,
1612
1612
  target: "_blank",
1613
1613
  rel: "noreferrer",
1614
1614
  children: [
@@ -1636,7 +1636,7 @@ var useRankingColumns = (fields, address, enableSort, brokerId) => {
1636
1636
  width: 90
1637
1637
  },
1638
1638
  {
1639
- title: t("tradingLeaderboard.tradingVolume"),
1639
+ title: /* @__PURE__ */ jsxRuntime.jsx(VolumeColumnTitle, {}),
1640
1640
  dataIndex: "volume",
1641
1641
  onSort: enableSort,
1642
1642
  align: isMobile ? "right" : "left",
@@ -1649,7 +1649,7 @@ var useRankingColumns = (fields, address, enableSort, brokerId) => {
1649
1649
  width: 105
1650
1650
  },
1651
1651
  {
1652
- title: t("common.pnl"),
1652
+ title: /* @__PURE__ */ jsxRuntime.jsx(PnLColumnTitle, { type }),
1653
1653
  dataIndex: "pnl",
1654
1654
  onSort: enableSort,
1655
1655
  align: isMobile ? "right" : "left",
@@ -1685,7 +1685,7 @@ var useRankingColumns = (fields, address, enableSort, brokerId) => {
1685
1685
  return columns.filter(
1686
1686
  (column) => fields?.includes(column.dataIndex)
1687
1687
  );
1688
- }, [t, isMobile, address, fields, enableSort, brokerId]);
1688
+ }, [t, isMobile, address, fields, enableSort, type]);
1689
1689
  };
1690
1690
  var FirstRankIcon = () => {
1691
1691
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1805,13 +1805,50 @@ var ThirdRankIcon = () => {
1805
1805
  }
1806
1806
  );
1807
1807
  };
1808
+ var PnLColumnTitle = ({ type }) => {
1809
+ const { isMobile } = ui.useScreen();
1810
+ const { t } = i18n.useTranslation();
1811
+ const tooltipContent = type === "general" ? t("tradingLeaderboard.realizedPnl.tooltip") : t("tradingLeaderboard.pnl.tooltip");
1812
+ const longPress = ui.useLongPress(() => {
1813
+ ui.modal.alert({
1814
+ title: t("common.tips"),
1815
+ message: tooltipContent
1816
+ });
1817
+ });
1818
+ const view = /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { gap: 1, children: [
1819
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: type === "general" ? t("common.realizedPnl") : t("common.pnl") }),
1820
+ /* @__PURE__ */ jsxRuntime.jsx(ui.InfoCircleIcon, { opacity: 1, className: "w-4 h-4 cursor-pointer" })
1821
+ ] });
1822
+ if (isMobile) {
1823
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...longPress, children: view });
1824
+ }
1825
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { content: tooltipContent, children: view });
1826
+ };
1827
+ var VolumeColumnTitle = () => {
1828
+ const { isMobile } = ui.useScreen();
1829
+ const { t } = i18n.useTranslation();
1830
+ const tooltipContent = "Total trading volume generated during the campaign period. Updated every 30 seconds.";
1831
+ const longPress = ui.useLongPress(() => {
1832
+ ui.modal.alert({
1833
+ title: t("common.tips"),
1834
+ message: tooltipContent
1835
+ });
1836
+ });
1837
+ const view = /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { gap: 1, children: [
1838
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("tradingLeaderboard.tradingVolume") }),
1839
+ /* @__PURE__ */ jsxRuntime.jsx(ui.InfoCircleIcon, { opacity: 1, className: "w-4 h-4 cursor-pointer" })
1840
+ ] });
1841
+ if (isMobile) {
1842
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...longPress, children: view });
1843
+ }
1844
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { content: tooltipContent, children: view });
1845
+ };
1808
1846
  var Ranking = (props) => {
1809
- const brokerId = hooks.useConfig("brokerId");
1810
1847
  const column = useRankingColumns(
1811
1848
  props.fields,
1812
1849
  props.address,
1813
1850
  typeof props.onSort === "function",
1814
- brokerId
1851
+ props.type
1815
1852
  );
1816
1853
  const { isMobile } = ui.useScreen();
1817
1854
  const onRow = react.useCallback(
@@ -2278,7 +2315,7 @@ var GeneralRankingWidget = (props) => {
2278
2315
  address,
2279
2316
  sortKey
2280
2317
  });
2281
- return /* @__PURE__ */ jsxRuntime.jsx(Ranking, { ...state, ...rest, fields });
2318
+ return /* @__PURE__ */ jsxRuntime.jsx(Ranking, { ...state, ...rest, fields, type: "general" });
2282
2319
  };
2283
2320
 
2284
2321
  // src/components/rewards/utils.ts
@@ -2711,7 +2748,7 @@ var CampaignRankingWidget = (props) => {
2711
2748
  campaignId,
2712
2749
  sortKey
2713
2750
  });
2714
- return /* @__PURE__ */ jsxRuntime.jsx(Ranking, { ...state, ...rest, fields });
2751
+ return /* @__PURE__ */ jsxRuntime.jsx(Ranking, { ...state, ...rest, fields, type: "campaign" });
2715
2752
  };
2716
2753
  var FilterDays2 = [7, 14, 30, 90];
2717
2754
  function useGeneralLeaderboardScript(options) {
@@ -5475,7 +5512,7 @@ function isSameAddress3(address1, address2) {
5475
5512
  function getCurrentAddressRowKey2(address) {
5476
5513
  return `current-address-${address?.toLowerCase()}`;
5477
5514
  }
5478
- var useRankingColumns2 = (fields, address, enableSort, brokerId) => {
5515
+ var useRankingColumns2 = (fields, address, enableSort, type) => {
5479
5516
  const { t } = i18n.useTranslation();
5480
5517
  const { isMobile } = ui.useScreen();
5481
5518
  return react.useMemo(() => {
@@ -5534,7 +5571,7 @@ var useRankingColumns2 = (fields, address, enableSort, brokerId) => {
5534
5571
  "a",
5535
5572
  {
5536
5573
  className: "oui-flex oui-items-start oui-gap-1",
5537
- href: `https://orderly-dashboard.orderly.network/address/${value}?broker_id=${brokerId}`,
5574
+ href: `https://orderly-dashboard.orderly.network/address/${value}?broker_id=${record.broker_id}`,
5538
5575
  target: "_blank",
5539
5576
  rel: "noreferrer",
5540
5577
  children: [
@@ -5611,7 +5648,7 @@ var useRankingColumns2 = (fields, address, enableSort, brokerId) => {
5611
5648
  return columns.filter(
5612
5649
  (column) => fields?.includes(column.dataIndex)
5613
5650
  );
5614
- }, [t, isMobile, address, fields, enableSort, brokerId]);
5651
+ }, [t, isMobile, address, fields, enableSort, type]);
5615
5652
  };
5616
5653
  var FirstRankIcon2 = () => {
5617
5654
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -5732,12 +5769,11 @@ var ThirdRankIcon2 = () => {
5732
5769
  );
5733
5770
  };
5734
5771
  var Ranking2 = (props) => {
5735
- const brokerId = hooks.useConfig("brokerId");
5736
5772
  const column = useRankingColumns2(
5737
5773
  props.fields,
5738
5774
  props.address,
5739
5775
  typeof props.onSort === "function",
5740
- brokerId
5776
+ props.type
5741
5777
  );
5742
5778
  const { isMobile } = ui.useScreen();
5743
5779
  const onRow = react.useCallback(
@@ -6152,7 +6188,7 @@ var GeneralRankingWidget2 = (props) => {
6152
6188
  sortKey,
6153
6189
  weekOneAddresses
6154
6190
  });
6155
- return /* @__PURE__ */ jsxRuntime.jsx(Ranking2, { ...state, ...rest, fields });
6191
+ return /* @__PURE__ */ jsxRuntime.jsx(Ranking2, { ...state, ...rest, fields, type: "general" });
6156
6192
  };
6157
6193
  var LeaderboardFilter2 = (props) => {
6158
6194
  const { t } = i18n.useTranslation();