@orderly.network/portfolio 2.10.0-alpha.1 → 2.10.1-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,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var React12 = require('react');
4
- var jsxRuntime = require('react/jsx-runtime');
5
4
  var hooks = require('@orderly.network/hooks');
6
5
  var reactApp = require('@orderly.network/react-app');
7
6
  var types = require('@orderly.network/types');
@@ -9,6 +8,7 @@ var ui = require('@orderly.network/ui');
9
8
  var uiLeverage = require('@orderly.network/ui-leverage');
10
9
  var uiTransfer = require('@orderly.network/ui-transfer');
11
10
  var i18n = require('@orderly.network/i18n');
11
+ var jsxRuntime = require('react/jsx-runtime');
12
12
  var uiConnector = require('@orderly.network/ui-connector');
13
13
  var utils = require('@orderly.network/utils');
14
14
  var dateFns = require('date-fns');
@@ -35,30 +35,6 @@ var __export = (target, all) => {
35
35
  for (var name in all)
36
36
  __defProp(target, name, { get: all[name], enumerable: true });
37
37
  };
38
- var LayoutContext, useLayoutContext, LayoutProvider;
39
- var init_context = __esm({
40
- "src/layout/context.tsx"() {
41
- LayoutContext = React12.createContext({
42
- sideOpen: true
43
- });
44
- useLayoutContext = () => {
45
- return React12.useContext(LayoutContext);
46
- };
47
- LayoutProvider = (props) => {
48
- const { routerAdapter, children } = props;
49
- const [sideOpen, setSideOpen] = React12.useState(true);
50
- const memoizedValue = React12.useMemo(
51
- () => ({
52
- sideOpen,
53
- onSideOpenChange: setSideOpen,
54
- routerAdapter
55
- }),
56
- [sideOpen, setSideOpen, routerAdapter]
57
- );
58
- return /* @__PURE__ */ jsxRuntime.jsx(LayoutContext.Provider, { value: memoizedValue, children });
59
- };
60
- }
61
- });
62
38
  var useAssetScript;
