@velora-dex/widget 0.2.0 → 0.2.2
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/README.md +3 -3
- package/dist/assets/price-impact.svg.js +12 -0
- package/dist/assets/price-impact.svg.js.map +1 -0
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/web3/AccountButton.d.ts.map +1 -1
- package/dist/components/web3/AccountButton.js +24 -27
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +103 -133
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +39 -33
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +70 -64
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +39 -21
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +119 -54
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +5 -0
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.d.ts.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js +4 -4
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +21 -18
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/types.d.ts +1 -0
- package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js +33 -39
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts +6 -2
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +117 -109
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SelectToken/types.d.ts +3 -1
- package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +102 -141
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.js +48 -26
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/Toaster.js +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +1 -0
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +90 -50
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +98 -90
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +2 -2
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -14
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/types.d.ts +15 -0
- package/dist/core/inputs/state/types.d.ts.map +1 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +5 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts +7 -0
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +167 -23
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js +3 -1
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js +42 -16
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +3 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +4 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +4 -2
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +55 -41
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/fees.d.ts.map +1 -1
- package/dist/core/swapDetails/fees.js +4 -2
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.d.ts.map +1 -1
- package/dist/core/swapDetails/orderRouting.js +7 -3
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.d.ts +3 -1
- package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
- package/dist/core/swapDetails/priceImpact.js +6 -2
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +155 -42
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.d.ts.map +1 -1
- package/dist/core/swapDetails/youGet.js +5 -2
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/core/types.d.ts +4 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/events/getters/limit.d.ts.map +1 -1
- package/dist/events/getters/limit.js +3 -2
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/getters/otc.d.ts.map +1 -1
- package/dist/events/getters/otc.js +3 -2
- package/dist/events/getters/otc.js.map +1 -1
- package/dist/events/getters/swap.d.ts.map +1 -1
- package/dist/events/getters/swap.js +3 -2
- package/dist/events/getters/swap.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js +2 -0
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/events/types/common.d.ts +3 -2
- package/dist/events/types/common.d.ts.map +1 -1
- package/dist/events/types/connectWallet.d.ts +2 -0
- package/dist/events/types/connectWallet.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +5 -2
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +4 -4
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +2 -2
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts +2 -2
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js +2 -2
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.d.ts +5 -5
- package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/useBridgedDeposit.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts +2 -2
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +15 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts +7 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +81 -67
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/utils/tradeFlow.d.ts +3 -0
- package/dist/lib/utils/tradeFlow.d.ts.map +1 -0
- package/dist/lib/utils/tradeFlow.js +12 -0
- package/dist/lib/utils/tradeFlow.js.map +1 -0
- package/dist/lib/utils/useDateNow.d.ts +2 -0
- package/dist/lib/utils/useDateNow.d.ts.map +1 -0
- package/dist/lib/utils/useDateNow.js +7 -0
- package/dist/lib/utils/useDateNow.js.map +1 -0
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +20 -17
- package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js +6 -23
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
- package/package.json +8 -7
- package/dist/components/widget/TokenInput/EmptyInput.js +0 -58
- package/dist/components/widget/TokenInput/EmptyInput.js.map +0 -1
|
@@ -5,44 +5,62 @@ import { TokenListBody } from './TokenListBody.js';
|
|
|
5
5
|
import { useCombineTokensWithFetched } from '../../../../../hooks/tokens/data/useCombineTokensWithFetched.js';
|
|
6
6
|
|
|
7
7
|
const RegularTokenList = (t0) => {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(13);
|
|
9
9
|
const {
|
|
10
10
|
tokenFilter,
|
|
11
11
|
onSelectToken,
|
|
12
12
|
forcedChainId,
|
|
13
|
+
selectableChains,
|
|
13
14
|
className,
|
|
14
|
-
withETH
|
|
15
|
+
withETH,
|
|
16
|
+
singleChainTokensOnly
|
|
15
17
|
} = t0;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
const t1 = !singleChainTokensOnly;
|
|
19
|
+
let t2;
|
|
20
|
+
if ($[0] !== forcedChainId || $[1] !== t1 || $[2] !== tokenFilter || $[3] !== withETH) {
|
|
21
|
+
t2 = {
|
|
19
22
|
tokenFilter,
|
|
20
23
|
forcedChainId,
|
|
21
|
-
searchOnOtherChainsIfNothingFound:
|
|
24
|
+
searchOnOtherChainsIfNothingFound: t1,
|
|
22
25
|
withETH
|
|
23
26
|
};
|
|
24
27
|
$[0] = forcedChainId;
|
|
25
|
-
$[1] =
|
|
26
|
-
$[2] =
|
|
27
|
-
$[3] =
|
|
28
|
+
$[1] = t1;
|
|
29
|
+
$[2] = tokenFilter;
|
|
30
|
+
$[3] = withETH;
|
|
31
|
+
$[4] = t2;
|
|
32
|
+
} else {
|
|
33
|
+
t2 = $[4];
|
|
34
|
+
}
|
|
35
|
+
const allTokenRows = useAllTokensWithFilter(t2);
|
|
36
|
+
let t3;
|
|
37
|
+
if ($[5] !== allTokenRows || $[6] !== selectableChains || $[7] !== tokenFilter) {
|
|
38
|
+
t3 = {
|
|
39
|
+
allTokenRows,
|
|
40
|
+
tokenFilter,
|
|
41
|
+
selectableChains
|
|
42
|
+
};
|
|
43
|
+
$[5] = allTokenRows;
|
|
44
|
+
$[6] = selectableChains;
|
|
45
|
+
$[7] = tokenFilter;
|
|
46
|
+
$[8] = t3;
|
|
28
47
|
} else {
|
|
29
|
-
|
|
48
|
+
t3 = $[8];
|
|
30
49
|
}
|
|
31
|
-
const allTokenRows = useAllTokensWithFilter(t1);
|
|
32
50
|
const {
|
|
33
51
|
tokenRowsCombined
|
|
34
|
-
} = useCombineTokensWithFetched(
|
|
35
|
-
let
|
|
36
|
-
if ($[
|
|
37
|
-
|
|
38
|
-
$[
|
|
39
|
-
$[
|
|
40
|
-
$[
|
|
41
|
-
$[
|
|
52
|
+
} = useCombineTokensWithFetched(t3);
|
|
53
|
+
let t4;
|
|
54
|
+
if ($[9] !== className || $[10] !== onSelectToken || $[11] !== tokenRowsCombined) {
|
|
55
|
+
t4 = /* @__PURE__ */ jsx(TokenListBody, { onSelect: onSelectToken, tokenRows: tokenRowsCombined, className });
|
|
56
|
+
$[9] = className;
|
|
57
|
+
$[10] = onSelectToken;
|
|
58
|
+
$[11] = tokenRowsCombined;
|
|
59
|
+
$[12] = t4;
|
|
42
60
|
} else {
|
|
43
|
-
|
|
61
|
+
t4 = $[12];
|
|
44
62
|
}
|
|
45
|
-
return
|
|
63
|
+
return t4;
|
|
46
64
|
};
|
|
47
65
|
|
|
48
66
|
export { RegularTokenList };
|
package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegularTokenList.js","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.tsx"],"sourcesContent":["import { useAllTokensWithFilter } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { TokenListBody } from \"./TokenListBody\";\nimport { useCombineTokensWithFetched } from \"@/hooks/tokens/data/useCombineTokensWithFetched\";\nimport type { TokenRowForFetchedToken } from \"./TokenListRow\";\n\nexport type RegularTokenListProps = {\n onSelectToken: (token: TokenRowForFetchedToken) => void;\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n className?: string;\n withETH?: boolean;\n};\n\nexport const RegularTokenList = ({\n tokenFilter,\n onSelectToken,\n forcedChainId,\n className,\n withETH,\n}: RegularTokenListProps) => {\n const allTokenRows = useAllTokensWithFilter({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound:
|
|
1
|
+
{"version":3,"file":"RegularTokenList.js","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.tsx"],"sourcesContent":["import { useAllTokensWithFilter } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { TokenListBody } from \"./TokenListBody\";\nimport { useCombineTokensWithFetched } from \"@/hooks/tokens/data/useCombineTokensWithFetched\";\nimport type { TokenRowForFetchedToken } from \"./TokenListRow\";\n\nexport type RegularTokenListProps = {\n onSelectToken: (token: TokenRowForFetchedToken) => void;\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n selectableChains?: SupportedChainId[];\n className?: string;\n withETH?: boolean;\n singleChainTokensOnly?: boolean; // don't search on other chains if nothing found\n};\n\nexport const RegularTokenList = ({\n tokenFilter,\n onSelectToken,\n forcedChainId,\n selectableChains,\n className,\n withETH,\n singleChainTokensOnly,\n}: RegularTokenListProps) => {\n const allTokenRows = useAllTokensWithFilter({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound: !singleChainTokensOnly,\n withETH,\n });\n\n const { tokenRowsCombined } = useCombineTokensWithFetched({\n allTokenRows,\n tokenFilter,\n // disallow fetching on other chains if singleChainTokensOnly is true\n selectableChains,\n });\n\n return (\n <TokenListBody\n onSelect={onSelectToken}\n tokenRows={tokenRowsCombined}\n className={className}\n />\n );\n};\n"],"names":["RegularTokenList","t0","$","_c","tokenFilter","onSelectToken","forcedChainId","selectableChains","className","withETH","singleChainTokensOnly","t1","t2","searchOnOtherChainsIfNothingFound","allTokenRows","useAllTokensWithFilter","t3","tokenRowsCombined","useCombineTokensWithFetched","t4"],"mappings":";;;;;;AAgBO,MAAMA,mBAAmBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,WAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAT,EAAAA;AAYM,EAAA,MAAAU,MAACD,qBAAAA;AAAqB,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAV,CAAAA,CAAA,CAAA,CAAA,KAAAI,aAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAS,EAAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,WAAAA,IAAAF,CAAAA,QAAAO,OAAAA,EAAA;AAHfG,IAAAA,EAAAA,GAAA;AAAA,MAAAR,WAAAA;AAAAA,MAAAE,aAAAA;AAAAA,MAAAO,iCAAAA,EAGPF,EAAAA;AAAAA,MAAsBF;AAAAA,KAE3D;AAACP,IAAAA,CAAAA,MAAAI,aAAAA;AAAAJ,IAAAA,CAAAA,MAAAS,EAAAA;AAAAT,IAAAA,CAAAA,MAAAE,WAAAA;AAAAF,IAAAA,CAAAA,MAAAO,OAAAA;AAAAP,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAAY,YAAAA,GAAqBC,uBAAuBH,EAK3C,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAY,YAAAA,IAAAZ,CAAAA,QAAAK,gBAAAA,IAAAL,CAAAA,CAAA,CAAA,CAAA,KAAAE,WAAAA,EAAA;AAEuDY,IAAAA,EAAAA,GAAA;AAAA,MAAAF,YAAAA;AAAAA,MAAAV,WAAAA;AAAAA,MAAAG;AAAAA,KAK1D;AAACL,IAAAA,CAAAA,MAAAY,YAAAA;AAAAZ,IAAAA,CAAAA,MAAAK,gBAAAA;AAAAL,IAAAA,CAAAA,MAAAE,WAAAA;AAAAF,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAA;AAAA,IAAAe;AAAAA,GAAA,GAA8BC,4BAA4BF,EAKzD,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,IAAAN,CAAAA,SAAAG,aAAAA,IAAAH,CAAAA,CAAA,EAAA,CAAA,KAAAe,iBAAAA,EAAA;AAGDE,IAAAA,EAAAA,uBAAC,aAAA,EAAA,EACWd,QAAAA,iBACCY,SAAAA,qBACAT,SAAAA,EAAS,CAAA;AACpBN,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,OAAAG,aAAAA;AAAAH,IAAAA,CAAAA,OAAAe,iBAAAA;AAAAf,IAAAA,CAAAA,OAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAJFiB,EAAAA;AAIE;;;;"}
|
package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListBody.d.ts","sourceRoot":"","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAExB,KAAK,kBAAkB,GAAG;IACxB,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,kDAK3B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"TokenListBody.d.ts","sourceRoot":"","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAExB,KAAK,kBAAkB,GAAG;IACxB,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,kDAK3B,kBAAkB,4CAmBpB,CAAC"}
|
|
@@ -26,7 +26,7 @@ const TokenListBody = (t0) => {
|
|
|
26
26
|
const {
|
|
27
27
|
row
|
|
28
28
|
} = t32;
|
|
29
|
-
return /* @__PURE__ */ jsx(RendererByType, { row, onSelect });
|
|
29
|
+
return /* @__PURE__ */ jsx(RendererByType, { row, onSelect }, `${row.address}-${row.network}`);
|
|
30
30
|
};
|
|
31
31
|
$[2] = onSelect;
|
|
32
32
|
$[3] = t2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListBody.js","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.tsx"],"sourcesContent":["import { RowVirtualizerFixed } from \"@/components/widget/RowVirtualizer/RowVirtualizerFixed\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport {\n RendererByType,\n type RowRendererProps,\n type TokenRowForFetchedToken,\n} from \"./TokenListRow\";\n\ntype TokenListBodyProps = {\n tokenRows: TokenRowForFetchedToken[];\n onSelect: RowRendererProps[\"onSelect\"];\n visibleRows?: number;\n className?: string;\n};\n\nexport const TokenListBody = ({\n tokenRows,\n onSelect,\n visibleRows,\n className,\n}: TokenListBodyProps) => {\n return (\n <RowVirtualizerFixed<TokenRowForFetchedToken>\n rowHeight={56}\n visibleRows={visibleRows} // 56*6 = 336px, to fit into fullCover drawer (when container has padding, + search field + TokenCloud)\n containerClassName={cn(\n \"w-full [scrollbar-gutter:stable_both-edges]\",\n className\n )}\n rows={tokenRows}\n rowRenderer={({ row }) => (\n <RendererByType
|
|
1
|
+
{"version":3,"file":"TokenListBody.js","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.tsx"],"sourcesContent":["import { RowVirtualizerFixed } from \"@/components/widget/RowVirtualizer/RowVirtualizerFixed\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport {\n RendererByType,\n type RowRendererProps,\n type TokenRowForFetchedToken,\n} from \"./TokenListRow\";\n\ntype TokenListBodyProps = {\n tokenRows: TokenRowForFetchedToken[];\n onSelect: RowRendererProps[\"onSelect\"];\n visibleRows?: number;\n className?: string;\n};\n\nexport const TokenListBody = ({\n tokenRows,\n onSelect,\n visibleRows,\n className,\n}: TokenListBodyProps) => {\n return (\n <RowVirtualizerFixed<TokenRowForFetchedToken>\n rowHeight={56}\n visibleRows={visibleRows} // 56*6 = 336px, to fit into fullCover drawer (when container has padding, + search field + TokenCloud)\n containerClassName={cn(\n \"w-full [scrollbar-gutter:stable_both-edges]\",\n className\n )}\n rows={tokenRows}\n rowRenderer={({ row }) => (\n <RendererByType\n row={row}\n onSelect={onSelect}\n key={`${row.address}-${row.network}`}\n />\n )}\n />\n );\n};\n"],"names":["TokenListBody","t0","$","_c","tokenRows","onSelect","visibleRows","className","t1","cn","t2","t3","row","address","network"],"mappings":";;;;;;AAiBO,MAAMA,gBAAgBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAKT,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAN,CAAAA,QAAAK,SAAAA,EAAA;AAKKC,IAAAA,EAAAA,GAAAC,EAAAA,CAClB,+CACAF,SACF,CAAA;AAACL,IAAAA,CAAAA,MAAAK,SAAAA;AAAAL,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAG,QAAAA,EAAA;AAEYK,IAAAA,EAAAA,GAAAC,CAAAA,GAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,GAAAA;AAAO,MAAA,uBACnB,GAAA,CAAC,cAAA,EAAA,EACMC,GAAAA,EACKP,QAAAA,EAAAA,EACL,CAAA,EAAGO,IAAGC,OAAQ,CAAA,CAAA,EAAID,GAAAA,CAAGE,OAAQ,CAAA,CAAE,CAAA;AAAA,IACpC,CAAA;AACHZ,IAAAA,CAAAA,MAAAG,QAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAM,EAAAA,IAAAN,EAAA,CAAA,CAAA,KAAAQ,EAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAE,SAAAA,IAAAF,CAAAA,QAAAI,WAAAA,EAAA;AAdHK,IAAAA,EAAAA,mBAAA,GAAA,CAAC,mBAAA,EAAA,EACY,SAAA,EAAA,EAAA,EACEL,WAAAA,EACO,oBAAAE,EAAAA,EAIdJ,IAAAA,EAAAA,SAAAA,EACO,WAAA,EAAAM,EAAAA,EAMZ,CAAA;AACDR,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAI,WAAAA;AAAAJ,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAfFS,EAAAA;AAeE;;;;"}
|
|
@@ -144,7 +144,7 @@ const DefaultRowRenderer = (t0) => {
|
|
|
144
144
|
}
|
|
145
145
|
let t9;
|
|
146
146
|
if ($[19] !== t5 || $[20] !== t8) {
|
|
147
|
-
t9 = /* @__PURE__ */ jsxs("div", { className: "
|
|
147
|
+
t9 = /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
148
148
|
t5,
|
|
149
149
|
t8
|
|
150
150
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListRow.js","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.tsx"],"sourcesContent":["import type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { TokenBadge } from \"@/components/widget/TokenBadge/TokenBadge\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport { Button } from \"@/components/ui/button\";\nimport type { JSX } from \"react\";\nimport type { Prettify } from \"ts-essentials\";\n\nexport type TokenRowForFetchedToken = Prettify<\n TokenMaybeWithUsdBalance & {\n fetchedOnChain?: true;\n }\n>;\n\nexport type RowRendererProps = {\n row: TokenRowForFetchedToken;\n onSelect?: (token: Token) => void;\n};\n\nexport type RowRenderer = (props: RowRendererProps) => JSX.Element;\n\ntype BaseRowRenderer = (\n props: RowRendererProps & {\n afterBadge?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst BaseRenderer: BaseRowRenderer = ({ row, onSelect, afterBadge }) => {\n return (\n <div className=\"h-full px-[11px]\">\n <div\n className=\"px-2 rounded-sm hover:bg-contrast-9 dark:hover:bg-contrast-2 h-full flex items-center gap-2 hover:cursor-pointer\"\n onClick={\n onSelect\n ? () => {\n onSelect(row);\n }\n : undefined\n }\n >\n <TokenBadge\n address={row.address}\n img={row.img}\n chainId={row.network}\n showNetworkIcon\n classes={{ logo: \"size-[24px]\" }}\n />\n {afterBadge}\n </div>\n </div>\n );\n};\n\ntype DefaultRenderer = (\n props: RowRendererProps & {\n afterBalance?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst DefaultRowRenderer: DefaultRenderer = ({\n row,\n onSelect,\n afterBalance,\n}) => {\n const formattedBalance = row.balance\n ? formatUnits(BigInt(row.balance), row.decimals)\n : undefined;\n\n const balanceToDisplay = formattedBalance\n ? toDecimalTrimmed(formattedBalance)\n : \"0\";\n\n const formattedUsdBalance = row.usdBalance\n ? formatFiatPrice(row.usdBalance)\n : undefined;\n\n const usdBalanceToDisplay =\n formattedUsdBalance === undefined\n ? \"$0\" // no usd prices or token.balance is zero\n : formattedUsdBalance === \"$0.00\"\n ? \"<$0.01\" // usd balance is less than 0.01\n : formattedUsdBalance;\n\n return (\n <BaseRenderer\n row={row}\n onSelect={onSelect}\n afterBadge={\n <>\n <div className=\"w-full\">\n <div className=\"flex items-center justify-between text-sm text-contrast-3\">\n <div className=\"dark:text-contrast-6 font-medium\">\n {row.symbol}\n </div>\n <div className=\"font-geist-mono dark:text-contrast-7 font-medium\">\n {balanceToDisplay}\n </div>\n </div>\n <div className=\"text-contrast-5 dark:text-contrast-5 flex items-center justify-between text-[10px]\">\n <div>{row.name}</div>\n <div className=\"font-geist-mono\">{usdBalanceToDisplay}</div>\n </div>\n </div>\n {afterBalance}\n </>\n }\n />\n );\n};\n\nconst FetchedTokenRenderer: RowRenderer = ({ row, onSelect }) => {\n return (\n <DefaultRowRenderer\n row={row}\n afterBalance={\n <Button\n onClick={onSelect ? () => onSelect(row) : undefined}\n variant={\"secondary\"}\n size=\"sm\"\n className=\"ml-2 flex-shrink-0 uppercase\"\n >\n Import\n </Button>\n }\n />\n );\n};\n\nexport const RendererByType = (props: RowRendererProps) => {\n const Renderer = props.row.fetchedOnChain\n ? FetchedTokenRenderer\n : DefaultRowRenderer;\n return <Renderer {...props} />;\n};\n"],"names":["BaseRenderer","t0","$","_c","row","onSelect","afterBadge","t1","undefined","t2","Symbol","for","logo","t3","address","img","network","t4","DefaultRowRenderer","afterBalance","balance","decimals","formattedBalance","formatUnits","BigInt","toDecimalTrimmed","balanceToDisplay","usdBalance","formatFiatPrice","formattedUsdBalance","usdBalanceToDisplay","symbol","t5","t6","name","t7","t8","t9","t10","t11","FetchedTokenRenderer","RendererByType","props","Renderer","fetchedOnChain"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenListRow.js","sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.tsx"],"sourcesContent":["import type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { TokenBadge } from \"@/components/widget/TokenBadge/TokenBadge\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport { Button } from \"@/components/ui/button\";\nimport type { JSX } from \"react\";\nimport type { Prettify } from \"ts-essentials\";\n\nexport type TokenRowForFetchedToken = Prettify<\n TokenMaybeWithUsdBalance & {\n fetchedOnChain?: true;\n }\n>;\n\nexport type RowRendererProps = {\n row: TokenRowForFetchedToken;\n onSelect?: (token: Token) => void;\n};\n\nexport type RowRenderer = (props: RowRendererProps) => JSX.Element;\n\ntype BaseRowRenderer = (\n props: RowRendererProps & {\n afterBadge?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst BaseRenderer: BaseRowRenderer = ({ row, onSelect, afterBadge }) => {\n return (\n <div className=\"h-full px-[11px]\">\n <div\n className=\"px-2 rounded-sm hover:bg-contrast-9 dark:hover:bg-contrast-2 h-full flex items-center gap-2 hover:cursor-pointer\"\n onClick={\n onSelect\n ? () => {\n onSelect(row);\n }\n : undefined\n }\n >\n <TokenBadge\n address={row.address}\n img={row.img}\n chainId={row.network}\n showNetworkIcon\n classes={{ logo: \"size-[24px]\" }}\n />\n {afterBadge}\n </div>\n </div>\n );\n};\n\ntype DefaultRenderer = (\n props: RowRendererProps & {\n afterBalance?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst DefaultRowRenderer: DefaultRenderer = ({\n row,\n onSelect,\n afterBalance,\n}) => {\n const formattedBalance = row.balance\n ? formatUnits(BigInt(row.balance), row.decimals)\n : undefined;\n\n const balanceToDisplay = formattedBalance\n ? toDecimalTrimmed(formattedBalance)\n : \"0\";\n\n const formattedUsdBalance = row.usdBalance\n ? formatFiatPrice(row.usdBalance)\n : undefined;\n\n const usdBalanceToDisplay =\n formattedUsdBalance === undefined\n ? \"$0\" // no usd prices or token.balance is zero\n : formattedUsdBalance === \"$0.00\"\n ? \"<$0.01\" // usd balance is less than 0.01\n : formattedUsdBalance;\n\n return (\n <BaseRenderer\n row={row}\n onSelect={onSelect}\n afterBadge={\n <>\n <div className=\"flex-1\">\n <div className=\"flex items-center justify-between text-sm text-contrast-3\">\n <div className=\"dark:text-contrast-6 font-medium\">\n {row.symbol}\n </div>\n <div className=\"font-geist-mono dark:text-contrast-7 font-medium\">\n {balanceToDisplay}\n </div>\n </div>\n <div className=\"text-contrast-5 dark:text-contrast-5 flex items-center justify-between text-[10px]\">\n <div>{row.name}</div>\n <div className=\"font-geist-mono\">{usdBalanceToDisplay}</div>\n </div>\n </div>\n {afterBalance}\n </>\n }\n />\n );\n};\n\nconst FetchedTokenRenderer: RowRenderer = ({ row, onSelect }) => {\n return (\n <DefaultRowRenderer\n row={row}\n afterBalance={\n <Button\n onClick={onSelect ? () => onSelect(row) : undefined}\n variant={\"secondary\"}\n size=\"sm\"\n className=\"ml-2 flex-shrink-0 uppercase\"\n >\n Import\n </Button>\n }\n />\n );\n};\n\nexport const RendererByType = (props: RowRendererProps) => {\n const Renderer = props.row.fetchedOnChain\n ? FetchedTokenRenderer\n : DefaultRowRenderer;\n return <Renderer {...props} />;\n};\n"],"names":["BaseRenderer","t0","$","_c","row","onSelect","afterBadge","t1","undefined","t2","Symbol","for","logo","t3","address","img","network","t4","DefaultRowRenderer","afterBalance","balance","decimals","formattedBalance","formatUnits","BigInt","toDecimalTrimmed","balanceToDisplay","usdBalance","formatFiatPrice","formattedUsdBalance","usdBalanceToDisplay","symbol","t5","t6","name","t7","t8","t9","t10","t11","FetchedTokenRenderer","RendererByType","props","Renderer","fetchedOnChain"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Drawer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAOP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,KAAK,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Drawer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAOP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,KAAK,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EAAE,UAAU,EACrB,KAAK,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,sBAAsB,EACtB,MAAM,EACN,WAAmB,EACnB,cAAqB,EAAE,+CAA+C;AACtE,GAAG,KAAK,EACT,EAAE,qBAAqB,2CA+EvB"}
|
|
@@ -4,12 +4,8 @@ import { DrawerHeader, DrawerTitle, DrawerClose, Drawer, DrawerDescription, Draw
|
|
|
4
4
|
import { useContainerAtom } from '../../../core/state/containerAtom.js';
|
|
5
5
|
import { ArrowLeft, XIcon } from 'lucide-react';
|
|
6
6
|
|
|
7
|
-
function isElementVisibleInViewport(element) {
|
|
8
|
-
const rect = element.getBoundingClientRect();
|
|
9
|
-
return rect.top <= window.innerHeight && rect.bottom >= 0 && rect.left <= window.innerWidth && rect.right >= 0;
|
|
10
|
-
}
|
|
11
7
|
function ControlledDrawer(t0) {
|
|
12
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(40);
|
|
13
9
|
let _container;
|
|
14
10
|
let children;
|
|
15
11
|
let closeButtonReplacement;
|
|
@@ -28,7 +24,7 @@ function ControlledDrawer(t0) {
|
|
|
28
24
|
title: t52,
|
|
29
25
|
description: t62,
|
|
30
26
|
showCloseButton: t72,
|
|
31
|
-
showGoBackButton:
|
|
27
|
+
showGoBackButton: t82,
|
|
32
28
|
onGoBack: t9,
|
|
33
29
|
closeButtonReplacement: t10,
|
|
34
30
|
logger,
|
|
@@ -41,7 +37,7 @@ function ControlledDrawer(t0) {
|
|
|
41
37
|
title = t52;
|
|
42
38
|
description = t62;
|
|
43
39
|
showCloseButton = t72;
|
|
44
|
-
showGoBackButton =
|
|
40
|
+
showGoBackButton = t82;
|
|
45
41
|
onGoBack = t9;
|
|
46
42
|
closeButtonReplacement = t10;
|
|
47
43
|
t1 = t11;
|
|
@@ -78,78 +74,147 @@ function ControlledDrawer(t0) {
|
|
|
78
74
|
const container = _container || drawerContainer;
|
|
79
75
|
const shouldShowHeader = !!(showGoBackButton || title || showCloseButton || closeButtonReplacement);
|
|
80
76
|
let t3;
|
|
81
|
-
if ($[12] !==
|
|
82
|
-
t3 =
|
|
83
|
-
if (
|
|
84
|
-
|
|
85
|
-
behavior: "smooth",
|
|
86
|
-
block: "nearest",
|
|
87
|
-
inline: "nearest"
|
|
88
|
-
});
|
|
77
|
+
if ($[12] !== drawerContainer || $[13] !== props) {
|
|
78
|
+
t3 = () => {
|
|
79
|
+
if (drawerContainer && !props.open) {
|
|
80
|
+
restoreContainer.onAnimationStart(drawerContainer);
|
|
89
81
|
}
|
|
90
|
-
}
|
|
91
|
-
$[12] =
|
|
92
|
-
$[13] =
|
|
82
|
+
};
|
|
83
|
+
$[12] = drawerContainer;
|
|
84
|
+
$[13] = props;
|
|
93
85
|
$[14] = t3;
|
|
94
86
|
} else {
|
|
95
87
|
t3 = $[14];
|
|
96
88
|
}
|
|
97
89
|
let t4;
|
|
98
|
-
if ($[15] !==
|
|
99
|
-
t4 =
|
|
90
|
+
if ($[15] !== drawerContainer || $[16] !== props || $[17] !== scrollIntoView) {
|
|
91
|
+
t4 = (event) => {
|
|
92
|
+
if (drawerContainer) {
|
|
93
|
+
maybeMoveIntoPage({
|
|
94
|
+
element: event.currentTarget,
|
|
95
|
+
open: props.open,
|
|
96
|
+
drawerContainer
|
|
97
|
+
});
|
|
98
|
+
restoreContainer.onAnimationEnd(drawerContainer);
|
|
99
|
+
}
|
|
100
|
+
if (scrollIntoView && props.open) {
|
|
101
|
+
maybeScrollIntoView(event.currentTarget);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
$[15] = drawerContainer;
|
|
105
|
+
$[16] = props;
|
|
106
|
+
$[17] = scrollIntoView;
|
|
107
|
+
$[18] = t4;
|
|
108
|
+
} else {
|
|
109
|
+
t4 = $[18];
|
|
110
|
+
}
|
|
111
|
+
let t5;
|
|
112
|
+
if ($[19] !== closeButtonReplacement || $[20] !== onGoBack || $[21] !== props || $[22] !== shouldShowHeader || $[23] !== showCloseButton || $[24] !== showGoBackButton || $[25] !== title) {
|
|
113
|
+
t5 = shouldShowHeader ? /* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
100
114
|
/* @__PURE__ */ jsxs(DrawerTitle, { className: "flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7", children: [
|
|
101
115
|
showGoBackButton && /* @__PURE__ */ jsx(ArrowLeft, { className: "ring-offset-background cursor-pointer size-4 focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0", onClick: onGoBack || props.onClose }),
|
|
102
116
|
title
|
|
103
117
|
] }),
|
|
104
118
|
closeButtonReplacement ?? (showCloseButton && /* @__PURE__ */ jsx(DrawerClose, { className: "ring-offset-background cursor-pointer focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", onClick: props.onClose, children: /* @__PURE__ */ jsx(XIcon, {}) }))
|
|
105
119
|
] }) }) : /* @__PURE__ */ jsx(DrawerTitle, { className: "sr-only" });
|
|
106
|
-
$[
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
120
|
+
$[19] = closeButtonReplacement;
|
|
121
|
+
$[20] = onGoBack;
|
|
122
|
+
$[21] = props;
|
|
123
|
+
$[22] = shouldShowHeader;
|
|
124
|
+
$[23] = showCloseButton;
|
|
125
|
+
$[24] = showGoBackButton;
|
|
126
|
+
$[25] = title;
|
|
127
|
+
$[26] = t5;
|
|
114
128
|
} else {
|
|
115
|
-
|
|
129
|
+
t5 = $[26];
|
|
116
130
|
}
|
|
117
|
-
let
|
|
118
|
-
if ($[
|
|
119
|
-
|
|
120
|
-
$[
|
|
121
|
-
$[
|
|
131
|
+
let t6;
|
|
132
|
+
if ($[27] !== description) {
|
|
133
|
+
t6 = /* @__PURE__ */ jsx(DrawerDescription, { children: description });
|
|
134
|
+
$[27] = description;
|
|
135
|
+
$[28] = t6;
|
|
122
136
|
} else {
|
|
123
|
-
|
|
137
|
+
t6 = $[28];
|
|
124
138
|
}
|
|
125
|
-
let
|
|
126
|
-
if ($[
|
|
127
|
-
|
|
128
|
-
t4,
|
|
139
|
+
let t7;
|
|
140
|
+
if ($[29] !== children || $[30] !== t3 || $[31] !== t4 || $[32] !== t5 || $[33] !== t6) {
|
|
141
|
+
t7 = /* @__PURE__ */ jsx(DrawerPortal, { children: /* @__PURE__ */ jsxs(DrawerContent, { className: "absolute p-0 bg-contrast-8 dark:bg-contrast-1", onAnimationStart: t3, onAnimationEnd: t4, children: [
|
|
129
142
|
t5,
|
|
143
|
+
t6,
|
|
130
144
|
children
|
|
131
145
|
] }) });
|
|
132
|
-
$[
|
|
133
|
-
$[
|
|
134
|
-
$[
|
|
135
|
-
$[
|
|
136
|
-
$[29] = t6;
|
|
137
|
-
} else {
|
|
138
|
-
t6 = $[29];
|
|
139
|
-
}
|
|
140
|
-
let t7;
|
|
141
|
-
if ($[30] !== container || $[31] !== dismissible || $[32] !== props || $[33] !== t6) {
|
|
142
|
-
t7 = /* @__PURE__ */ jsx(Drawer, { ...props, container, dismissible, modal: false, children: t6 });
|
|
143
|
-
$[30] = container;
|
|
144
|
-
$[31] = dismissible;
|
|
145
|
-
$[32] = props;
|
|
146
|
+
$[29] = children;
|
|
147
|
+
$[30] = t3;
|
|
148
|
+
$[31] = t4;
|
|
149
|
+
$[32] = t5;
|
|
146
150
|
$[33] = t6;
|
|
147
151
|
$[34] = t7;
|
|
148
152
|
} else {
|
|
149
153
|
t7 = $[34];
|
|
150
154
|
}
|
|
151
|
-
|
|
155
|
+
let t8;
|
|
156
|
+
if ($[35] !== container || $[36] !== dismissible || $[37] !== props || $[38] !== t7) {
|
|
157
|
+
t8 = /* @__PURE__ */ jsx(Drawer, { ...props, container, dismissible, modal: false, children: t7 });
|
|
158
|
+
$[35] = container;
|
|
159
|
+
$[36] = dismissible;
|
|
160
|
+
$[37] = props;
|
|
161
|
+
$[38] = t7;
|
|
162
|
+
$[39] = t8;
|
|
163
|
+
} else {
|
|
164
|
+
t8 = $[39];
|
|
165
|
+
}
|
|
166
|
+
return t8;
|
|
167
|
+
}
|
|
168
|
+
function isElementAbovePage(element) {
|
|
169
|
+
const rect = element.getBoundingClientRect();
|
|
170
|
+
const diff = Math.ceil(rect.top + window.scrollY);
|
|
171
|
+
const isAbove = diff < 0;
|
|
172
|
+
const overlap = isAbove ? Math.abs(diff) : 0;
|
|
173
|
+
return {
|
|
174
|
+
overlap,
|
|
175
|
+
isAbove
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
function maybeMoveIntoPage({
|
|
179
|
+
element,
|
|
180
|
+
open,
|
|
181
|
+
drawerContainer
|
|
182
|
+
}) {
|
|
183
|
+
if (open) {
|
|
184
|
+
const {
|
|
185
|
+
isAbove,
|
|
186
|
+
overlap
|
|
187
|
+
} = isElementAbovePage(element);
|
|
188
|
+
if (isAbove) {
|
|
189
|
+
drawerContainer.style.translate = `0 ${overlap}px`;
|
|
190
|
+
}
|
|
191
|
+
} else {
|
|
192
|
+
drawerContainer.style.translate = "";
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function isElementVisibleInViewport(element) {
|
|
196
|
+
const rect = element.getBoundingClientRect();
|
|
197
|
+
return rect.top <= window.innerHeight && rect.bottom >= 0 && rect.left <= window.innerWidth && rect.right >= 0;
|
|
198
|
+
}
|
|
199
|
+
function maybeScrollIntoView(element) {
|
|
200
|
+
if (isElementVisibleInViewport(element)) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
element.scrollIntoView({
|
|
204
|
+
behavior: "smooth",
|
|
205
|
+
block: "nearest",
|
|
206
|
+
inline: "nearest"
|
|
207
|
+
});
|
|
152
208
|
}
|
|
209
|
+
const restoreContainer = {
|
|
210
|
+
onAnimationStart: (drawerContainer) => {
|
|
211
|
+
drawerContainer.style.translate = "";
|
|
212
|
+
drawerContainer.style.transition = "none";
|
|
213
|
+
},
|
|
214
|
+
onAnimationEnd: (drawerContainer) => {
|
|
215
|
+
drawerContainer.style.transition = "";
|
|
216
|
+
}
|
|
217
|
+
};
|
|
153
218
|
|
|
154
219
|
export { ControlledDrawer };
|
|
155
220
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/widget/Drawer/index.tsx"],"sourcesContent":["import {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerPortal,\n DrawerDescription,\n} from \"@/components/ui/drawer\";\nimport { useContainerAtom } from \"@/core/state/containerAtom\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { XIcon, ArrowLeft } from \"lucide-react\";\n\ntype ControlledDrawerProps = React.ComponentProps<typeof Drawer> & {\n open: boolean;\n children?: React.ReactNode;\n container?: HTMLElement | null;\n title?: string;\n description?: string;\n showGoBackButton?: boolean;\n onGoBack?: () => void;\n showCloseButton?: boolean;\n logger?: LoggerInstance;\n closeButtonReplacement?: React.ReactNode;\n scrollIntoView?: boolean;\n};\n\n// Helper function to check if an element is visible in the viewport\nfunction isElementVisibleInViewport(element: HTMLElement): boolean {\n const rect = element.getBoundingClientRect();\n\n return (\n rect.top <= window.innerHeight &&\n rect.bottom >= 0 &&\n rect.left <= window.innerWidth &&\n rect.right >= 0\n );\n}\n\nexport function ControlledDrawer({\n children,\n container: _container,\n title,\n description,\n showCloseButton,\n showGoBackButton,\n onGoBack,\n closeButtonReplacement,\n logger,\n dismissible = false,\n scrollIntoView = true, // If Drawer Opened offscreen, scroll into view\n ...props\n}: ControlledDrawerProps) {\n const drawerContainer = useContainerAtom();\n const container = _container || drawerContainer;\n\n const shouldShowHeader = !!(\n showGoBackButton ||\n title ||\n showCloseButton ||\n closeButtonReplacement\n );\n\n return (\n <Drawer\n {...props}\n container={container}\n dismissible={dismissible}\n modal={false}\n >\n <DrawerPortal>\n <DrawerContent\n className=\"absolute p-0 bg-contrast-8 dark:bg-contrast-1\"\n onAnimationEnd={\n scrollIntoView\n ? (event) => {\n // only after animated to Open state to prevent jiggle\n if (\n props.open &&\n !isElementVisibleInViewport(event.currentTarget)\n ) {\n // On short screens a Drawer may open offscreen and not be noticable\n event.currentTarget.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n }\n }\n : undefined\n }\n >\n {shouldShowHeader ? (\n <DrawerHeader>\n <div className=\"flex items-center justify-between\">\n <DrawerTitle className=\"flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7\">\n {showGoBackButton && (\n <ArrowLeft\n className=\"ring-offset-background cursor-pointer size-4 focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0\"\n onClick={onGoBack || props.onClose}\n />\n )}\n {title}\n </DrawerTitle>\n {closeButtonReplacement ??\n (showCloseButton && (\n <DrawerClose\n className=\"ring-offset-background cursor-pointer focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n onClick={props.onClose}\n >\n <XIcon />\n </DrawerClose>\n ))}\n </div>\n </DrawerHeader>\n ) : (\n // workaround to avoid \"DialogContent requires a DialogTitle for the component to be accessible for screen reader users\"\n // error if !shouldShowHeader\n <DrawerTitle className=\"sr-only\" />\n )}\n <DrawerDescription>{description}</DrawerDescription>\n {children}\n </DrawerContent>\n </DrawerPortal>\n </Drawer>\n );\n}\n"],"names":["isElementVisibleInViewport","element","rect","getBoundingClientRect","top","window","innerHeight","bottom","left","innerWidth","right","ControlledDrawer","t0","$","_c","_container","children","closeButtonReplacement","description","onGoBack","props","showCloseButton","showGoBackButton","t1","t2","title","t3","container","t4","t5","t6","t7","t8","t9","t10","logger","dismissible","t11","scrollIntoView","t12","t13","undefined","drawerContainer","useContainerAtom","shouldShowHeader","event","open","currentTarget","behavior","block","inline","onClose"],"mappings":";;;;;;AA4BA,SAASA,2BAA2BC,OAAAA,EAA+B;AACjE,EAAA,MAAMC,IAAAA,GAAOD,QAAQE,qBAAAA,EAAsB;AAE3C,EAAA,OACED,IAAAA,CAAKE,GAAAA,IAAOC,MAAAA,CAAOC,WAAAA,IACnBJ,IAAAA,CAAKK,MAAAA,IAAU,CAAA,IACfL,IAAAA,CAAKM,IAAAA,IAAQH,MAAAA,CAAOI,UAAAA,IACpBP,IAAAA,CAAKQ,KAAAA,IAAS,CAAA;AAElB;AAEO,SAAAC,iBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,UAAAA;AAAA,EAAA,IAAAC,QAAAA;AAAA,EAAA,IAAAC,sBAAAA;AAAA,EAAA,IAAAC,WAAAA;AAAA,EAAA,IAAAC,QAAAA;AAAA,EAAA,IAAAC,KAAAA;AAAA,EAAA,IAAAC,eAAAA;AAAA,EAAA,IAAAC,gBAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,KAAAA;AAAA,EAAA,IAAAZ,CAAAA,QAAAD,EAAAA,EAAA;AAA0B,IAAA,MAAA;AAAA,MAAAI,QAAAA,EAAAU,GAAAA;AAAAA,MAAAC,SAAAA,EAAAC,GAAAA;AAAAA,MAAAH,KAAAA,EAAAI,GAAAA;AAAAA,MAAAX,WAAAA,EAAAY,GAAAA;AAAAA,MAAAT,eAAAA,EAAAU,GAAAA;AAAAA,MAAAT,gBAAAA,EAAAU,EAAAA;AAAAA,MAAAb,QAAAA,EAAAc,EAAAA;AAAAA,MAAAhB,sBAAAA,EAAAiB,GAAAA;AAAAA,MAAAC,MAAAA;AAAAA,MAAAC,WAAAA,EAAAC,GAAAA;AAAAA,MAAAC,cAAAA,EAAAC,GAAAA;AAAAA,MAAA,GAAAC;AAAAA,KAAA,GAAA5B,EAAAA;AAAAI,IAAAA,QAAAA,GAAAU,GAAAA;AAAAX,IAAAA,UAAAA,GAAAa,GAAAA;AAAAH,IAAAA,KAAAA,GAAAI,GAAAA;AAAAX,IAAAA,WAAAA,GAAAY,GAAAA;AAAAT,IAAAA,eAAAA,GAAAU,GAAAA;AAAAT,IAAAA,gBAAAA,GAAAU,EAAAA;AAAAb,IAAAA,QAAAA,GAAAc,EAAAA;AAAAhB,IAAAA,sBAAAA,GAAAiB,GAAAA;AAAAX,IAAAA,EAAAA,GAAAc,GAAAA;AAAAb,IAAAA,EAAAA,GAAAe,GAAAA;AAAAnB,IAAAA,KAAAA,GAAAoB,GAAAA;AAaT3B,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,UAAAA;AAAAF,IAAAA,CAAAA,MAAAG,QAAAA;AAAAH,IAAAA,CAAAA,MAAAI,sBAAAA;AAAAJ,IAAAA,CAAAA,MAAAK,WAAAA;AAAAL,IAAAA,CAAAA,MAAAM,QAAAA;AAAAN,IAAAA,CAAAA,MAAAO,KAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,eAAAA;AAAAR,IAAAA,CAAAA,MAAAS,gBAAAA;AAAAT,IAAAA,CAAAA,MAAAU,EAAAA;AAAAV,IAAAA,CAAAA,OAAAW,EAAAA;AAAAX,IAAAA,CAAAA,OAAAY,KAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAV,IAAAA,UAAAA,GAAAF,EAAA,CAAA,CAAA;AAAAG,IAAAA,QAAAA,GAAAH,EAAA,CAAA,CAAA;AAAAI,IAAAA,sBAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAAK,IAAAA,WAAAA,GAAAL,EAAA,CAAA,CAAA;AAAAM,IAAAA,QAAAA,GAAAN,EAAA,CAAA,CAAA;AAAAO,IAAAA,KAAAA,GAAAP,EAAA,CAAA,CAAA;AAAAQ,IAAAA,eAAAA,GAAAR,EAAA,CAAA,CAAA;AAAAS,IAAAA,gBAAAA,GAAAT,EAAA,CAAA,CAAA;AAAAU,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAAW,IAAAA,EAAAA,GAAAX,EAAA,EAAA,CAAA;AAAAY,IAAAA,KAAAA,GAAAZ,EAAA,EAAA,CAAA;AAAA,EAAA;AAHtB,EAAA,MAAAuB,WAAAA,GAAAb,EAAAA,KAAAkB,MAAAA,GAAA,KAAA,GAAAlB,EAAAA;AACA,EAAA,MAAAe,cAAAA,GAAAd,EAAAA,KAAAiB,MAAAA,GAAA,IAAA,GAAAjB,EAAAA;AAGA,EAAA,MAAAkB,kBAAwBC,gBAAAA,EAAiB;AACzC,EAAA,MAAAhB,YAAkBZ,UAAAA,IAAA2B,eAAAA;AAElB,EAAA,MAAAE,gBAAAA,GAAyB,CAAC,EACxBtB,gBAAAA,IAAAG,SAAAJ,eAAAA,IAAAJ,sBAAAA,CAAAA;AAIA,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAb,EAAA,EAAA,CAAA,KAAAO,SAAAP,CAAAA,SAAAyB,cAAAA,EAAA;AAaQZ,IAAAA,EAAAA,GAAAY,iBAAAO,CAAAA,KAAAA,KAAA;AAGM,MAAA,IACEzB,MAAK0B,IAAAA,IAAL,CACC9C,0BAAAA,CAA2B6C,KAAAA,CAAKE,aAAc,CAAA,EAAC;AAGhDF,QAAAA,KAAAA,CAAKE,cAAcT,cAAAA,CAAgB;AAAA,UAAAU,QAAAA,EACvB,QAAA;AAAA,UAAQC,KAAAA,EACX,SAAA;AAAA,UAASC,MAAAA,EACR;AAAA,SACT,CAAA;AAAA,MAAC;AAAA,IACH,CAAA,GAbPT,MAAAA;AAea5B,IAAAA,CAAAA,OAAAO,KAAAA;AAAAP,IAAAA,CAAAA,OAAAyB,cAAAA;AAAAzB,IAAAA,CAAAA,OAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAe,EAAAA;AAAA,EAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAAI,sBAAAA,IAAAJ,CAAAA,CAAA,EAAA,CAAA,KAAAM,QAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAO,KAAAA,IAAAP,CAAAA,SAAA+B,gBAAAA,IAAA/B,CAAAA,CAAA,EAAA,CAAA,KAAAQ,eAAAA,IAAAR,CAAAA,CAAA,EAAA,CAAA,KAAAS,gBAAAA,IAAAT,CAAAA,CAAA,EAAA,CAAA,KAAAY,KAAAA,EAAA;AAGdG,IAAAA,EAAAA,GAAAgB,mCACC,GAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAA,IAAA,UAAe,WAAA,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,WAAA,EAAA,EAAsB,WAAA,kFAAA,EACpBtB,QAAAA,EAAAA;AAAAA,QAAAA,gBAAAA,wBACE,SAAA,EAAA,EACW,SAAA,EAAA,oVACD,OAAA,EAAAH,QAAAA,IAAYC,MAAK+B,OAAAA,EAAQ,CAAA;AAAA;SAIxC,CAAA;AAAA,MACClC,sBAAAA,KACEI,eAAAA,oBACC,GAAA,CAAC,WAAA,EAAA,EACW,SAAA,EAAA,gXAAA,EACD,OAAA,EAAAD,KAAAA,CAAK+B,OAAAA,EAEd,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,KACH,CAAA;AAAA,KAAA,EAEN,CAAA,EACF,CAAA,mBAIA,GAAA,CAAC,WAAA,EAAA,EAAsB,WAAA,SAAA,EAAS,CAAA;AACjCtC,IAAAA,CAAAA,OAAAI,sBAAAA;AAAAJ,IAAAA,CAAAA,OAAAM,QAAAA;AAAAN,IAAAA,CAAAA,OAAAO,KAAAA;AAAAP,IAAAA,CAAAA,OAAA+B,gBAAAA;AAAA/B,IAAAA,CAAAA,OAAAQ,eAAAA;AAAAR,IAAAA,CAAAA,OAAAS,gBAAAA;AAAAT,IAAAA,CAAAA,OAAAY,KAAAA;AAAAZ,IAAAA,CAAAA,OAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAgB,EAAAA;AAAA,EAAA,IAAAhB,CAAAA,SAAAK,WAAAA,EAAA;AACDW,IAAAA,EAAAA,uBAAC,4CAA+B,CAAA;AAAoBhB,IAAAA,CAAAA,OAAAK,WAAAA;AAAAL,IAAAA,CAAAA,OAAAgB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAiB,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,EAAA,CAAA,KAAAG,QAAAA,IAAAH,EAAA,EAAA,CAAA,KAAAa,EAAAA,IAAAb,CAAAA,CAAA,EAAA,CAAA,KAAAe,EAAAA,IAAAf,CAAAA,SAAAgB,EAAAA,EAAA;AAlDxDC,IAAAA,EAAAA,uBAAC,YAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,iBACW,SAAA,EAAA,+CAAA,EAER,gBAAAJ,EAAAA,EAkBDE,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA,MA4BDC,EAAAA;AAAAA,MACCb;AAAAA,KAAAA,EACH,CAAA,EACF,CAAA;AAAeH,IAAAA,CAAAA,OAAAG,QAAAA;AAAAH,IAAAA,CAAAA,OAAAa,EAAAA;AAAAb,IAAAA,CAAAA,OAAAe,EAAAA;AAAAf,IAAAA,CAAAA,OAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,OAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,EAAA,CAAA,KAAAc,SAAAA,IAAAd,EAAA,EAAA,CAAA,KAAAuB,WAAAA,IAAAvB,CAAAA,CAAA,EAAA,CAAA,KAAAO,KAAAA,IAAAP,CAAAA,SAAAiB,EAAAA,EAAA;AA3DjBC,IAAAA,EAAAA,mBAAA,GAAA,CAAC,UAAM,GACDX,KAAAA,EACOO,WACES,WAAAA,EACN,KAAA,EAAA,OAEPN,QAAAA,EAAAA,EAAAA,EAsDF,CAAA;AAASjB,IAAAA,CAAAA,OAAAc,SAAAA;AAAAd,IAAAA,CAAAA,OAAAuB,WAAAA;AAAAvB,IAAAA,CAAAA,OAAAO,KAAAA;AAAAP,IAAAA,CAAAA,OAAAiB,EAAAA;AAAAjB,IAAAA,CAAAA,OAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OA5DTkB,EAAAA;AA4DS;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/widget/Drawer/index.tsx"],"sourcesContent":["import {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerPortal,\n DrawerDescription,\n} from \"@/components/ui/drawer\";\nimport { useContainerAtom } from \"@/core/state/containerAtom\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { XIcon, ArrowLeft } from \"lucide-react\";\n\ntype ControlledDrawerProps = React.ComponentProps<typeof Drawer> & {\n open: boolean;\n children?: React.ReactNode;\n container?: HTMLElement | null;\n title?: string;\n description?: string;\n showGoBackButton?: boolean;\n onGoBack?: () => void;\n showCloseButton?: boolean;\n logger?: LoggerInstance;\n closeButtonReplacement?: React.ReactNode;\n scrollIntoView?: boolean;\n};\n\nexport function ControlledDrawer({\n children,\n container: _container,\n title,\n description,\n showCloseButton,\n showGoBackButton,\n onGoBack,\n closeButtonReplacement,\n logger,\n dismissible = false,\n scrollIntoView = true, // If Drawer Opened offscreen, scroll into view\n ...props\n}: ControlledDrawerProps) {\n const drawerContainer = useContainerAtom();\n const container = _container || drawerContainer;\n\n const shouldShowHeader = !!(\n showGoBackButton ||\n title ||\n showCloseButton ||\n closeButtonReplacement\n );\n\n return (\n <Drawer\n {...props}\n container={container}\n dismissible={dismissible}\n modal={false}\n >\n <DrawerPortal>\n <DrawerContent\n className=\"absolute p-0 bg-contrast-8 dark:bg-contrast-1\"\n onAnimationStart={() => {\n if (drawerContainer && !props.open) {\n // restore container to bottom\n restoreContainer.onAnimationStart(drawerContainer);\n }\n }}\n onAnimationEnd={(event) => {\n if (drawerContainer) {\n maybeMoveIntoPage({\n element: event.currentTarget,\n open: props.open,\n drawerContainer,\n });\n // restore normal transition if it was set to none\n restoreContainer.onAnimationEnd(drawerContainer);\n }\n\n // only after animated to Open state to prevent jiggle\n if (scrollIntoView && props.open) {\n // On short screens a Drawer may open offscreen and not be noticable\n maybeScrollIntoView(event.currentTarget);\n }\n }}\n >\n {shouldShowHeader ? (\n <DrawerHeader>\n <div className=\"flex items-center justify-between\">\n <DrawerTitle className=\"flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7\">\n {showGoBackButton && (\n <ArrowLeft\n className=\"ring-offset-background cursor-pointer size-4 focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0\"\n onClick={onGoBack || props.onClose}\n />\n )}\n {title}\n </DrawerTitle>\n {closeButtonReplacement ??\n (showCloseButton && (\n <DrawerClose\n className=\"ring-offset-background cursor-pointer focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n onClick={props.onClose}\n >\n <XIcon />\n </DrawerClose>\n ))}\n </div>\n </DrawerHeader>\n ) : (\n // workaround to avoid \"DialogContent requires a DialogTitle for the component to be accessible for screen reader users\"\n // error if !shouldShowHeader\n <DrawerTitle className=\"sr-only\" />\n )}\n <DrawerDescription>{description}</DrawerDescription>\n {children}\n </DrawerContent>\n </DrawerPortal>\n </Drawer>\n );\n}\n\n// Helper function to check if an element is above the page (not viewport)\nfunction isElementAbovePage(element: Element) {\n const rect = element.getBoundingClientRect();\n const diff = Math.ceil(rect.top + window.scrollY);\n const isAbove = diff < 0;\n const overlap = isAbove ? Math.abs(diff) : 0;\n return {\n overlap,\n isAbove,\n };\n}\n\ntype MaybeMoveIntoPageProps = {\n element: Element;\n open: boolean;\n drawerContainer: HTMLElement;\n};\n\nfunction maybeMoveIntoPage({\n element,\n open,\n drawerContainer,\n}: MaybeMoveIntoPageProps) {\n if (open) {\n const { isAbove, overlap } = isElementAbovePage(element);\n if (isAbove) {\n drawerContainer.style.translate = `0 ${overlap}px`;\n }\n } else {\n drawerContainer.style.translate = \"\";\n }\n}\n\n// Helper function to check if an element is visible in the viewport\nfunction isElementVisibleInViewport(element: Element): boolean {\n const rect = element.getBoundingClientRect();\n\n return (\n rect.top <= window.innerHeight &&\n rect.bottom >= 0 &&\n rect.left <= window.innerWidth &&\n rect.right >= 0\n );\n}\n\nfunction maybeScrollIntoView(element: Element) {\n if (isElementVisibleInViewport(element)) {\n return;\n }\n element.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n}\n\nconst restoreContainer = {\n onAnimationStart: (drawerContainer: HTMLElement) => {\n // restore container to bottom\n drawerContainer.style.translate = \"\";\n // set transition to snap container to bottom, looks better when not animated, because drawer is already closing\n drawerContainer.style.transition = \"none\";\n },\n onAnimationEnd: (drawerContainer: HTMLElement) => {\n // restore normal transition if it was set to none\n drawerContainer.style.transition = \"\";\n },\n};\n"],"names":["ControlledDrawer","t0","$","_c","_container","children","closeButtonReplacement","description","onGoBack","props","showCloseButton","showGoBackButton","t1","t2","title","t3","container","t4","t5","t6","t7","t8","t9","t10","logger","dismissible","t11","scrollIntoView","t12","t13","undefined","drawerContainer","useContainerAtom","shouldShowHeader","open","restoreContainer","onAnimationStart","event","maybeMoveIntoPage","element","currentTarget","onAnimationEnd","maybeScrollIntoView","onClose","isElementAbovePage","rect","getBoundingClientRect","diff","Math","ceil","top","window","scrollY","isAbove","overlap","abs","style","translate","isElementVisibleInViewport","innerHeight","bottom","left","innerWidth","right","behavior","block","inline","transition"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDrawerControls.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/Drawer/state/useDrawerControls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB,uBAAuB,GACvB,yBAAyB,GACzB,yBAAyB,GACzB,6BAA6B,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GACxD,uBAAuB,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAClD,iBAAiB,GACjB,uBAAuB,GACvB,mBAAmB,GACnB,yBAAyB,GACzB,uBAAuB,GACvB,4BAA4B,GAC5B,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GACf,sCAAsC,GACtC,uBAAuB,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAClD,mBAAmB,CAAC;AAExB,eAAO,MAAM,cAAc;;CAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"useDrawerControls.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/Drawer/state/useDrawerControls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB,uBAAuB,GACvB,yBAAyB,GACzB,yBAAyB,GACzB,6BAA6B,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GACxD,uBAAuB,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAClD,iBAAiB,GACjB,uBAAuB,GACvB,mBAAmB,GACnB,yBAAyB,GACzB,uBAAuB,GACvB,4BAA4B,GAC5B,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GACf,sCAAsC,GACtC,uBAAuB,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAClD,mBAAmB,CAAC;AAExB,eAAO,MAAM,cAAc;;CAA8B,CAAC;AAU1D,eAAO,MAAM,eAAe,QAAO,QAAQ,GAAG,IAE7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,mDAI/B;IACD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB,KAAG,cAyCH,CAAC;AAqBF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kCAAkC,QAAO;IACpD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CAsEvB,CAAC"}
|
|
@@ -5,6 +5,11 @@ import { atom, useAtomValue, useAtom } from 'jotai';
|
|
|
5
5
|
import { useRef, useLayoutEffect } from 'react';
|
|
6
6
|
|
|
7
7
|
const openDrawerAtom = atom(null);
|
|
8
|
+
openDrawerAtom.onMount = (set) => {
|
|
9
|
+
return () => {
|
|
10
|
+
set(null);
|
|
11
|
+
};
|
|
12
|
+
};
|
|
8
13
|
const useOpenDrawerId = () => {
|
|
9
14
|
return useAtomValue(openDrawerAtom);
|
|
10
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDrawerControls.js","sources":["../../../../../src/components/widget/Drawer/state/useDrawerControls.ts"],"sourcesContent":["import { DRAWER_HEIGHT } from \"@/core/constants\";\nimport { useLogger } from \"@/core/logger\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { atom, useAtom, useAtomValue } from \"jotai\";\nimport { useLayoutEffect, useRef } from \"react\";\n\nexport type DrawerControls = {\n open: boolean;\n onOpen: () => void;\n onClose: () => void;\n onOpenChange: (open: boolean) => void;\n logger: LoggerInstance;\n};\n\nexport type DrawerId =\n | \"account-button-drawer\"\n | \"trade-parameters-drawer\"\n | \"receiver-address-drawer\"\n | `empty-select-token-drawer-${\"from\" | \"to\" | undefined}`\n | `select-token-drawer-${\"from\" | \"to\" | undefined}`\n | \"wrap-eth-drawer\"\n | \"connect-wallet-drawer\"\n | \"trade-flow-drawer\"\n | \"limit-order-flow-drawer\"\n | \"otc-order-flow-drawer\"\n | \"fill-otc-order-flow-drawer\"\n | \"limit-orders-drawer\" // @TODO Activities cleanup\n | \"limit-order-details\" // @TODO Activities cleanup\n | \"otc-orders-drawer\" // @TODO Activities cleanup\n | \"otc-order-details\" // @TODO Activities cleanup\n | \"order-details\"\n | \"fill-order-review-and-confirm-drawer\"\n | `import-token-drawer-${\"from\" | \"to\" | undefined}`\n | \"activities-drawer\";\n\nexport const openDrawerAtom = atom<DrawerId | null>(null);\n\nexport const useOpenDrawerId = (): DrawerId | null => {\n return useAtomValue(openDrawerAtom);\n};\n\nexport const useDrawerControls = ({\n onOpen: _onOpen,\n onClose: _onClose,\n drawerId,\n}: {\n onOpen?: () => void;\n onClose?: () => void;\n drawerId: DrawerId;\n}): DrawerControls => {\n const [openDrawer, setOpenDrawer] = useAtom(openDrawerAtom);\n\n const open = openDrawer === drawerId;\n\n const logger = useLogger(drawerId);\n\n const onOpen = () => {\n logger.info(\"onOpen\");\n setOpenDrawer(drawerId);\n _onOpen?.();\n };\n const onClose = () => {\n logger.info(\"onClose\");\n setOpenDrawer((currentOpenDrawer) => {\n // only reset openDrawer if closing the drawer that is currently open,\n // so that we don't interfere with other drawers that are opening at the same time\n if (currentOpenDrawer === drawerId) {\n return null;\n }\n return currentOpenDrawer;\n });\n _onClose?.();\n };\n\n const onOpenChange = (open: boolean) => {\n if (open) {\n onOpen();\n } else {\n onClose();\n }\n };\n\n return {\n open,\n // expect onOpenChange not to be triggered for a controlled <Drawer open={open}/>.\n onOpenChange,\n onOpen,\n onClose,\n logger,\n };\n};\n\n/**\n * Drawer IDs that should be considered full-cover drawers.\n *\n * When a full-cover drawer opens, the widget container height is transitioned to a fixed WIDGET_HEIGHT_CLASSNAME height.\n * When the drawer closes, the widget container height is transitioned back to the natural height.\n */\nconst fullCoverDrawers = new Set<DrawerId>([\n \"trade-flow-drawer\",\n \"limit-order-flow-drawer\",\n \"otc-order-flow-drawer\",\n \"fill-otc-order-flow-drawer\",\n \"select-token-drawer-from\",\n \"select-token-drawer-to\",\n \"empty-select-token-drawer-from\",\n \"empty-select-token-drawer-to\",\n]);\n\nconst transition = \"height 0.3s ease-in-out\";\n\n/**\n * Hook that manages smooth height transitions for the main widget container when full-cover drawers open/close.\n *\n * When a full-cover drawer opens, this hook smoothly animates the widget height from its natural height\n * to a fixed WIDGET_HEIGHT_CLASSNAME height. When the drawer closes, it animates back to the original height and then\n * resets to auto for natural sizing.\n *\n * This prevents jarring height jumps and provides a polished user experience during drawer interactions.\n *\n * @returns {Object} containerRef - React ref that should be attached to the widget container element\n *\n * @example\n * const { containerRef } = useDrawerContainerHeightTransition();\n * return <div ref={containerRef} className=\"widget-container\">...</div>\n */\nexport const useDrawerContainerHeightTransition = (): {\n containerRef: React.RefObject<HTMLDivElement | null>;\n drawerId: DrawerId | null;\n isDrawerFullCover: boolean;\n isDrawerOpen: boolean;\n} => {\n const containerRef = useRef<HTMLDivElement>(null);\n const previousHeightRef = useRef<number | null>(null);\n\n const currentDrawerId = useOpenDrawerId();\n const isDrawerFullCover =\n !!currentDrawerId && fullCoverDrawers.has(currentDrawerId);\n\n useLayoutEffect(() => {\n if (containerRef.current) {\n const container = containerRef.current;\n\n if (isDrawerFullCover) {\n // Get current height\n const currentHeight = container.scrollHeight;\n // widget will be fully covered by the drawer, won't see the transition\n const shouldSkipTransition = currentHeight <= DRAWER_HEIGHT;\n if (shouldSkipTransition) {\n return;\n }\n previousHeightRef.current = currentHeight;\n container.style.overflow = \"hidden\";\n\n // Set current height first (no transition)\n container.style.transition = \"none\";\n container.style.height = `${currentHeight}px`;\n\n // Use requestAnimationFrame to ensure the first height is painted\n requestAnimationFrame(() => {\n // Enable transition and set target height\n container.style.transition = transition;\n container.style.height = `${DRAWER_HEIGHT}px`;\n });\n } else if (previousHeightRef.current !== null) {\n // Only transition back if we have a previous height\n container.style.transition = transition;\n container.style.height = `${previousHeightRef.current}px`;\n previousHeightRef.current = null;\n\n // After transition completes, reset to auto\n const onTransitionEnd = (event: TransitionEvent) => {\n if (\n event.target === container &&\n event.propertyName === \"height\" &&\n event.type === \"transitionend\"\n ) {\n container.style.height = \"auto\";\n container.style.transition = \"\";\n container.style.overflow = \"\";\n\n container.removeEventListener(\"transitionend\", onTransitionEnd);\n }\n };\n container.addEventListener(\"transitionend\", onTransitionEnd);\n\n return () => {\n // cleanup just in case\n container.removeEventListener(\"transitionend\", onTransitionEnd);\n };\n }\n }\n }, [isDrawerFullCover]);\n\n return {\n containerRef,\n drawerId: currentDrawerId,\n isDrawerFullCover,\n isDrawerOpen: !!currentDrawerId,\n };\n};\n"],"names":["openDrawerAtom","atom","useOpenDrawerId","useAtomValue","useDrawerControls","t0","$","_c","onOpen","_onOpen","onClose","_onClose","drawerId","openDrawer","setOpenDrawer","useAtom","open","logger","useLogger","t1","info","t2","currentOpenDrawer","t3","open_0","onOpenChange","t4","fullCoverDrawers","Set","transition","useDrawerContainerHeightTransition","containerRef","useRef","previousHeightRef","currentDrawerId","has","isDrawerFullCover","current","container","currentHeight","scrollHeight","shouldSkipTransition","DRAWER_HEIGHT","style","overflow","height","requestAnimationFrame","onTransitionEnd","event","target","propertyName","type","removeEventListener","addEventListener","useLayoutEffect","isDrawerOpen"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDrawerControls.js","sources":["../../../../../src/components/widget/Drawer/state/useDrawerControls.ts"],"sourcesContent":["import { DRAWER_HEIGHT } from \"@/core/constants\";\nimport { useLogger } from \"@/core/logger\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { atom, useAtom, useAtomValue } from \"jotai\";\nimport { useLayoutEffect, useRef } from \"react\";\n\nexport type DrawerControls = {\n open: boolean;\n onOpen: () => void;\n onClose: () => void;\n onOpenChange: (open: boolean) => void;\n logger: LoggerInstance;\n};\n\nexport type DrawerId =\n | \"account-button-drawer\"\n | \"trade-parameters-drawer\"\n | \"receiver-address-drawer\"\n | `empty-select-token-drawer-${\"from\" | \"to\" | undefined}`\n | `select-token-drawer-${\"from\" | \"to\" | undefined}`\n | \"wrap-eth-drawer\"\n | \"connect-wallet-drawer\"\n | \"trade-flow-drawer\"\n | \"limit-order-flow-drawer\"\n | \"otc-order-flow-drawer\"\n | \"fill-otc-order-flow-drawer\"\n | \"limit-orders-drawer\" // @TODO Activities cleanup\n | \"limit-order-details\" // @TODO Activities cleanup\n | \"otc-orders-drawer\" // @TODO Activities cleanup\n | \"otc-order-details\" // @TODO Activities cleanup\n | \"order-details\"\n | \"fill-order-review-and-confirm-drawer\"\n | `import-token-drawer-${\"from\" | \"to\" | undefined}`\n | \"activities-drawer\";\n\nexport const openDrawerAtom = atom<DrawerId | null>(null);\n\nopenDrawerAtom.onMount = (set) => {\n return () => {\n // Reset open drawer on unmount to prevent stuck open drawers on remount.\n // This happens, for example, on route change in the UI with any drawer open.\n set(null);\n };\n};\n\nexport const useOpenDrawerId = (): DrawerId | null => {\n return useAtomValue(openDrawerAtom);\n};\n\nexport const useDrawerControls = ({\n onOpen: _onOpen,\n onClose: _onClose,\n drawerId,\n}: {\n onOpen?: () => void;\n onClose?: () => void;\n drawerId: DrawerId;\n}): DrawerControls => {\n const [openDrawer, setOpenDrawer] = useAtom(openDrawerAtom);\n\n const open = openDrawer === drawerId;\n\n const logger = useLogger(drawerId);\n\n const onOpen = () => {\n logger.info(\"onOpen\");\n setOpenDrawer(drawerId);\n _onOpen?.();\n };\n const onClose = () => {\n logger.info(\"onClose\");\n setOpenDrawer((currentOpenDrawer) => {\n // only reset openDrawer if closing the drawer that is currently open,\n // so that we don't interfere with other drawers that are opening at the same time\n if (currentOpenDrawer === drawerId) {\n return null;\n }\n return currentOpenDrawer;\n });\n _onClose?.();\n };\n\n const onOpenChange = (open: boolean) => {\n if (open) {\n onOpen();\n } else {\n onClose();\n }\n };\n\n return {\n open,\n // expect onOpenChange not to be triggered for a controlled <Drawer open={open}/>.\n onOpenChange,\n onOpen,\n onClose,\n logger,\n };\n};\n\n/**\n * Drawer IDs that should be considered full-cover drawers.\n *\n * When a full-cover drawer opens, the widget container height is transitioned to a fixed WIDGET_HEIGHT_CLASSNAME height.\n * When the drawer closes, the widget container height is transitioned back to the natural height.\n */\nconst fullCoverDrawers = new Set<DrawerId>([\n \"trade-flow-drawer\",\n \"limit-order-flow-drawer\",\n \"otc-order-flow-drawer\",\n \"fill-otc-order-flow-drawer\",\n \"select-token-drawer-from\",\n \"select-token-drawer-to\",\n \"empty-select-token-drawer-from\",\n \"empty-select-token-drawer-to\",\n]);\n\nconst transition = \"height 0.3s ease-in-out\";\n\n/**\n * Hook that manages smooth height transitions for the main widget container when full-cover drawers open/close.\n *\n * When a full-cover drawer opens, this hook smoothly animates the widget height from its natural height\n * to a fixed WIDGET_HEIGHT_CLASSNAME height. When the drawer closes, it animates back to the original height and then\n * resets to auto for natural sizing.\n *\n * This prevents jarring height jumps and provides a polished user experience during drawer interactions.\n *\n * @returns {Object} containerRef - React ref that should be attached to the widget container element\n *\n * @example\n * const { containerRef } = useDrawerContainerHeightTransition();\n * return <div ref={containerRef} className=\"widget-container\">...</div>\n */\nexport const useDrawerContainerHeightTransition = (): {\n containerRef: React.RefObject<HTMLDivElement | null>;\n drawerId: DrawerId | null;\n isDrawerFullCover: boolean;\n isDrawerOpen: boolean;\n} => {\n const containerRef = useRef<HTMLDivElement>(null);\n const previousHeightRef = useRef<number | null>(null);\n\n const currentDrawerId = useOpenDrawerId();\n const isDrawerFullCover =\n !!currentDrawerId && fullCoverDrawers.has(currentDrawerId);\n\n useLayoutEffect(() => {\n if (containerRef.current) {\n const container = containerRef.current;\n\n if (isDrawerFullCover) {\n // Get current height\n const currentHeight = container.scrollHeight;\n // widget will be fully covered by the drawer, won't see the transition\n const shouldSkipTransition = currentHeight <= DRAWER_HEIGHT;\n if (shouldSkipTransition) {\n return;\n }\n previousHeightRef.current = currentHeight;\n container.style.overflow = \"hidden\";\n\n // Set current height first (no transition)\n container.style.transition = \"none\";\n container.style.height = `${currentHeight}px`;\n\n // Use requestAnimationFrame to ensure the first height is painted\n requestAnimationFrame(() => {\n // Enable transition and set target height\n container.style.transition = transition;\n container.style.height = `${DRAWER_HEIGHT}px`;\n });\n } else if (previousHeightRef.current !== null) {\n // Only transition back if we have a previous height\n container.style.transition = transition;\n container.style.height = `${previousHeightRef.current}px`;\n previousHeightRef.current = null;\n\n // After transition completes, reset to auto\n const onTransitionEnd = (event: TransitionEvent) => {\n if (\n event.target === container &&\n event.propertyName === \"height\" &&\n event.type === \"transitionend\"\n ) {\n container.style.height = \"auto\";\n container.style.transition = \"\";\n container.style.overflow = \"\";\n\n container.removeEventListener(\"transitionend\", onTransitionEnd);\n }\n };\n container.addEventListener(\"transitionend\", onTransitionEnd);\n\n return () => {\n // cleanup just in case\n container.removeEventListener(\"transitionend\", onTransitionEnd);\n };\n }\n }\n }, [isDrawerFullCover]);\n\n return {\n containerRef,\n drawerId: currentDrawerId,\n isDrawerFullCover,\n isDrawerOpen: !!currentDrawerId,\n };\n};\n"],"names":["openDrawerAtom","atom","onMount","set","useOpenDrawerId","useAtomValue","useDrawerControls","t0","$","_c","onOpen","_onOpen","onClose","_onClose","drawerId","openDrawer","setOpenDrawer","useAtom","open","logger","useLogger","t1","info","t2","currentOpenDrawer","t3","open_0","onOpenChange","t4","fullCoverDrawers","Set","transition","useDrawerContainerHeightTransition","containerRef","useRef","previousHeightRef","currentDrawerId","has","isDrawerFullCover","current","container","currentHeight","scrollHeight","shouldSkipTransition","DRAWER_HEIGHT","style","overflow","height","requestAnimationFrame","onTransitionEnd","event","target","propertyName","type","removeEventListener","addEventListener","useLayoutEffect","isDrawerOpen"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportToken.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/ImportToken/ImportToken.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAMtD,KAAK,gBAAgB,GAAG,sBAAsB,GAAG;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ImportToken.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/ImportToken/ImportToken.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAMtD,KAAK,gBAAgB,GAAG,sBAAsB,GAAG;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAkElD,CAAC"}
|