@velora-dex/widget 0.8.0 → 0.8.1
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/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts +1 -0
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js +30 -16
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js +61 -53
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Button/RefreshButton.d.ts +3 -0
- package/dist/components/widget/Button/RefreshButton.d.ts.map +1 -0
- package/dist/components/widget/Button/RefreshButton.js +28 -0
- package/dist/components/widget/Button/RefreshButton.js.map +1 -0
- package/dist/components/widget/Button/types.d.ts +7 -0
- package/dist/components/widget/Button/types.d.ts.map +1 -0
- package/dist/components/widget/CompareQuotes/CompareQuotes.d.ts.map +1 -1
- package/dist/components/widget/CompareQuotes/CompareQuotes.js +67 -73
- package/dist/components/widget/CompareQuotes/CompareQuotes.js.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.d.ts.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.js +3 -2
- package/dist/components/widget/Dropdown/DropdownWithItems.js.map +1 -1
- package/dist/components/widget/Dropdown/types.d.ts +1 -1
- package/dist/components/widget/Dropdown/types.d.ts.map +1 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts +4 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts.map +1 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js +51 -28
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/state/configAtom.js +2 -2
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.d.ts +7 -1
- package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.js +1 -1
- package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.js +1 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +37 -31
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/twap/useTwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/twap/useTwapDetailsListProps.js +36 -31
- package/dist/core/twap/useTwapDetailsListProps.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -7
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +28 -24
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/lib/tradeMode.d.ts +1 -0
- package/dist/lib/tradeMode.d.ts.map +1 -1
- package/dist/lib/tradeMode.js +4 -1
- package/dist/lib/tradeMode.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ export declare function isMetaMaskProvider(provider: EIP1193Provider & {
|
|
|
10
10
|
isMetaMask: true;
|
|
11
11
|
isConnected: () => boolean;
|
|
12
12
|
} & Partial<Record<ProvFlags, boolean>>;
|
|
13
|
+
export declare function isMetaMaskProviderThroughWalletConnect(provider: EIP1193Provider): boolean;
|
|
13
14
|
export declare function prepareInjectedParamsForMetamask(provider: EIP1193Provider, logger?: LoggerInstance): InjectedExternalConnectorParameters | null;
|
|
14
15
|
export {};
|
|
15
16
|
//# sourceMappingURL=metamaskProviderWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metamaskProviderWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/metamaskProviderWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,MAAM,CAAC;AAC7D,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"metamaskProviderWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/metamaskProviderWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,MAAM,CAAC;AAC7D,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,QAAA,MAAM,aAAa,uTAoBT,CAAC;AAEX,KAAK,SAAS,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,GAAG;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GACtC,QAAQ,IAAI,eAAe,GAAG;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAOtC;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,eAAe,GACxB,OAAO,CAaT;AAkDD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,cAAc,GACtB,mCAAmC,GAAG,IAAI,CAoB5C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EXTERNAL_CONNECTOR_ID as e } from "./constants.js";
|
|
2
|
+
import { getWalletConnectMetadata as t, isWConnectProvider as n } from "../ConnectWallets/walletIcons.js";
|
|
2
3
|
//#region src/components/web3/ConnectExternalProvider/metamaskProviderWrapper.ts
|
|
3
|
-
var
|
|
4
|
+
var r = [
|
|
4
5
|
"isApexWallet",
|
|
5
6
|
"isAvalanche",
|
|
6
7
|
"isBitKeep",
|
|
@@ -21,27 +22,37 @@ var t = [
|
|
|
21
22
|
"isZerion",
|
|
22
23
|
"isBraveWallet"
|
|
23
24
|
];
|
|
24
|
-
function
|
|
25
|
-
return !(!e.isMetaMask || typeof e.isConnected != "function" ||
|
|
25
|
+
function i(e) {
|
|
26
|
+
return !(!e.isMetaMask || typeof e.isConnected != "function" || r.some((t) => e[t]));
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
-
if (n(e))
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
function a(e) {
|
|
29
|
+
if (!n(e)) return !1;
|
|
30
|
+
let r = t(e);
|
|
31
|
+
return r ? /MetaMask/i.test(r.name) : !1;
|
|
32
|
+
}
|
|
33
|
+
function o(e) {
|
|
34
|
+
let t = !1;
|
|
35
|
+
if (i(e) || (t = a(e))) {
|
|
36
|
+
let n = (async (n) => {
|
|
37
|
+
if (l(n)) throw Error("Interrupt revoking permissions in MetaMask");
|
|
38
|
+
if (t && c(n)) try {
|
|
39
|
+
let t = await e.request({ method: "eth_accounts" });
|
|
40
|
+
if (t.length > 0) return t;
|
|
41
|
+
} catch {}
|
|
42
|
+
return await e.request(n);
|
|
43
|
+
}), r = e.on?.bind(e), i = e.removeListener?.bind(e);
|
|
33
44
|
return {
|
|
34
45
|
...e,
|
|
35
|
-
request:
|
|
36
|
-
on:
|
|
37
|
-
removeListener:
|
|
46
|
+
request: n,
|
|
47
|
+
on: r,
|
|
48
|
+
removeListener: i
|
|
38
49
|
};
|
|
39
50
|
}
|
|
40
51
|
return null;
|
|
41
52
|
}
|
|
42
|
-
function
|
|
53
|
+
function s(t, n) {
|
|
43
54
|
try {
|
|
44
|
-
let n =
|
|
55
|
+
let n = o(t);
|
|
45
56
|
return n === null ? null : {
|
|
46
57
|
shimDisconnect: !1,
|
|
47
58
|
target: {
|
|
@@ -54,10 +65,13 @@ function i(t, n) {
|
|
|
54
65
|
return n?.error("Failed to prepare injected params for MetaMask", e), null;
|
|
55
66
|
}
|
|
56
67
|
}
|
|
57
|
-
function
|
|
68
|
+
function c(e) {
|
|
69
|
+
return e.method === "eth_requestAccounts";
|
|
70
|
+
}
|
|
71
|
+
function l(e) {
|
|
58
72
|
return e.method === "wallet_revokePermissions" && Array.isArray(e.params) && e.params[0]?.eth_accounts;
|
|
59
73
|
}
|
|
60
74
|
//#endregion
|
|
61
|
-
export {
|
|
75
|
+
export { s as prepareInjectedParamsForMetamask };
|
|
62
76
|
|
|
63
77
|
//# sourceMappingURL=metamaskProviderWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metamaskProviderWrapper.js","names":["EIP1193Provider","WalletRpcSchema","EXTERNAL_CONNECTOR_ID","InjectedExternalConnectorParameters","LoggerInstance","providerFlags","const","ProvFlags","isMetaMaskProvider","provider","isMetaMask","isConnected","Partial","Record","some","flag","wrapMetamaskExternalProvider","request","args","isRevokeAccountPermissionsCall","Error","result","on","bind","removeListener","prepareInjectedParamsForMetamask","logger","wrappedProvider","shimDisconnect","target","id","
|
|
1
|
+
{"version":3,"file":"metamaskProviderWrapper.js","names":["EIP1193Provider","WalletRpcSchema","EXTERNAL_CONNECTOR_ID","InjectedExternalConnectorParameters","LoggerInstance","getWalletConnectMetadata","isWConnectProvider","providerFlags","const","ProvFlags","isMetaMaskProvider","provider","isMetaMask","isConnected","Partial","Record","some","flag","isMetaMaskProviderThroughWalletConnect","isWConnect","metadata","test","name","wrapMetamaskExternalProvider","isMMaskThroughWConnect","request","args","isRevokeAccountPermissionsCall","Error","isRequestAccountsCall","accounts","method","length","result","on","bind","removeListener","prepareInjectedParamsForMetamask","logger","wrappedProvider","shimDisconnect","target","id","error","RevokeAccountsPermissionsArgs","Extract","Method","RequestAccountsArgs","params","Array","isArray","eth_accounts"],"sources":["../../../../src/components/web3/ConnectExternalProvider/metamaskProviderWrapper.ts"],"sourcesContent":["import type { EIP1193Provider, WalletRpcSchema } from \"viem\";\nimport {\n EXTERNAL_CONNECTOR_ID,\n type InjectedExternalConnectorParameters,\n} from \"./constants\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport {\n getWalletConnectMetadata,\n isWConnectProvider,\n} from \"../ConnectWallets/walletIcons\";\n// flag list from wagmi/connectors/injected\nconst providerFlags = [\n \"isApexWallet\",\n \"isAvalanche\",\n \"isBitKeep\",\n \"isBlockWallet\",\n \"isKuCoinWallet\",\n \"isMathWallet\",\n \"isOkxWallet\",\n \"isOKExWallet\",\n \"isOneInchIOSWallet\",\n \"isOneInchAndroidWallet\",\n \"isOpera\",\n \"isPhantom\",\n \"isPortal\",\n \"isRabby\",\n \"isTokenPocket\",\n \"isTokenary\",\n \"isUniswapWallet\",\n \"isZerion\",\n \"isBraveWallet\",\n] as const;\n\ntype ProvFlags = (typeof providerFlags)[number];\n\nexport function isMetaMaskProvider(\n provider: EIP1193Provider & {\n isMetaMask?: boolean;\n isConnected?: () => boolean;\n } & Partial<Record<ProvFlags, boolean>>\n): provider is EIP1193Provider & {\n isMetaMask: true;\n isConnected: () => boolean;\n} & Partial<Record<ProvFlags, boolean>> {\n if (!provider.isMetaMask) return false;\n if (typeof provider.isConnected !== \"function\") return false;\n\n // a provider that pretends to be MetaMask but has one of the flags is not MetaMask\n if (providerFlags.some((flag) => provider[flag])) return false;\n return true;\n}\n\nexport function isMetaMaskProviderThroughWalletConnect(\n provider: EIP1193Provider\n): boolean {\n const isWConnect = isWConnectProvider(provider);\n\n if (!isWConnect) {\n return false;\n }\n const metadata = getWalletConnectMetadata(provider);\n if (!metadata) {\n return false;\n }\n\n const isMetaMask = /MetaMask/i.test(metadata.name);\n return isMetaMask;\n}\n\n// workaround to avoid revoking permissions in MetaMask, which causes all subsequent wallet_requestAccounts to prompt Connect in the Wallet\n// returns null if the provider is not MetaMask\nfunction wrapMetamaskExternalProvider(\n provider: EIP1193Provider\n): EIP1193Provider | null {\n let isMMaskThroughWConnect = false;\n\n if (\n isMetaMaskProvider(provider) ||\n (isMMaskThroughWConnect = isMetaMaskProviderThroughWalletConnect(provider))\n ) {\n const request = (async (args) => {\n if (isRevokeAccountPermissionsCall(args)) {\n // avoid revoking permissions in MetaMask, which causes all subsequent wallet_requestAccounts to prompt Connect in the Wallet\n throw new Error(\"Interrupt revoking permissions in MetaMask\");\n }\n // MetaMask through WalletConnect prompts the user to connect on each eth_requestAccounts request.\n // External provider is assumed to already be (or will be) connected in the integrating App.\n // injected() connector inside Widget will trigger requestAccount once more and cause another prompt,\n // so we try to get accounts without prompting first, \n // and only if there are no accounts we proceed with the eth_requestAccounts call that triggers the prompt.\n if (isMMaskThroughWConnect && isRequestAccountsCall(args)) {\n try {\n const accounts = await provider.request({ method: \"eth_accounts\" });\n if (accounts.length > 0) {\n return accounts;\n }\n } catch {\n // ignore\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = await provider.request(args as any);\n return result;\n }) as typeof provider.request;\n\n const on = provider.on?.bind(provider);\n const removeListener = provider.removeListener?.bind(provider);\n return {\n ...provider,\n request,\n on,\n removeListener,\n };\n }\n return null;\n}\n\nexport function prepareInjectedParamsForMetamask(\n provider: EIP1193Provider,\n logger?: LoggerInstance\n): InjectedExternalConnectorParameters | null {\n try {\n const wrappedProvider = wrapMetamaskExternalProvider(provider);\n if (wrappedProvider === null) {\n return null;\n }\n return {\n // shimDisconnect=false avoids wallet_requestPermissions call in MetaMask that always prompts Connect in the Wallet,\n // even if permissions weren't revoked between calls\n shimDisconnect: false,\n target: {\n id: EXTERNAL_CONNECTOR_ID,\n name: \"External\",\n provider: wrappedProvider,\n },\n };\n } catch (error) {\n logger?.error(\"Failed to prepare injected params for MetaMask\", error);\n return null;\n }\n}\n\ntype RevokeAccountsPermissionsArgs = Extract<\n WalletRpcSchema[number],\n { Method: \"wallet_revokePermissions\" }\n>;\n\ntype RequestAccountsArgs = Extract<\n WalletRpcSchema[number],\n { Method: \"eth_requestAccounts\" }\n>;\n\nfunction isRequestAccountsCall(args: {\n method: string;\n params?: unknown;\n}): args is {\n method: RequestAccountsArgs[\"Method\"];\n params: RequestAccountsArgs[\"Parameters\"];\n} {\n return args.method === \"eth_requestAccounts\";\n}\n\nfunction isRevokeAccountPermissionsCall(args: {\n method: string;\n params?: unknown;\n}): args is {\n method: RevokeAccountsPermissionsArgs[\"Method\"];\n params: RevokeAccountsPermissionsArgs[\"Parameters\"];\n} {\n return (\n args.method === \"wallet_revokePermissions\" &&\n Array.isArray(args.params) &&\n args.params[0]?.eth_accounts\n );\n}\n"],"mappings":";;;AAWA,IAAMO,IAAgB;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAID,SAAgBG,EACdC,GAOsC;AAMtC,QADA,EAJI,CAACA,EAASC,cACV,OAAOD,EAASE,eAAgB,cAGhCN,EAAcS,MAAMC,MAASN,EAASM,GAAM;;AAIlD,SAAgBC,EACdP,GACS;AAGT,KAAI,CAFeL,EAAmBK,EAAS,CAG7C,QAAO;CAET,IAAMS,IAAWf,EAAyBM,EAAS;AAMnD,QALKS,IAIc,YAAYC,KAAKD,EAASE,KAAK,GAHzC;;AASX,SAASC,EACPZ,GACwB;CACxB,IAAIa,IAAyB;AAE7B,KACEd,EAAmBC,EAAS,KAC3Ba,IAAyBN,EAAuCP,EAAS,GAC1E;EACA,IAAMc,KAAW,OAAOC,MAAS;AAC/B,OAAIC,EAA+BD,EAAK,CAEtC,OAAUE,MAAM,6CAA6C;AAO/D,OAAIJ,KAA0BK,EAAsBH,EAAK,CACvD,KAAI;IACF,IAAMI,IAAW,MAAMnB,EAASc,QAAQ,EAAEM,QAAQ,gBAAgB,CAAC;AACnE,QAAID,EAASE,SAAS,EACpB,QAAOF;WAEH;AAMV,UADe,MAAMnB,EAASc,QAAQC,EAAY;MAI9CQ,IAAKvB,EAASuB,IAAIC,KAAKxB,EAAS,EAChCyB,IAAiBzB,EAASyB,gBAAgBD,KAAKxB,EAAS;AAC9D,SAAO;GACL,GAAGA;GACHc;GACAS;GACAE;GACD;;AAEH,QAAO;;AAGT,SAAgBC,EACd1B,GACA2B,GAC4C;AAC5C,KAAI;EACF,IAAMC,IAAkBhB,EAA6BZ,EAAS;AAI9D,SAHI4B,MAAoB,OACf,OAEF;GAGLC,gBAAgB;GAChBC,QAAQ;IACNC,IAAIxC;IACJoB,MAAM;IACNX,UAAU4B;IACZ;GACD;UACMI,GAAO;AAEd,SADAL,GAAQK,MAAM,kDAAkDA,EAAM,EAC/D;;;AAcX,SAASd,EAAsBH,GAM7B;AACA,QAAOA,EAAKK,WAAW;;AAGzB,SAASJ,EAA+BD,GAMtC;AACA,QACEA,EAAKK,WAAW,8BAChBkB,MAAMC,QAAQxB,EAAKsB,OAAO,IAC1BtB,EAAKsB,OAAO,IAAIG"}
|
|
@@ -128,6 +128,6 @@ function D(e) {
|
|
|
128
128
|
return e.type === g.type;
|
|
129
129
|
}
|
|
130
130
|
//#endregion
|
|
131
|
-
export { x as getWalletConnectMetadata, y as getWalletIcon, E as getWalletMetadata, b as getWalletName, D as isWalletConnectConnector, w as useWalletMetadata, C as useWatchWalletMetadata };
|
|
131
|
+
export { x as getWalletConnectMetadata, y as getWalletIcon, E as getWalletMetadata, b as getWalletName, S as isWConnectProvider, D as isWalletConnectConnector, w as useWalletMetadata, C as useWatchWalletMetadata };
|
|
132
132
|
|
|
133
133
|
//# sourceMappingURL=walletIcons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradeModeSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/AppHeader/TradeModeSwitcher.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TradeModeSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/AppHeader/TradeModeSwitcher.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,iBAAiB,GAAI,gBAAgB;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,4CAqCzE,CAAC"}
|
|
@@ -1,87 +1,95 @@
|
|
|
1
1
|
import { useAtomValue as e, useSetAtom as t } from "../../../core/store.js";
|
|
2
2
|
import { cn as n } from "../../../lib/utils/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { sortTradeModes as r } from "../../../lib/tradeMode.js";
|
|
4
|
+
import { availableTradeModesAtom as i, enabledTradeModesFromConfigAtom as a } from "../../../core/state/enabledTradeModesAtom.js";
|
|
5
|
+
import { tradeModeAtom as o, userTradeModeAtom as s } from "../../../core/state/tradeModeAtom.js";
|
|
6
|
+
import { Button as c } from "../../ui/button.js";
|
|
7
|
+
import { DropdownWithItems as l } from "../Dropdown/DropdownWithItems.js";
|
|
8
|
+
import { ChevronIcon as u } from "../Icon/ChevronIcon.js";
|
|
9
|
+
import { c as d } from "react-compiler-runtime";
|
|
10
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
10
11
|
//#region src/components/widget/AppHeader/TradeModeSwitcher.tsx
|
|
11
|
-
var
|
|
12
|
+
var m = {
|
|
12
13
|
swap: "Swap",
|
|
13
14
|
limit: "Limit",
|
|
14
15
|
otc: "OTC",
|
|
15
16
|
twap: "TWAP"
|
|
16
|
-
},
|
|
17
|
-
let
|
|
18
|
-
|
|
17
|
+
}, h = (n) => {
|
|
18
|
+
let c = d(22), { asDropdown: u } = n, p = t(s), h = e(o), v = e(a), y = e(i), b;
|
|
19
|
+
c[0] === y ? b = c[1] : (b = new Set(y), c[0] = y, c[1] = b);
|
|
20
|
+
let x = b, S = v.length === 1;
|
|
21
|
+
if (S) {
|
|
19
22
|
let e;
|
|
20
|
-
return
|
|
21
|
-
tradeMode:
|
|
22
|
-
isDisabled:
|
|
23
|
-
}),
|
|
23
|
+
return c[2] !== h || c[3] !== S ? (e = /* @__PURE__ */ f(g, {
|
|
24
|
+
tradeMode: h,
|
|
25
|
+
isDisabled: S
|
|
26
|
+
}), c[2] = h, c[3] = S, c[4] = e) : e = c[4], e;
|
|
24
27
|
}
|
|
25
|
-
let
|
|
26
|
-
if (
|
|
28
|
+
let C;
|
|
29
|
+
if (c[5] !== x || c[6] !== h || c[7] !== v || c[8] !== p) {
|
|
30
|
+
let e = Array.from(new Set([h, ...v])), t;
|
|
31
|
+
c[10] !== x || c[11] !== h || c[12] !== p ? (t = (e) => ({
|
|
32
|
+
label: m[e],
|
|
33
|
+
onSelect: () => p(e),
|
|
34
|
+
selected: h === e,
|
|
35
|
+
disabled: !x.has(e)
|
|
36
|
+
}), c[10] = x, c[11] = h, c[12] = p, c[13] = t) : t = c[13], C = e.sort(r).map(t), c[5] = x, c[6] = h, c[7] = v, c[8] = p, c[9] = C;
|
|
37
|
+
} else C = c[9];
|
|
38
|
+
let w = C;
|
|
39
|
+
if (u) {
|
|
27
40
|
let e;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}), o[7] = d, o[8] = p, o[9] = e) : e = o[9], v = g.map(e), o[3] = g, o[4] = d, o[5] = p, o[6] = v;
|
|
33
|
-
} else v = o[6];
|
|
34
|
-
let y = v;
|
|
35
|
-
if (c) {
|
|
36
|
-
let e;
|
|
37
|
-
o[10] !== _ || o[11] !== p ? (e = /* @__PURE__ */ u(m, {
|
|
38
|
-
tradeMode: p,
|
|
39
|
-
isDisabled: _
|
|
40
|
-
}), o[10] = _, o[11] = p, o[12] = e) : e = o[12];
|
|
41
|
+
c[14] !== h || c[15] !== S ? (e = /* @__PURE__ */ f(g, {
|
|
42
|
+
tradeMode: h,
|
|
43
|
+
isDisabled: S
|
|
44
|
+
}), c[14] = h, c[15] = S, c[16] = e) : e = c[16];
|
|
41
45
|
let t;
|
|
42
|
-
return
|
|
46
|
+
return c[17] !== w || c[18] !== e ? (t = /* @__PURE__ */ f(l, {
|
|
43
47
|
menuTrigger: e,
|
|
44
|
-
items:
|
|
45
|
-
}),
|
|
48
|
+
items: w
|
|
49
|
+
}), c[17] = w, c[18] = e, c[19] = t) : t = c[19], t;
|
|
46
50
|
}
|
|
47
|
-
let
|
|
48
|
-
return
|
|
49
|
-
},
|
|
50
|
-
let t =
|
|
51
|
+
let T;
|
|
52
|
+
return c[20] === w ? T = c[21] : (T = /* @__PURE__ */ f(_, { tradeModeItems: w }), c[20] = w, c[21] = T), T;
|
|
53
|
+
}, g = (e) => {
|
|
54
|
+
let t = d(8), { tradeMode: r, isDisabled: i } = e, a = !i, o;
|
|
51
55
|
t[0] === a ? o = t[1] : (o = n("flex items-center gap-2 font-medium text-contrast-3 dark:text-contrast-8", { "cursor-pointer": a }), t[0] = a, t[1] = o);
|
|
52
|
-
let s =
|
|
53
|
-
t[2] === i ?
|
|
56
|
+
let s = m[r], c;
|
|
57
|
+
t[2] === i ? c = t[3] : (c = !i && /* @__PURE__ */ f(u, {
|
|
54
58
|
width: 8,
|
|
55
59
|
className: "pt-[2px] dark:text-contrast-5"
|
|
56
|
-
}), t[2] = i, t[3] =
|
|
57
|
-
let
|
|
58
|
-
return t[4] !== o || t[5] !== s || t[6] !==
|
|
60
|
+
}), t[2] = i, t[3] = c);
|
|
61
|
+
let l;
|
|
62
|
+
return t[4] !== o || t[5] !== s || t[6] !== c ? (l = /* @__PURE__ */ p("div", {
|
|
59
63
|
className: o,
|
|
60
64
|
children: [
|
|
61
65
|
s,
|
|
62
66
|
" ",
|
|
63
|
-
|
|
67
|
+
c
|
|
64
68
|
]
|
|
65
|
-
}), t[4] = o, t[5] = s, t[6] =
|
|
66
|
-
},
|
|
67
|
-
let t =
|
|
68
|
-
t[0] === n ? r = t[1] : (r = n.map(
|
|
69
|
+
}), t[4] = o, t[5] = s, t[6] = c, t[7] = l) : l = t[7], l;
|
|
70
|
+
}, _ = (e) => {
|
|
71
|
+
let t = d(4), { tradeModeItems: n } = e, r;
|
|
72
|
+
t[0] === n ? r = t[1] : (r = n.map(v), t[0] = n, t[1] = r);
|
|
69
73
|
let i;
|
|
70
|
-
return t[2] === r ? i = t[3] : (i = /* @__PURE__ */
|
|
74
|
+
return t[2] === r ? i = t[3] : (i = /* @__PURE__ */ f("div", {
|
|
71
75
|
className: "flex items-center gap-6",
|
|
72
76
|
children: r
|
|
73
77
|
}), t[2] = r, t[3] = i), i;
|
|
74
78
|
};
|
|
75
|
-
function
|
|
76
|
-
let { selected: t, label: r, onSelect: i } = e;
|
|
77
|
-
return /* @__PURE__ */
|
|
79
|
+
function v(e) {
|
|
80
|
+
let { selected: t, label: r, onSelect: i, disabled: a } = e;
|
|
81
|
+
return /* @__PURE__ */ f(c, {
|
|
78
82
|
variant: "ghost",
|
|
79
|
-
className: n("cursor-pointer text-contrast-5 font-medium text-base p-0 hover:bg-transparent dark:hover:bg-transparent h-min", {
|
|
83
|
+
className: n("cursor-pointer text-contrast-5 font-medium text-base p-0 hover:bg-transparent dark:hover:bg-transparent h-min", {
|
|
84
|
+
"text-contrast-3 dark:text-contrast-9": t,
|
|
85
|
+
"hover:text-contrast-5": a
|
|
86
|
+
}),
|
|
80
87
|
onClick: i,
|
|
88
|
+
disabled: a,
|
|
81
89
|
children: r
|
|
82
90
|
}, r);
|
|
83
91
|
}
|
|
84
92
|
//#endregion
|
|
85
|
-
export {
|
|
93
|
+
export { h as TradeModeSwitcher };
|
|
86
94
|
|
|
87
95
|
//# sourceMappingURL=TradeModeSwitcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradeModeSwitcher.js","names":["tradeModeAtom","userTradeModeAtom","TradeMode","useAtomValue","useSetAtom","DropdownWithItems","ChevronIcon","DropdownItem","
|
|
1
|
+
{"version":3,"file":"TradeModeSwitcher.js","names":["tradeModeAtom","userTradeModeAtom","TradeMode","useAtomValue","useSetAtom","DropdownWithItems","ChevronIcon","DropdownItem","availableTradeModesAtom","enabledTradeModesFromConfigAtom","cn","Button","sortTradeModes","tradeModeLabel","Record","swap","limit","otc","twap","TradeModeSwitcher","t0","$","_c","asDropdown","setTradeMode","currentTradeMode","enabledTradeModesFromConfig","availableTradeModes","t1","Set","availableTradeModesSet","isDisabled","length","t2","tradeModesToShow","Array","from","t3","mode","label","onSelect","selected","disabled","has","sort","map","items","t4","MenuTrigger","tradeMode","t5","RelaxedDropdownItem","Omit","TradeModesRow","tradeModeItems","_temp"],"sources":["../../../../src/components/widget/AppHeader/TradeModeSwitcher.tsx"],"sourcesContent":["import {\n tradeModeAtom,\n userTradeModeAtom,\n type TradeMode,\n} from \"@/core/state/tradeModeAtom\";\nimport { useAtomValue, useSetAtom } from \"@/core/store\";\nimport { DropdownWithItems } from \"../Dropdown/DropdownWithItems\";\nimport { ChevronIcon } from \"../Icon/ChevronIcon\";\nimport type { DropdownItem } from \"../Dropdown/types\";\nimport {\n availableTradeModesAtom,\n enabledTradeModesFromConfigAtom,\n} from \"@/core/state/enabledTradeModesAtom\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\nimport { sortTradeModes } from \"@/lib/tradeMode\";\n\nconst tradeModeLabel: Record<TradeMode, string> = {\n swap: \"Swap\",\n limit: \"Limit\",\n otc: \"OTC\",\n twap: \"TWAP\",\n};\n\nexport const TradeModeSwitcher = ({ asDropdown }: { asDropdown?: boolean }) => {\n const setTradeMode = useSetAtom(userTradeModeAtom);\n const currentTradeMode = useAtomValue(tradeModeAtom);\n const enabledTradeModesFromConfig = useAtomValue(\n enabledTradeModesFromConfigAtom\n );\n const availableTradeModes = useAtomValue(availableTradeModesAtom);\n\n const availableTradeModesSet = new Set(availableTradeModes);\n const isDisabled = enabledTradeModesFromConfig.length === 1;\n\n if (isDisabled)\n return <MenuTrigger tradeMode={currentTradeMode} isDisabled={isDisabled} />;\n\n const tradeModesToShow = Array.from(\n new Set([currentTradeMode, ...enabledTradeModesFromConfig])\n ) as typeof enabledTradeModesFromConfig; // inherit NonEmptyArray<TradeMode>\n\n const items = tradeModesToShow.sort(sortTradeModes).map((mode) => ({\n label: tradeModeLabel[mode],\n onSelect: () => setTradeMode(mode),\n selected: currentTradeMode === mode,\n disabled: !availableTradeModesSet.has(mode),\n })) satisfies DropdownItem[];\n\n if (asDropdown) {\n return (\n <DropdownWithItems\n menuTrigger={\n <MenuTrigger tradeMode={currentTradeMode} isDisabled={isDisabled} />\n }\n items={items}\n />\n );\n }\n\n return <TradeModesRow tradeModeItems={items} />;\n};\n\nconst MenuTrigger = ({\n tradeMode,\n isDisabled,\n}: {\n tradeMode: TradeMode;\n isDisabled: boolean;\n}) => {\n return (\n <div\n className={cn(\n \"flex items-center gap-2 font-medium text-contrast-3 dark:text-contrast-8\",\n {\n \"cursor-pointer\": !isDisabled,\n }\n )}\n >\n {tradeModeLabel[tradeMode]}{\" \"}\n {!isDisabled && (\n <ChevronIcon width={8} className=\"pt-[2px] dark:text-contrast-5\" />\n )}\n </div>\n );\n};\n\ntype RelaxedDropdownItem = Omit<DropdownItem, \"label\" | \"onSelect\"> & {\n label: string; // allows to pass key={label}\n onSelect: () => void; // allows to pass onClick={onSelect}\n};\n\nconst TradeModesRow = ({\n tradeModeItems,\n}: {\n tradeModeItems: RelaxedDropdownItem[];\n}) => {\n return (\n <div className=\"flex items-center gap-6\">\n {tradeModeItems.map(({ selected, label, onSelect, disabled }) => (\n <Button\n variant=\"ghost\"\n key={label}\n className={cn(\n \"cursor-pointer text-contrast-5 font-medium text-base p-0 hover:bg-transparent dark:hover:bg-transparent h-min\",\n {\n \"text-contrast-3 dark:text-contrast-9\": selected,\n \"hover:text-contrast-5\": disabled,\n }\n )}\n onClick={onSelect}\n disabled={disabled}\n >\n {label}\n </Button>\n ))}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefreshButton.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Button/RefreshButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,GACR,EAAE,kBAAkB,2CAoBpB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { cn as e } from "../../../lib/utils/index.js";
|
|
2
|
+
import { Button as t } from "../../ui/button.js";
|
|
3
|
+
import { ForwardRef as n } from "../../../assets/refresh.js";
|
|
4
|
+
import { c as r } from "react-compiler-runtime";
|
|
5
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/widget/Button/RefreshButton.tsx
|
|
7
|
+
function a(a) {
|
|
8
|
+
let o = r(15), { onClick: s, disabled: c, animate: l, classes: u, radius: d, asChild: f } = a, p = u?.icon, m;
|
|
9
|
+
o[0] !== l || o[1] !== p ? (m = e("fill-contrast-5 dark:fill-contrast-6", p, { "animate-spin": l }), o[0] = l, o[1] = p, o[2] = m) : m = o[2];
|
|
10
|
+
let h;
|
|
11
|
+
o[3] === m ? h = o[4] : (h = /* @__PURE__ */ i(n, { className: m }), o[3] = m, o[4] = h);
|
|
12
|
+
let g = h, _ = u?.button, v;
|
|
13
|
+
o[5] !== f || o[6] !== g ? (v = f ? /* @__PURE__ */ i("div", { children: g }) : g, o[5] = f, o[6] = g, o[7] = v) : v = o[7];
|
|
14
|
+
let y;
|
|
15
|
+
return o[8] !== f || o[9] !== c || o[10] !== s || o[11] !== d || o[12] !== _ || o[13] !== v ? (y = /* @__PURE__ */ i(t, {
|
|
16
|
+
variant: "ghost",
|
|
17
|
+
onClick: s,
|
|
18
|
+
disabled: c,
|
|
19
|
+
className: _,
|
|
20
|
+
radius: d,
|
|
21
|
+
asChild: f,
|
|
22
|
+
children: v
|
|
23
|
+
}), o[8] = f, o[9] = c, o[10] = s, o[11] = d, o[12] = _, o[13] = v, o[14] = y) : y = o[14], y;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { a as RefreshButton };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=RefreshButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefreshButton.js","names":["Button","cn","ReactComponent","RefreshSVG","RefreshButtonProps","RefreshButton","t0","$","_c","onClick","disabled","animate","classes","radius","asChild","t1","icon","t2","t3","refreshSvg","t4","button","t5","t6"],"sources":["../../../../src/components/widget/Button/RefreshButton.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport { ReactComponent as RefreshSVG } from \"@/assets/refresh.svg\";\nimport type { RefreshButtonProps } from \"./types\";\n\nexport function RefreshButton({\n onClick,\n disabled,\n animate,\n classes,\n radius,\n asChild,\n}: RefreshButtonProps) {\n const refreshSvg = (\n <RefreshSVG\n className={cn(\"fill-contrast-5 dark:fill-contrast-6\", classes?.icon, {\n \"animate-spin\": animate,\n })}\n />\n );\n return (\n <Button\n variant=\"ghost\"\n onClick={onClick}\n disabled={disabled}\n className={classes?.button}\n radius={radius}\n asChild={asChild}\n >\n {asChild ? <div>{refreshSvg}</div> : refreshSvg}\n </Button>\n );\n}\n"],"mappings":";;;;;;AAKA,SAAOK,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAuB,EAAAC,YAAAC,aAAAC,YAAAC,YAAAC,WAAAC,eAAAR,GAU8BS,IAAAH,GAAOI,MAAMC;AAAA,CAAAV,EAAA,OAAAI,KAAAJ,EAAA,OAAAQ,KAAxDE,IAAAhB,EAAG,wCAAwCc,GAAe,EAAA,gBACnDJ,GACjB,CAAC,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAQ,GAAAR,EAAA,KAAAU,KAAAA,IAAAV,EAAA;CAAA,IAAAW;AAAA,CAAAX,EAAA,OAAAU,IACFC,IAAAX,EAAA,MAJFW,IAAA,kBAAC,GAAD,EACa,WAAAD,GAGX,CAAA,EAAAV,EAAA,KAAAU,GAAAV,EAAA,KAAAW;CALJ,IAAAC,IACED,GAWaE,IAAAR,GAAOS,QAAQC;AAAA,CAAAf,EAAA,OAAAO,KAAAP,EAAA,OAAAY,KAIzBG,IAAAR,IAAU,kBAAA,OAAA,EAAA,UAAMK,GAA8B,CAAA,GAA9CA,GAA8CZ,EAAA,KAAAO,GAAAP,EAAA,KAAAY,GAAAZ,EAAA,KAAAe,KAAAA,IAAAf,EAAA;CAAA,IAAAgB;AACxC,QADwChB,EAAA,OAAAO,KAAAP,EAAA,OAAAG,KAAAH,EAAA,QAAAE,KAAAF,EAAA,QAAAM,KAAAN,EAAA,QAAAa,KAAAb,EAAA,QAAAe,KARjDC,IAAA,kBAAC,GAAD;EACU,SAAA;EACCd;EACCC;EACC,WAAAU;EACHP;EACCC;YAERQ;EACM,CAAA,EAAAf,EAAA,KAAAO,GAAAP,EAAA,KAAAG,GAAAH,EAAA,MAAAE,GAAAF,EAAA,MAAAM,GAAAN,EAAA,MAAAa,GAAAb,EAAA,MAAAe,GAAAf,EAAA,MAAAgB,KAAAA,IAAAhB,EAAA,KATTgB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Button } from '../../ui/button';
|
|
2
|
+
import { WithClasses } from '../../../types/withClasses';
|
|
3
|
+
import { ComponentProps } from 'react';
|
|
4
|
+
export type RefreshButtonProps = Pick<ComponentProps<typeof Button>, "onClick" | "disabled" | "radius" | "asChild"> & {
|
|
5
|
+
animate?: boolean;
|
|
6
|
+
} & WithClasses<"button" | "icon">;
|
|
7
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,cAAc,CAAC,OAAO,MAAM,CAAC,EAC7B,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAC9C,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompareQuotes.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/CompareQuotes/CompareQuotes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CompareQuotes.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/CompareQuotes/CompareQuotes.tsx"],"names":[],"mappings":"AAuBA,eAAO,MAAM,mBAAmB,+CAmF/B,CAAC"}
|
|
@@ -1,98 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isBridgePrice as
|
|
3
|
-
import { useWidgetEvents as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { useBridgePreferences as
|
|
8
|
-
import { SettingsButton as
|
|
9
|
-
import { GenericScreen as
|
|
10
|
-
import { useBridgeListItems as
|
|
11
|
-
import { BridgesList as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
1
|
+
import { unorderedShallowEqual as e } from "../../../lib/utils/index.js";
|
|
2
|
+
import { isBridgePrice as t } from "../../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js";
|
|
3
|
+
import { useWidgetEvents as n } from "../../../core/state/widgetEventsAtom.js";
|
|
4
|
+
import { useSetScreen as r } from "../../../core/screen/state/hooks/useSetScreen.js";
|
|
5
|
+
import { useSwapPrices as i } from "../../../hooks/swap/prices/useSwapPrices.js";
|
|
6
|
+
import { RefreshButton as a } from "../Button/RefreshButton.js";
|
|
7
|
+
import { useBridgePreferences as o, useIsNotDefaultBridgePreferences as s } from "../TradeParameters/state/bridgePreferences/useBridgePreferences.js";
|
|
8
|
+
import { SettingsButton as c } from "../SettingsButton/SettingsButton.js";
|
|
9
|
+
import { GenericScreen as l } from "../Screen/GenericScreen.js";
|
|
10
|
+
import { useBridgeListItems as u } from "../BridgeList/hooks.js";
|
|
11
|
+
import { BridgesList as d } from "../BridgeList/BridgesList.js";
|
|
12
|
+
import { c as f } from "react-compiler-runtime";
|
|
13
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
15
14
|
//#region src/components/widget/CompareQuotes/CompareQuotes.tsx
|
|
16
|
-
var
|
|
17
|
-
let
|
|
18
|
-
|
|
19
|
-
let
|
|
20
|
-
|
|
21
|
-
let { displayedBridges:
|
|
22
|
-
|
|
23
|
-
onGoBack:
|
|
24
|
-
initialBridgePreference:
|
|
25
|
-
initialDisabledBridges:
|
|
26
|
-
onClose: (
|
|
27
|
-
|
|
15
|
+
var h = { root: "min-h-[571px]" }, g = { root: "px-6 pb-6 h-[406px] overflow-auto" }, _ = () => {
|
|
16
|
+
let _ = f(33), { delta: v } = i(), { price: y, isFetching: b, refetch: x } = v, { closeScreen: S, showBridgePreferencesScreen: C, showCompareQuotesScreen: w } = r(), { bridgePreference: T, disabledBridges: E, setBridgePreference: D, setDisabledBridges: O } = o(), k = s(), { onSettingsChange: A } = n(), j;
|
|
17
|
+
_[0] === y ? j = _[1] : (j = y && t(y) ? y : void 0, _[0] = y, _[1] = j);
|
|
18
|
+
let M = j, N;
|
|
19
|
+
_[2] === M ? N = _[3] : (N = { bridgePrice: M }, _[2] = M, _[3] = N);
|
|
20
|
+
let { displayedBridges: P, allBridges: F } = u(N), I;
|
|
21
|
+
_[4] !== T || _[5] !== E || _[6] !== A || _[7] !== D || _[8] !== O || _[9] !== C || _[10] !== w ? (I = () => C({
|
|
22
|
+
onGoBack: w,
|
|
23
|
+
initialBridgePreference: T,
|
|
24
|
+
initialDisabledBridges: E,
|
|
25
|
+
onClose: (t) => {
|
|
26
|
+
D(t.bridgePreference), O(t.disabledBridges), (T !== t.bridgePreference || !e(E, t.disabledBridges)) && A?.({ event: {
|
|
28
27
|
name: "Settings:changeBridgePreferences",
|
|
29
28
|
params: {
|
|
30
|
-
bridgePreference:
|
|
31
|
-
disabledBridges:
|
|
29
|
+
bridgePreference: t.bridgePreference,
|
|
30
|
+
disabledBridges: t.disabledBridges
|
|
32
31
|
}
|
|
33
32
|
} });
|
|
34
33
|
}
|
|
35
|
-
}),
|
|
36
|
-
let
|
|
37
|
-
|
|
34
|
+
}), _[4] = T, _[5] = E, _[6] = A, _[7] = D, _[8] = O, _[9] = C, _[10] = w, _[11] = I) : I = _[11];
|
|
35
|
+
let L = I, R;
|
|
36
|
+
_[12] === x ? R = _[13] : (R = () => x({ cancelRefetch: !1 }), _[12] = x, _[13] = R);
|
|
37
|
+
let z;
|
|
38
|
+
_[14] !== b || _[15] !== R ? (z = /* @__PURE__ */ p(a, {
|
|
39
|
+
onClick: R,
|
|
40
|
+
disabled: b,
|
|
41
|
+
animate: b
|
|
42
|
+
}), _[14] = b, _[15] = R, _[16] = z) : z = _[16];
|
|
43
|
+
let B;
|
|
44
|
+
_[17] !== k || _[18] !== L ? (B = /* @__PURE__ */ p(c, {
|
|
45
|
+
onClick: L,
|
|
46
|
+
showEllipseIcon: k
|
|
47
|
+
}), _[17] = k, _[18] = L, _[19] = B) : B = _[19];
|
|
38
48
|
let V;
|
|
39
|
-
|
|
40
|
-
let H;
|
|
41
|
-
y[16] === V ? H = y[17] : (H = /* @__PURE__ */ h(p, { className: V }), y[16] = V, y[17] = H);
|
|
42
|
-
let U;
|
|
43
|
-
y[18] !== S || y[19] !== B || y[20] !== H ? (U = /* @__PURE__ */ h(i, {
|
|
44
|
-
variant: "ghost",
|
|
45
|
-
onClick: B,
|
|
46
|
-
disabled: S,
|
|
47
|
-
children: H
|
|
48
|
-
}), y[18] = S, y[19] = B, y[20] = H, y[21] = U) : U = y[21];
|
|
49
|
-
let W;
|
|
50
|
-
y[22] !== j || y[23] !== z ? (W = /* @__PURE__ */ h(l, {
|
|
51
|
-
onClick: z,
|
|
52
|
-
showEllipseIcon: j
|
|
53
|
-
}), y[22] = j, y[23] = z, y[24] = W) : W = y[24];
|
|
54
|
-
let G;
|
|
55
|
-
y[25] !== U || y[26] !== W ? (G = /* @__PURE__ */ g("div", {
|
|
49
|
+
_[20] !== z || _[21] !== B ? (V = /* @__PURE__ */ m("div", {
|
|
56
50
|
className: "flex items-center gap-3.5",
|
|
57
|
-
children: [
|
|
58
|
-
}),
|
|
59
|
-
let
|
|
60
|
-
|
|
51
|
+
children: [z, B]
|
|
52
|
+
}), _[20] = z, _[21] = B, _[22] = V) : V = _[22];
|
|
53
|
+
let H;
|
|
54
|
+
_[23] === Symbol.for("react.memo_cache_sentinel") ? (H = /* @__PURE__ */ p("div", {
|
|
61
55
|
className: "px-6 pb-4 text-contrast-5 text-sm leading-5",
|
|
62
56
|
children: "Our quotes are ranked by expected output, accounting for execution accuracy, cost, and speed."
|
|
63
|
-
}),
|
|
64
|
-
let
|
|
65
|
-
|
|
66
|
-
bridges:
|
|
67
|
-
totalLength:
|
|
68
|
-
isLoading:
|
|
57
|
+
}), _[23] = H) : H = _[23];
|
|
58
|
+
let U;
|
|
59
|
+
_[24] !== F.length || _[25] !== P || _[26] !== b ? (U = /* @__PURE__ */ p(d, {
|
|
60
|
+
bridges: P,
|
|
61
|
+
totalLength: F.length,
|
|
62
|
+
isLoading: b,
|
|
69
63
|
showViewAllButton: !1,
|
|
70
|
-
classes:
|
|
71
|
-
}),
|
|
72
|
-
let
|
|
73
|
-
|
|
64
|
+
classes: g
|
|
65
|
+
}), _[24] = F.length, _[25] = P, _[26] = b, _[27] = U) : U = _[27];
|
|
66
|
+
let W;
|
|
67
|
+
_[28] === Symbol.for("react.memo_cache_sentinel") ? (W = /* @__PURE__ */ m("div", {
|
|
74
68
|
className: "text-contrast-5 text-sm text-center leading-5 pb-6",
|
|
75
69
|
children: [
|
|
76
70
|
"Refreshing quotes every ",
|
|
77
71
|
5,
|
|
78
72
|
" seconds"
|
|
79
73
|
]
|
|
80
|
-
}),
|
|
81
|
-
let
|
|
82
|
-
return
|
|
74
|
+
}), _[28] = W) : W = _[28];
|
|
75
|
+
let G;
|
|
76
|
+
return _[29] !== S || _[30] !== V || _[31] !== U ? (G = /* @__PURE__ */ m(l, {
|
|
83
77
|
showBackButton: !0,
|
|
84
78
|
title: "Compare Quotes",
|
|
85
|
-
onGoBack:
|
|
86
|
-
classes:
|
|
87
|
-
closeButtonReplacement:
|
|
79
|
+
onGoBack: S,
|
|
80
|
+
classes: h,
|
|
81
|
+
closeButtonReplacement: V,
|
|
88
82
|
children: [
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
83
|
+
H,
|
|
84
|
+
U,
|
|
85
|
+
W
|
|
92
86
|
]
|
|
93
|
-
}),
|
|
87
|
+
}), _[29] = S, _[30] = V, _[31] = U, _[32] = G) : G = _[32], G;
|
|
94
88
|
};
|
|
95
89
|
//#endregion
|
|
96
|
-
export {
|
|
90
|
+
export { _ as CompareQuotesScreen };
|
|
97
91
|
|
|
98
92
|
//# sourceMappingURL=CompareQuotes.js.map
|