63
39
  var init_assets_script = __esm({
64
40
  "src/pages/overview/assets/assets.script.ts"() {
@@ -4829,41 +4805,12 @@ __export(feeTierHeader_exports, {
4829
4805
  FeeTierHeader: () => FeeTierHeader,
4830
4806
  MobileHeaderItem: () => MobileHeaderItem
4831
4807
  });
4832
- var isEffective, EffectiveFeeDialog, MobileHeaderItem, DesktopHeaderItem, FeeTierHeader;
4808
+ var MobileHeaderItem, DesktopHeaderItem, FeeTierHeader;
4833
4809
  var init_feeTierHeader = __esm({
4834
4810
  "src/pages/feeTier/feeTierHeader.tsx"() {
4835
- init_context();
4836
4811
  init_icons();
4837
- isEffective = (val) => typeof val !== "undefined" && val !== null;
4838
- EffectiveFeeDialog = (props) => {
4839
- const { routerAdapter } = props;
4840
- const { t } = i18n.useTranslation();
4841
- const { hide } = ui.useModal();
4842
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Text, { size: "2xs", className: "oui-whitespace-normal oui-break-words", children: [
4843
- t("portfolio.feeTier.effectiveFee.tooltip"),
4844
- " ",
4845
- /* @__PURE__ */ jsxRuntime.jsx(
4846
- "a",
4847
- {
4848
- href: "/rewards/affiliate",
4849
- onClick: (e) => {
4850
- e.preventDefault();
4851
- routerAdapter?.onRouteChange({
4852
- href: "/rewards/affiliate",
4853
- name: t("portfolio.feeTier.effectiveFee.tooltipLink")
4854
- });
4855
- hide();
4856
- },
4857
- className: "oui-cursor-pointer oui-border-none oui-bg-transparent oui-p-0 oui-text-2xs oui-underline hover:oui-text-base-contrast-80",
4858
- children: t("portfolio.feeTier.effectiveFee.tooltipLink")
4859
- }
4860
- )
4861
- ] });
4862
- };
4863
4812
  MobileHeaderItem = (props) => {
4864
4813
  const { label, value, interactive } = props;
4865
- const { t } = i18n.useTranslation();
4866
- const { routerAdapter } = useLayoutContext();
4867
4814
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { justify: "between", itemAlign: "center", width: "100%", children: [
4868
4815
  /* @__PURE__ */ jsxRuntime.jsx(
4869
4816
  ui.Text,
@@ -4878,42 +4825,12 @@ var init_feeTierHeader = __esm({
4878
4825
  ),
4879
4826
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Flex, { className: "oui-gap-1.5", itemAlign: "center", justify: "between", children: [
4880
4827
  /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "xs", intensity: 80, className: "oui-leading-[24px]", children: value }),
4881
- interactive && /* @__PURE__ */ jsxRuntime.jsxs(
4882
- ui.Flex,
4883
- {
4884
- gap: 1,
4885
- justify: "center",
4886
- itemAlign: "center",
4887
- className: "oui-cursor-pointer oui-rounded oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)] oui-px-1",
4888
- onClick: () => {
4889
- ui.modal.dialog({
4890
- size: "sm",
4891
- title: t("common.tips"),
4892
- content: /* @__PURE__ */ jsxRuntime.jsx(EffectiveFeeDialog, { routerAdapter })
4893
- });
4894
- },
4895
- children: [
4896
- /* @__PURE__ */ jsxRuntime.jsx(EffectiveFee, {}),
4897
- /* @__PURE__ */ jsxRuntime.jsx(
4898
- ui.Text.gradient,
4899
- {
4900
- className: "oui-select-none",
4901
- color: "brand",
4902
- size: "3xs",
4903
- weight: "regular",
4904
- children: t("common.effectiveFee")
4905
- }
4906
- )
4907
- ]
4908
- }
4909
- )
4828
+ interactive && /* @__PURE__ */ jsxRuntime.jsx(EffectiveFee, {})
4910
4829
  ] })
4911
4830
  ] });
4912
4831
  };
4913
4832
  DesktopHeaderItem = (props) => {
4914
4833
  const { label, value, interactive } = props;
4915
- const { t } = i18n.useTranslation();
4916
- const { routerAdapter } = uiScaffold.useScaffoldContext();
4917
4834
  return /* @__PURE__ */ jsxRuntime.jsxs(
4918
4835
  ui.Box,
4919
4836
  {
@@ -4938,60 +4855,7 @@ var init_feeTierHeader = __esm({
4938
4855
  children: label
4939
4856
  }
4940
4857
  ),
4941
- interactive && /* @__PURE__ */ jsxRuntime.jsx(
4942
- ui.Tooltip,
4943
- {
4944
- content: /* @__PURE__ */ jsxRuntime.jsxs(
4945
- ui.Text,
4946
- {
4947
- size: "2xs",
4948
- className: "oui-whitespace-normal oui-break-words",
4949
- children: [
4950
- t("portfolio.feeTier.effectiveFee.tooltip"),
4951
- " ",
4952
- /* @__PURE__ */ jsxRuntime.jsx(
4953
- "a",
4954
- {
4955
- href: "/rewards/affiliate",
4956
- onClick: (e) => {
4957
- e.preventDefault();
4958
- routerAdapter?.onRouteChange({
4959
- href: "/rewards/affiliate",
4960
- name: t("portfolio.feeTier.effectiveFee.tooltipLink")
4961
- });
4962
- },
4963
- className: "oui-cursor-pointer oui-border-none oui-bg-transparent oui-p-0 oui-text-2xs oui-underline hover:oui-text-base-contrast-80",
4964
- children: t("portfolio.feeTier.effectiveFee.tooltipLink")
4965
- }
4966
- )
4967
- ]
4968
- }
4969
- ),
4970
- className: "oui-p-1.5 oui-text-base-contrast-54",
4971
- children: /* @__PURE__ */ jsxRuntime.jsxs(
4972
- ui.Flex,
4973
- {
4974
- gap: 1,
4975
- justify: "center",
4976
- itemAlign: "center",
4977
- className: "oui-cursor-pointer oui-rounded oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)] oui-px-1",
4978
- children: [
4979
- /* @__PURE__ */ jsxRuntime.jsx(EffectiveFee, {}),
4980
- /* @__PURE__ */ jsxRuntime.jsx(
4981
- ui.Text.gradient,
4982
- {
4983
- className: "oui-select-none",
4984
- color: "brand",
4985
- size: "xs",
4986
- weight: "regular",
4987
- children: t("common.effectiveFee")
4988
- }
4989
- )
4990
- ]
4991
- }
4992
- )
4993
- }
4994
- )
4858
+ interactive && /* @__PURE__ */ jsxRuntime.jsx(EffectiveFee, {})
4995
4859
  ] }),
4996
4860
  /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { className: "oui-mt-1 oui-w-full", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "base", intensity: 80, className: "oui-leading-[24px]", children: value }) })
