@orderly.network/vaults 2.8.2 → 2.8.3-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 +200 -226
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +202 -228
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +10 -10
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React, { useState, useMemo, useEffect
|
|
1
|
+
import React, { useState, useMemo, useEffect } from 'react';
|
|
2
2
|
import { useCollateral, useMaxWithdrawal, useTokenInfo, useAccount, useGetEnv, useTrack, useMutation, useConfig, usePrivateQuery } from '@orderly.network/hooks';
|
|
3
3
|
import { create } from 'zustand';
|
|
4
4
|
import { useTranslation } from '@orderly.network/i18n';
|
|
5
5
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import { uniqBy } from 'ramda';
|
|
7
|
-
import { registerSimpleDialog, registerSimpleSheet, Tabs, TabPanel, ArrowDownSquareFillIcon, ArrowUpSquareFillIcon, Box, Text, Button, useScreen, cn, modal, useModal, SimpleDialog, SimpleSheet, toast, ArrowRightUpSquareFillIcon,
|
|
7
|
+
import { registerSimpleDialog, registerSimpleSheet, Tabs, TabPanel, ArrowDownSquareFillIcon, ArrowUpSquareFillIcon, Box, Text, Button, useScreen, cn, modal, useModal, SimpleDialog, SimpleSheet, toast, ArrowRightUpSquareFillIcon, Tooltip, InfoCircleIcon, Divider, TokenIcon } from '@orderly.network/ui';
|
|
8
8
|
import { TrackerEventName, EMPTY_LIST } from '@orderly.network/types';
|
|
9
9
|
import { Decimal } from '@orderly.network/utils';
|
|
10
10
|
import { BrokerWallet, QuantityInput, AvailableQuantity } from '@orderly.network/ui-transfer';
|
|
@@ -2081,22 +2081,37 @@ var init_vaultCard_ui = __esm({
|
|
|
2081
2081
|
isButtonsDisabled
|
|
2082
2082
|
} = props;
|
|
2083
2083
|
const { t } = useTranslation();
|
|
2084
|
-
const isPreLaunch = vaultInfo.status === "pre_launch";
|
|
2085
2084
|
const { isMobile } = useScreen();
|
|
2086
|
-
const
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2085
|
+
const getStatusTag = () => {
|
|
2086
|
+
const { status } = vaultInfo;
|
|
2087
|
+
if (status === "live") {
|
|
2088
|
+
return {
|
|
2089
|
+
text: t("vaults.card.status.active"),
|
|
2090
|
+
color: "#00C076",
|
|
2091
|
+
bgColor: "rgba(0, 192, 118, 0.15)"
|
|
2092
|
+
};
|
|
2093
|
+
} else if (status === "pre_launch") {
|
|
2094
|
+
return {
|
|
2095
|
+
text: t("vaults.card.launchingSoon"),
|
|
2096
|
+
color: "#E88800",
|
|
2097
|
+
bgColor: "rgba(232, 136, 0, 0.15)"
|
|
2098
|
+
};
|
|
2099
|
+
} else if (status === "closing") {
|
|
2100
|
+
return {
|
|
2101
|
+
text: t("vaults.card.status.closing"),
|
|
2102
|
+
color: "#FF6B6B",
|
|
2103
|
+
bgColor: "rgba(255, 107, 107, 0.15)"
|
|
2104
|
+
};
|
|
2105
|
+
} else if (status === "closed") {
|
|
2106
|
+
return {
|
|
2107
|
+
text: t("vaults.card.status.closed"),
|
|
2108
|
+
color: "#999999",
|
|
2109
|
+
bgColor: "rgba(153, 153, 153, 0.15)"
|
|
2110
|
+
};
|
|
2095
2111
|
}
|
|
2096
|
-
|
|
2097
|
-
const handleToggleExpand = () => {
|
|
2098
|
-
setIsExpanded(!isExpanded);
|
|
2112
|
+
return null;
|
|
2099
2113
|
};
|
|
2114
|
+
const statusTag = getStatusTag();
|
|
2100
2115
|
useMemo(() => {
|
|
2101
2116
|
const chains = Array.isArray(vaultInfo?.supported_chains) ? vaultInfo.supported_chains : [];
|
|
2102
2117
|
return /* @__PURE__ */ jsx("div", { className: "oui-flex oui-items-center", children: chains.map((chain, index) => /* @__PURE__ */ jsx(
|
|
@@ -2116,134 +2131,58 @@ var init_vaultCard_ui = __esm({
|
|
|
2116
2131
|
chain.chain_id
|
|
2117
2132
|
)) });
|
|
2118
2133
|
}, [vaultInfo.supported_chains, isMobile]);
|
|
2119
|
-
return /* @__PURE__ */
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
height: "180px",
|
|
2131
|
-
objectFit: "cover",
|
|
2132
|
-
objectPosition: "top",
|
|
2133
|
-
zIndex: 0
|
|
2134
|
-
},
|
|
2135
|
-
onError: (e) => {
|
|
2136
|
-
e.currentTarget.style.display = "none";
|
|
2137
|
-
}
|
|
2138
|
-
}
|
|
2139
|
-
),
|
|
2140
|
-
/* @__PURE__ */ jsx(
|
|
2141
|
-
"div",
|
|
2142
|
-
{
|
|
2143
|
-
className: cn(
|
|
2144
|
-
"oui-absolute oui-left-0 oui-top-0 oui-z-20 oui-size-full oui-p-6",
|
|
2145
|
-
isExpanded && "oui-overflow-y-auto"
|
|
2146
|
-
),
|
|
2147
|
-
children: /* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-3", children: [
|
|
2148
|
-
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-items-center oui-gap-2", children: [
|
|
2149
|
-
/* @__PURE__ */ jsx(
|
|
2150
|
-
"img",
|
|
2151
|
-
{
|
|
2152
|
-
src: icon,
|
|
2153
|
-
alt: vaultInfo.broker_id,
|
|
2154
|
-
className: "oui-size-8",
|
|
2155
|
-
onError: (e) => {
|
|
2156
|
-
e.currentTarget.style.display = "none";
|
|
2157
|
-
}
|
|
2158
|
-
}
|
|
2159
|
-
),
|
|
2160
|
-
/* @__PURE__ */ jsx("div", { className: "oui-text-[18px] oui-font-semibold oui-text-white", children: title }),
|
|
2161
|
-
isPreLaunch && /* @__PURE__ */ jsx(
|
|
2162
|
-
"div",
|
|
2163
|
-
{
|
|
2164
|
-
className: "oui-flex oui-items-center oui-gap-[10px] oui-px-2 oui-text-[#E88800]",
|
|
2165
|
-
style: {
|
|
2166
|
-
height: "18px",
|
|
2167
|
-
borderRadius: "4px",
|
|
2168
|
-
background: "rgba(232, 136, 0, 0.15)",
|
|
2169
|
-
fontSize: "12px",
|
|
2170
|
-
fontWeight: 600,
|
|
2171
|
-
lineHeight: "18px",
|
|
2172
|
-
letterSpacing: "0.36px"
|
|
2173
|
-
},
|
|
2174
|
-
children: t("vaults.card.launchingSoon")
|
|
2175
|
-
}
|
|
2176
|
-
),
|
|
2177
|
-
/* @__PURE__ */ jsx(
|
|
2178
|
-
"div",
|
|
2179
|
-
{
|
|
2180
|
-
className: "oui-z-50 oui-ml-auto oui-cursor-pointer",
|
|
2181
|
-
onClick: openVaultWebsite,
|
|
2182
|
-
children: /* @__PURE__ */ jsx(
|
|
2183
|
-
ArrowRightUpSquareFillIcon,
|
|
2184
|
-
{
|
|
2185
|
-
color: "white",
|
|
2186
|
-
width: 18,
|
|
2187
|
-
height: 18,
|
|
2188
|
-
viewBox: "0 0 18 18"
|
|
2189
|
-
}
|
|
2190
|
-
)
|
|
2191
|
-
}
|
|
2192
|
-
)
|
|
2193
|
-
] }),
|
|
2194
|
-
/* @__PURE__ */ jsxs(
|
|
2134
|
+
return /* @__PURE__ */ jsx("div", { className: "oui-relative oui-h-[435px] oui-overflow-hidden oui-rounded-2xl oui-bg-base-9", children: /* @__PURE__ */ jsx(
|
|
2135
|
+
"div",
|
|
2136
|
+
{
|
|
2137
|
+
className: cn(
|
|
2138
|
+
"oui-absolute oui-left-0 oui-top-0 oui-z-20 oui-size-full oui-p-6",
|
|
2139
|
+
"oui-overflow-y-auto oui-custom-scrollbar"
|
|
2140
|
+
),
|
|
2141
|
+
children: /* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-2", children: [
|
|
2142
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-1", children: [
|
|
2143
|
+
/* @__PURE__ */ jsx("div", { className: "oui-text-[18px] oui-font-semibold oui-text-white oui-break-words", children: title }),
|
|
2144
|
+
statusTag && /* @__PURE__ */ jsx(
|
|
2195
2145
|
"div",
|
|
2196
2146
|
{
|
|
2197
|
-
className:
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2147
|
+
className: "oui-flex oui-w-fit oui-items-center oui-gap-[10px] oui-px-2",
|
|
2148
|
+
style: {
|
|
2149
|
+
height: "18px",
|
|
2150
|
+
borderRadius: "4px",
|
|
2151
|
+
background: statusTag.bgColor,
|
|
2152
|
+
color: statusTag.color,
|
|
2153
|
+
fontSize: "12px",
|
|
2154
|
+
fontWeight: 600,
|
|
2155
|
+
lineHeight: "18px",
|
|
2156
|
+
letterSpacing: "0.36px"
|
|
2157
|
+
},
|
|
2158
|
+
children: statusTag.text
|
|
2159
|
+
}
|
|
2160
|
+
)
|
|
2161
|
+
] }),
|
|
2162
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-1", children: [
|
|
2163
|
+
/* @__PURE__ */ jsx("div", { className: "oui-h-[54px]", children: /* @__PURE__ */ jsx("div", { className: "oui-text-2xs oui-font-normal oui-leading-[18px] oui-text-base-contrast-54 oui-line-clamp-3", children: parseMarkdownLinks(description) }) }),
|
|
2164
|
+
/* @__PURE__ */ jsxs(
|
|
2165
|
+
"button",
|
|
2166
|
+
{
|
|
2167
|
+
onClick: openVaultWebsite,
|
|
2168
|
+
className: "oui-flex oui-w-fit oui-items-center oui-gap-1 oui-text-xs oui-font-medium",
|
|
2169
|
+
style: { color: "#608CFF" },
|
|
2201
2170
|
children: [
|
|
2171
|
+
/* @__PURE__ */ jsx("span", { children: t("vaults.card.viewMore") }),
|
|
2202
2172
|
/* @__PURE__ */ jsx(
|
|
2203
|
-
|
|
2204
|
-
{
|
|
2205
|
-
ref: descriptionRef,
|
|
2206
|
-
className: cn(
|
|
2207
|
-
"oui-text-2xs oui-font-normal oui-leading-[18px] oui-text-base-contrast-54",
|
|
2208
|
-
!isExpanded && showExpandButton && "oui-line-clamp-3"
|
|
2209
|
-
),
|
|
2210
|
-
children: parseMarkdownLinks(description)
|
|
2211
|
-
}
|
|
2212
|
-
),
|
|
2213
|
-
showExpandButton && /* @__PURE__ */ jsx(
|
|
2214
|
-
"button",
|
|
2173
|
+
ArrowRightUpSquareFillIcon,
|
|
2215
2174
|
{
|
|
2216
|
-
onClick: handleToggleExpand,
|
|
2217
|
-
className: "oui-self-end oui-inline-flex oui-shrink-0 oui-cursor-pointer oui-items-center oui-gap-0.5 oui-text-[12px] oui-font-medium",
|
|
2218
2175
|
style: { color: "#608CFF" },
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
ChevronUpIcon,
|
|
2223
|
-
{
|
|
2224
|
-
size: 12,
|
|
2225
|
-
opacity: 1,
|
|
2226
|
-
color: "inherit",
|
|
2227
|
-
className: "oui-translate-y-[0.5px]"
|
|
2228
|
-
}
|
|
2229
|
-
)
|
|
2230
|
-
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2231
|
-
/* @__PURE__ */ jsx("span", { children: t("vaults.card.more") }),
|
|
2232
|
-
/* @__PURE__ */ jsx(
|
|
2233
|
-
ChevronDownIcon,
|
|
2234
|
-
{
|
|
2235
|
-
size: 12,
|
|
2236
|
-
opacity: 1,
|
|
2237
|
-
color: "inherit",
|
|
2238
|
-
className: "oui-translate-y-[0.5px]"
|
|
2239
|
-
}
|
|
2240
|
-
)
|
|
2241
|
-
] })
|
|
2176
|
+
width: 16,
|
|
2177
|
+
height: 16,
|
|
2178
|
+
viewBox: "0 0 18 18"
|
|
2242
2179
|
}
|
|
2243
2180
|
)
|
|
2244
2181
|
]
|
|
2245
2182
|
}
|
|
2246
|
-
)
|
|
2183
|
+
)
|
|
2184
|
+
] }),
|
|
2185
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-6", children: [
|
|
2247
2186
|
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-items-center oui-gap-2", children: [
|
|
2248
2187
|
/* @__PURE__ */ jsx(
|
|
2249
2188
|
VaultInfoItem,
|
|
@@ -2261,15 +2200,17 @@ var init_vaultCard_ui = __esm({
|
|
|
2261
2200
|
VaultInfoItem,
|
|
2262
2201
|
{
|
|
2263
2202
|
label: t("vaults.card.apy"),
|
|
2264
|
-
value: vaultInfo["30d_apy"] > 100 ? ">10000%" : (vaultInfo["30d_apy"] * 100).toFixed(2) + "%",
|
|
2203
|
+
value: vaultInfo.status === "pre_launch" || vaultInfo.vault_age !== null && vaultInfo.vault_age < 30 ? "--" : vaultInfo["30d_apy"] > 100 ? ">10000%" : (vaultInfo["30d_apy"] * 100).toFixed(2) + "%",
|
|
2265
2204
|
textProps: {
|
|
2266
2205
|
color: "brand",
|
|
2267
2206
|
type: "gradient"
|
|
2268
|
-
}
|
|
2207
|
+
},
|
|
2208
|
+
showTooltip: vaultInfo.status === "pre_launch" || vaultInfo.vault_age !== null && vaultInfo.vault_age < 30,
|
|
2209
|
+
tooltipContent: "APY is not calculated for vaults that are less than 30 days old."
|
|
2269
2210
|
}
|
|
2270
2211
|
)
|
|
2271
2212
|
] }),
|
|
2272
|
-
/* @__PURE__ */ jsxs("div", { className: "oui-
|
|
2213
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-items-center oui-gap-2 oui-rounded-lg oui-bg-white/[0.06] oui-p-3", children: [
|
|
2273
2214
|
/* @__PURE__ */ jsx(
|
|
2274
2215
|
LpInfoItem,
|
|
2275
2216
|
{
|
|
@@ -2284,7 +2225,9 @@ var init_vaultCard_ui = __esm({
|
|
|
2284
2225
|
value: lpInfo.earnings
|
|
2285
2226
|
}
|
|
2286
2227
|
)
|
|
2287
|
-
] })
|
|
2228
|
+
] })
|
|
2229
|
+
] }),
|
|
2230
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-4 oui-mt-2", children: [
|
|
2288
2231
|
/* @__PURE__ */ jsx(
|
|
2289
2232
|
LpInfoItem,
|
|
2290
2233
|
{
|
|
@@ -2302,12 +2245,12 @@ var init_vaultCard_ui = __esm({
|
|
|
2302
2245
|
}
|
|
2303
2246
|
)
|
|
2304
2247
|
] })
|
|
2305
|
-
}
|
|
2306
|
-
|
|
2307
|
-
|
|
2248
|
+
] })
|
|
2249
|
+
}
|
|
2250
|
+
) });
|
|
2308
2251
|
};
|
|
2309
2252
|
VaultInfoItem = (props) => {
|
|
2310
|
-
const { label, value, textProps } = props;
|
|
2253
|
+
const { label, value, textProps, showTooltip, tooltipContent } = props;
|
|
2311
2254
|
return /* @__PURE__ */ jsxs(
|
|
2312
2255
|
"div",
|
|
2313
2256
|
{
|
|
@@ -2316,7 +2259,17 @@ var init_vaultCard_ui = __esm({
|
|
|
2316
2259
|
"oui-rounded-lg oui-border oui-border-solid oui-border-white/[0.12]"
|
|
2317
2260
|
),
|
|
2318
2261
|
children: [
|
|
2319
|
-
/* @__PURE__ */
|
|
2262
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-items-center oui-gap-1 oui-text-2xs oui-font-normal oui-leading-[18px] oui-text-base-contrast-54", children: [
|
|
2263
|
+
label,
|
|
2264
|
+
showTooltip && tooltipContent && /* @__PURE__ */ jsx(Tooltip, { content: tooltipContent, delayDuration: 100, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
2265
|
+
InfoCircleIcon,
|
|
2266
|
+
{
|
|
2267
|
+
size: 12,
|
|
2268
|
+
opacity: 0.54,
|
|
2269
|
+
className: "oui-text-base-contrast"
|
|
2270
|
+
}
|
|
2271
|
+
) }) })
|
|
2272
|
+
] }),
|
|
2320
2273
|
textProps.type === "gradient" ? /* @__PURE__ */ jsx(
|
|
2321
2274
|
Text.gradient,
|
|
2322
2275
|
{
|
|
@@ -2416,6 +2369,11 @@ var init_vaults_list = __esm({
|
|
|
2416
2369
|
const { t } = useTranslation();
|
|
2417
2370
|
const [sortField, setSortField] = useState("apy");
|
|
2418
2371
|
const [sortDirection, setSortDirection] = useState("desc");
|
|
2372
|
+
const shouldShowApyTooltip = useMemo(() => {
|
|
2373
|
+
return vaults.some(
|
|
2374
|
+
(vault) => vault.status === "pre_launch" || vault.vault_age !== null && vault.vault_age < 30
|
|
2375
|
+
);
|
|
2376
|
+
}, [vaults]);
|
|
2419
2377
|
const handleSort = (field) => {
|
|
2420
2378
|
if (sortField === field) {
|
|
2421
2379
|
setSortDirection(sortDirection === "asc" ? "desc" : "asc");
|
|
@@ -2492,17 +2450,34 @@ var init_vaults_list = __esm({
|
|
|
2492
2450
|
]
|
|
2493
2451
|
}
|
|
2494
2452
|
),
|
|
2495
|
-
/* @__PURE__ */ jsxs(
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2453
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-items-center oui-gap-1", children: [
|
|
2454
|
+
/* @__PURE__ */ jsxs(
|
|
2455
|
+
"button",
|
|
2456
|
+
{
|
|
2457
|
+
onClick: () => handleSort("apy"),
|
|
2458
|
+
className: "oui-flex oui-items-center oui-text-2xs oui-font-normal oui-text-base-contrast-54 hover:oui-text-base-contrast",
|
|
2459
|
+
children: [
|
|
2460
|
+
t("vaults.card.apy"),
|
|
2461
|
+
/* @__PURE__ */ jsx(SortIcon, { field: "apy" })
|
|
2462
|
+
]
|
|
2463
|
+
}
|
|
2464
|
+
),
|
|
2465
|
+
shouldShowApyTooltip && /* @__PURE__ */ jsx(
|
|
2466
|
+
Tooltip,
|
|
2467
|
+
{
|
|
2468
|
+
content: "APY is not calculated for vaults that are less than 30 days old.",
|
|
2469
|
+
delayDuration: 100,
|
|
2470
|
+
children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
2471
|
+
InfoCircleIcon,
|
|
2472
|
+
{
|
|
2473
|
+
size: 12,
|
|
2474
|
+
opacity: 0.54,
|
|
2475
|
+
className: "oui-text-base-contrast"
|
|
2476
|
+
}
|
|
2477
|
+
) })
|
|
2478
|
+
}
|
|
2479
|
+
)
|
|
2480
|
+
] }),
|
|
2506
2481
|
/* @__PURE__ */ jsxs(
|
|
2507
2482
|
"button",
|
|
2508
2483
|
{
|
|
@@ -2546,9 +2521,39 @@ var init_vaults_list = __esm({
|
|
|
2546
2521
|
icon,
|
|
2547
2522
|
isButtonsDisabled
|
|
2548
2523
|
} = script;
|
|
2549
|
-
|
|
2524
|
+
vaultInfo.status === "pre_launch";
|
|
2550
2525
|
const { isMobile } = useScreen();
|
|
2551
|
-
const
|
|
2526
|
+
const getStatusTag = () => {
|
|
2527
|
+
const { status } = vaultInfo;
|
|
2528
|
+
if (status === "live") {
|
|
2529
|
+
return {
|
|
2530
|
+
text: t("vaults.card.status.active"),
|
|
2531
|
+
color: "#00C076",
|
|
2532
|
+
bgColor: "rgba(0, 192, 118, 0.15)"
|
|
2533
|
+
};
|
|
2534
|
+
} else if (status === "pre_launch") {
|
|
2535
|
+
return {
|
|
2536
|
+
text: t("vaults.card.launchingSoon"),
|
|
2537
|
+
color: "#E88800",
|
|
2538
|
+
bgColor: "rgba(232, 136, 0, 0.15)"
|
|
2539
|
+
};
|
|
2540
|
+
} else if (status === "closing") {
|
|
2541
|
+
return {
|
|
2542
|
+
text: t("vaults.card.status.closing"),
|
|
2543
|
+
color: "#FF6B6B",
|
|
2544
|
+
bgColor: "rgba(255, 107, 107, 0.15)"
|
|
2545
|
+
};
|
|
2546
|
+
} else if (status === "closed") {
|
|
2547
|
+
return {
|
|
2548
|
+
text: t("vaults.card.status.closed"),
|
|
2549
|
+
color: "#999999",
|
|
2550
|
+
bgColor: "rgba(153, 153, 153, 0.15)"
|
|
2551
|
+
};
|
|
2552
|
+
}
|
|
2553
|
+
return null;
|
|
2554
|
+
};
|
|
2555
|
+
const statusTag = getStatusTag();
|
|
2556
|
+
useMemo(() => {
|
|
2552
2557
|
const chains = Array.isArray(vaultInfo?.supported_chains) ? vaultInfo.supported_chains : [];
|
|
2553
2558
|
const ICON_SIZE = isMobile ? 18 : 20;
|
|
2554
2559
|
return /* @__PURE__ */ jsx("div", { className: "oui-flex oui-items-center", children: chains.map((chain, index) => /* @__PURE__ */ jsx(
|
|
@@ -2570,80 +2575,49 @@ var init_vaults_list = __esm({
|
|
|
2570
2575
|
chain.chain_id
|
|
2571
2576
|
)) });
|
|
2572
2577
|
}, [vaultInfo.supported_chains, isMobile]);
|
|
2573
|
-
return /* @__PURE__ */ jsxs("div", { className: "oui-relative oui-grid oui-grid-cols-[2fr_1fr_1fr_1fr_1fr_1fr_1.5fr] oui-gap-4 oui-rounded-
|
|
2574
|
-
/* @__PURE__ */ jsx(
|
|
2575
|
-
"
|
|
2576
|
-
{
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
}
|
|
2593
|
-
),
|
|
2594
|
-
/* @__PURE__ */ jsxs("div", { className: "oui-relative oui-z-10 oui-flex oui-items-center oui-gap-2", children: [
|
|
2595
|
-
/* @__PURE__ */ jsx(
|
|
2596
|
-
"img",
|
|
2597
|
-
{
|
|
2598
|
-
src: icon,
|
|
2599
|
-
alt: vaultInfo.broker_id,
|
|
2600
|
-
className: "oui-size-10 oui-rounded-full",
|
|
2601
|
-
onError: (e) => {
|
|
2602
|
-
e.currentTarget.style.display = "none";
|
|
2578
|
+
return /* @__PURE__ */ jsxs("div", { className: "oui-relative oui-grid oui-grid-cols-[2fr_1fr_1fr_1fr_1fr_1fr_1.5fr] oui-gap-4 oui-rounded-2xl oui-bg-base-9 oui-px-4 oui-py-4 oui-items-center oui-overflow-hidden", children: [
|
|
2579
|
+
/* @__PURE__ */ jsx("div", { className: "oui-relative oui-z-10 oui-flex oui-items-center oui-gap-2", children: /* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-col oui-gap-1", children: [
|
|
2580
|
+
/* @__PURE__ */ jsx("div", { className: "oui-text-sm oui-font-semibold oui-text-base-contrast", children: title }),
|
|
2581
|
+
/* @__PURE__ */ jsxs("div", { className: "oui-flex oui-flex-wrap oui-items-center oui-gap-2", children: [
|
|
2582
|
+
statusTag && /* @__PURE__ */ jsx(
|
|
2583
|
+
"div",
|
|
2584
|
+
{
|
|
2585
|
+
className: "oui-flex oui-items-center oui-gap-[10px] oui-px-2 oui-whitespace-nowrap oui-flex-shrink-0",
|
|
2586
|
+
style: {
|
|
2587
|
+
height: "18px",
|
|
2588
|
+
borderRadius: "4px",
|
|
2589
|
+
background: statusTag.bgColor,
|
|
2590
|
+
color: statusTag.color,
|
|
2591
|
+
fontSize: "12px",
|
|
2592
|
+
fontWeight: 600,
|
|
2593
|
+
lineHeight: "18px",
|
|
2594
|
+
letterSpacing: "0.36px"
|
|
2595
|
+
},
|
|
2596
|
+
children: statusTag.text
|
|
2603
2597
|
}
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
"
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
}
|
|
2626
|
-
),
|
|
2627
|
-
isPreLaunch && /* @__PURE__ */ jsx(
|
|
2628
|
-
"div",
|
|
2629
|
-
{
|
|
2630
|
-
className: "oui-flex oui-items-center oui-gap-[10px] oui-px-2 oui-text-[#E88800] oui-whitespace-nowrap oui-flex-shrink-0",
|
|
2631
|
-
style: {
|
|
2632
|
-
height: "18px",
|
|
2633
|
-
borderRadius: "4px",
|
|
2634
|
-
background: "rgba(232, 136, 0, 0.15)",
|
|
2635
|
-
fontSize: "12px",
|
|
2636
|
-
fontWeight: 600,
|
|
2637
|
-
lineHeight: "18px",
|
|
2638
|
-
letterSpacing: "0.36px"
|
|
2639
|
-
},
|
|
2640
|
-
children: t("vaults.card.launchingSoon")
|
|
2641
|
-
}
|
|
2642
|
-
)
|
|
2643
|
-
] })
|
|
2644
|
-
] })
|
|
2598
|
+
),
|
|
2599
|
+
/* @__PURE__ */ jsxs(
|
|
2600
|
+
"button",
|
|
2601
|
+
{
|
|
2602
|
+
onClick: openVaultWebsite,
|
|
2603
|
+
className: "oui-flex oui-items-center oui-gap-1 oui-text-xs oui-font-medium",
|
|
2604
|
+
style: { color: "#608CFF" },
|
|
2605
|
+
children: [
|
|
2606
|
+
/* @__PURE__ */ jsx("span", { children: t("vaults.card.viewMore") }),
|
|
2607
|
+
/* @__PURE__ */ jsx(
|
|
2608
|
+
ArrowRightUpSquareFillIcon,
|
|
2609
|
+
{
|
|
2610
|
+
style: { color: "#608CFF" },
|
|
2611
|
+
width: 16,
|
|
2612
|
+
height: 16,
|
|
2613
|
+
viewBox: "0 0 18 18"
|
|
2614
|
+
}
|
|
2615
|
+
)
|
|
2616
|
+
]
|
|
2617
|
+
}
|
|
2618
|
+
)
|
|
2645
2619
|
] })
|
|
2646
|
-
] }),
|
|
2620
|
+
] }) }),
|
|
2647
2621
|
/* @__PURE__ */ jsx("div", { className: "oui-relative oui-z-10", children: /* @__PURE__ */ jsx(
|
|
2648
2622
|
Text.numeral,
|
|
2649
2623
|
{
|
|
@@ -2653,7 +2627,7 @@ var init_vaults_list = __esm({
|
|
|
2653
2627
|
children: vaultInfo.tvl
|
|
2654
2628
|
}
|
|
2655
2629
|
) }),
|
|
2656
|
-
/* @__PURE__ */ jsx("div", { className: "oui-relative oui-z-10", children: /* @__PURE__ */ jsx(Text.gradient, { className: "oui-text-sm oui-font-semibold", color: "brand", children: vaultInfo["30d_apy"] > 100 ? ">10000%" : `${(vaultInfo["30d_apy"] * 100).toFixed(2)}%` }) }),
|
|
2630
|
+
/* @__PURE__ */ jsx("div", { className: "oui-relative oui-z-10", children: /* @__PURE__ */ jsx(Text.gradient, { className: "oui-text-sm oui-font-semibold", color: "brand", children: vaultInfo.status === "pre_launch" || vaultInfo.vault_age !== null && vaultInfo.vault_age < 30 ? "--" : vaultInfo["30d_apy"] > 100 ? ">10000%" : `${(vaultInfo["30d_apy"] * 100).toFixed(2)}%` }) }),
|
|
2657
2631
|
/* @__PURE__ */ jsx("div", { className: "oui-relative oui-z-10", children: /* @__PURE__ */ jsx(
|
|
2658
2632
|
Text.numeral,
|
|
2659
2633
|
{
|