4997
4861
  ]
@@ -5002,83 +4866,88 @@ var init_feeTierHeader = __esm({
5002
4866
  const { t } = i18n.useTranslation();
5003
4867
  const { tier, vol, headerDataAdapter } = props;
5004
4868
  const { isMobile } = ui.useScreen();
5005
- const { refereeRebate, ...others } = hooks.useFeeState();
5006
- const isEffectiveFee = isEffective(refereeRebate);
5007
- const items = [
5008
- {
5009
- label: t("portfolio.feeTier.header.yourTier"),
5010
- interactive: false,
5011
- value: /* @__PURE__ */ jsxRuntime.jsx(
5012
- ui.Text.gradient,
5013
- {
5014
- color: "brand",
5015
- angle: 270,
5016
- size: isMobile ? "xs" : "base",
5017
- children: tier || "--"
5018
- }
5019
- )
5020
- },
5021
- {
5022
- label: `${t("portfolio.feeTier.header.30dVolume")} (USDC)`,
5023
- interactive: false,
5024
- value: /* @__PURE__ */ jsxRuntime.jsx(
5025
- ui.Text.numeral,
5026
- {
5027
- rule: "price",
5028
- dp: 2,
5029
- rm: utils.Decimal.ROUND_DOWN,
5030
- size: isMobile ? "xs" : "base",
5031
- children: vol !== void 0 && vol !== null ? `${vol}` : "-"
5032
- }
5033
- )
5034
- },
5035
- {
5036
- label: t("portfolio.feeTier.header.takerFeeRate"),
5037
- interactive: isEffectiveFee,
5038
- value: /* @__PURE__ */ jsxRuntime.jsxs(
5039
- ui.Text.gradient,
5040
- {
5041
- color: "brand",
5042
- angle: 270,
5043
- size: isMobile ? "xs" : "base",
5044
- children: [
5045
- isEffectiveFee ? others.effectiveTakerFee || "--" : others.takerFee || "--",
5046
- " ",
5047
- "(RWA:",
5048
- " ",
5049
- (isEffectiveFee ? others.rwaEffectiveTakerFee : others.rwaTakerFee) || "--",
5050
- ")"
5051
- ]
5052
- }
5053
- )
5054
- },
5055
- {
5056
- label: t("portfolio.feeTier.header.makerFeeRate"),
5057
- interactive: isEffectiveFee,
5058
- value: /* @__PURE__ */ jsxRuntime.jsxs(
5059
- ui.Text.gradient,
5060
- {
5061
- color: "brand",
5062
- angle: 270,
5063
- size: isMobile ? "xs" : "base",
5064
- children: [
5065
- isEffectiveFee ? others.effectiveMakerFee || "--" : others.makerFee || "--",
5066
- " ",
5067
- "(RWA:",
5068
- " ",
5069
- (isEffectiveFee ? others.rwaEffectiveMakerFee : others.rwaMakerFee) || "--",
5070
- ")"
5071
- ]
5072
- }
5073
- )
5074
- }
5075
- ];
4869
+ const { takerFee, makerFee, rwaTakerFee, rwaMakerFee } = hooks.useFeeState();
5076
4870
  const mergedData = React12.useMemo(() => {
4871
+ const baseItems = [
4872
+ {
4873
+ label: t("portfolio.feeTier.header.yourTier"),
4874
+ interactive: false,
4875
+ value: /* @__PURE__ */ jsxRuntime.jsx(
4876
+ ui.Text.gradient,
4877
+ {
4878
+ color: "brand",
4879
+ angle: 270,
4880
+ size: isMobile ? "xs" : "base",
4881
+ children: tier || "--"
4882
+ }
4883
+ )
4884
+ },
4885
+ {
4886
+ label: `${t("portfolio.feeTier.header.30dVolume")} (USDC)`,
4887
+ interactive: false,
4888
+ value: /* @__PURE__ */ jsxRuntime.jsx(
4889
+ ui.Text.numeral,
4890
+ {
4891
+ rule: "price",
4892
+ dp: 2,
4893
+ rm: utils.Decimal.ROUND_DOWN,
4894
+ size: isMobile ? "xs" : "base",
4895
+ children: vol !== void 0 && vol !== null ? `${vol}` : "-"
4896
+ }
4897
+ )
4898
+ },
4899
+ {
4900
+ label: t("portfolio.feeTier.header.takerFeeRate"),
4901
+ interactive: false,
4902
+ value: /* @__PURE__ */ jsxRuntime.jsxs(
4903
+ ui.Text.gradient,
4904
+ {
4905
+ color: "brand",
4906
+ angle: 270,
4907
+ size: isMobile ? "xs" : "base",
4908
+ children: [
4909
+ takerFee || "--",
4910
+ " (RWA: ",
4911
+ rwaTakerFee || "--",
4912
+ ")"
4913
+ ]
4914
+ }
4915
+ )
4916
+ },
4917
+ {
4918
+ label: t("portfolio.feeTier.header.makerFeeRate"),
4919
+ interactive: false,
4920
+ value: /* @__PURE__ */ jsxRuntime.jsxs(
4921
+ ui.Text.gradient,
4922
+ {
4923
+ color: "brand",
4924
+ angle: 270,
4925
+ size: isMobile ? "xs" : "base",
4926
+ children: [
4927
+ makerFee || "--",
4928
+ " (RWA: ",
4929
+ rwaMakerFee || "--",
4930
+ ")"
4931
+ ]
4932
+ }
4933
+ )
4934
+ }
4935
+ ];
5077
4936
  if (typeof headerDataAdapter === "function") {
5078
- return headerDataAdapter(items);
4937
+ return headerDataAdapter(baseItems);
5079
4938
  }
5080
- return items;
5081
- }, [headerDataAdapter, items]);
4939
+ return baseItems;
4940
+ }, [
4941
+ headerDataAdapter,
4942
+ isMobile,
4943
+ makerFee,
4944
+ rwaMakerFee,
4945
+ rwaTakerFee,
4946
+ t,
4947
+ takerFee,
4948
+ tier,
4949
+ vol
4950
+ ]);
5082
4951
  if (!Array.isArray(mergedData)) {
5083
4952
  return null;
5084
4953
  }
@@ -6410,9 +6279,25 @@ var LeftSidebar = (props) => {
6410
6279
  }
6411
6280
  );
6412
6281
  };
6413
-
6414
- // src/layout/layout.ui.mobile.tsx
6415
- init_context();
6282
+ var LayoutContext = React12.createContext({
6283
+ sideOpen: true
6284
+ });
6285
+ var useLayoutContext = () => {
6286
+ return React12.useContext(LayoutContext);
6287
+ };
6288
+ var LayoutProvider = (props) => {
6289
+ const { routerAdapter, children } = props;
6290
+ const [sideOpen, setSideOpen] = React12.useState(true);
6291
+ const memoizedValue = React12.useMemo(
6292
+ () => ({
6293
+ sideOpen,
6294
+ onSideOpenChange: setSideOpen,
6295
+ routerAdapter
6296
+ }),
6297
+ [sideOpen, setSideOpen, routerAdapter]
6298
+ );
6299
+ return /* @__PURE__ */ jsxRuntime.jsx(LayoutContext.Provider, { value: memoizedValue, children });
6300
+ };
6416
6301
  var PortfolioLayoutMobile = (props) => {
6417
6302
  return /* @__PURE__ */ jsxRuntime.jsx(LayoutProvider, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(
6418
6303
  ui.Flex,
@@ -6771,9 +6656,6 @@ ui.registerSimpleDialog(PerformanceMobileDialogId, PerformanceMobileWidget, {
6771
6656
  // src/pages/overview/index.tsx
6772
6657
  init_funding();
6773
6658
  init_distribution();
6774
-
6775
- // src/pages/overview/mobile/mobile.widget.tsx
6776
- init_context();
6777
6659
  init_assets();
6778
6660
 
6779
6661
  // src/pages/overview/portfolioChartsMobile/portfolioChartsMobile.widget.tsx