@velora-dex/widget 0.2.5-dev.6 → 0.2.5-dev.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js +43 -42
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts +2 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +30 -32
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +1 -3
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +114 -97
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +17 -14
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +1 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +16 -17
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.d.ts.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js +76 -73
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +3 -0
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/types.d.ts +2 -1
- package/dist/components/widget/ReceiverAddress/types.d.ts.map +1 -1
- package/dist/components/widget/Screen/GenericScreen.d.ts.map +1 -1
- package/dist/components/widget/Screen/GenericScreen.js +9 -8
- package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
- package/dist/components/widget/Screen/ScreenContainer.d.ts.map +1 -1
- package/dist/components/widget/Screen/ScreenContainer.js +7 -31
- package/dist/components/widget/Screen/ScreenContainer.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +5 -0
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts +3 -2
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +3 -3
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
- package/dist/configurator/components/common/ButtonGroup.d.ts +12 -0
- package/dist/configurator/components/common/ButtonGroup.d.ts.map +1 -0
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +49 -23
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +22 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/across/isCrosshcainPossible.d.ts +10 -0
- package/dist/core/across/isCrosshcainPossible.d.ts.map +1 -0
- package/dist/core/across/isCrosshcainPossible.js +41 -0
- package/dist/core/across/isCrosshcainPossible.js.map +1 -0
- package/dist/core/across/utils.d.ts +7 -3
- package/dist/core/across/utils.d.ts.map +1 -1
- package/dist/core/across/utils.js +10 -7
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +56 -33
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +72 -17
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +76 -66
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +15 -3
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +51 -12
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +33 -44
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +85 -21
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/types.d.ts +9 -1
- package/dist/core/inputs/state/types.d.ts.map +1 -1
- package/dist/core/limit/state/deadlineAtom.d.ts +10 -2
- package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js +15 -8
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/isCrosschainAtom.d.ts +3 -0
- package/dist/core/limit/state/isCrosschainAtom.d.ts.map +1 -0
- package/dist/core/limit/state/isCrosschainAtom.js +13 -0
- package/dist/core/limit/state/isCrosschainAtom.js.map +1 -0
- package/dist/core/limit/state/limitInputActionsAtom.d.ts +4 -1
- package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/limitInputActionsAtom.js +6 -2
- package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
- package/dist/core/limit/state/limitInputAmountAtom.js +1 -1
- package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
- package/dist/core/limit/state/limitTokenAtoms.d.ts +10 -0
- package/dist/core/limit/state/limitTokenAtoms.d.ts.map +1 -0
- package/dist/core/limit/state/limitTokenAtoms.js +17 -0
- package/dist/core/limit/state/limitTokenAtoms.js.map +1 -0
- package/dist/core/limit/state/receiverAddressAtom.d.ts +7 -0
- package/dist/core/limit/state/receiverAddressAtom.d.ts.map +1 -0
- package/dist/core/limit/state/receiverAddressAtom.js +40 -0
- package/dist/core/limit/state/receiverAddressAtom.js.map +1 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +94 -18
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.d.ts +0 -9
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +53 -21
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/state/utils.d.ts +9 -1
- package/dist/core/limit/state/utils.d.ts.map +1 -1
- package/dist/core/limit/state/utils.js +44 -2
- package/dist/core/limit/state/utils.js.map +1 -1
- package/dist/core/limit/useLimitRate.d.ts +9 -0
- package/dist/core/limit/useLimitRate.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +145 -8
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +132 -72
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/otc/state/deadlineAtom.d.ts +8 -3
- package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js +16 -10
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputActionsAtom.d.ts +4 -1
- package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -1
- package/dist/core/otc/state/otcInputActionsAtom.js +6 -2
- package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
- package/dist/core/screen/hooks/useOnClickOutside.d.ts +2 -0
- package/dist/core/screen/hooks/useOnClickOutside.d.ts.map +1 -0
- package/dist/core/screen/hooks/useOnClickOutside.js +30 -0
- package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -0
- package/dist/core/screen/screenByType.d.ts +1 -3
- package/dist/core/screen/screenByType.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.d.ts +2 -0
- package/dist/core/state/chainToAtom.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.js +37 -7
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.d.ts +0 -3
- package/dist/core/state/configEffectAtom.d.ts.map +1 -1
- package/dist/core/state/configEffectAtom.js +49 -37
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.d.ts +3 -0
- package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/getSelectableDestChains.d.ts +8 -0
- package/dist/core/state/getSelectableDestChains.d.ts.map +1 -0
- package/dist/core/state/getSelectableDestChains.js +34 -0
- package/dist/core/state/getSelectableDestChains.js.map +1 -0
- package/dist/events/getters/limit.d.ts.map +1 -1
- package/dist/events/getters/limit.js +5 -2
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.js +37 -25
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
- package/dist/events/types/formInput.d.ts +1 -1
- package/dist/events/types/formInput.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts +2 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +24 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +6 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +4 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js +12 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +19 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +4 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +81 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +3 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +2 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +8 -12
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +54 -21
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +3 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +25 -22
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.d.ts +3 -1
- package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js +36 -25
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.d.ts +7 -2
- package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
- package/dist/hooks/useAvailableCrosses.js +39 -25
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBridgeInfo.d.ts +4 -1
- package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
- package/dist/hooks/useBridgeInfo.js +26 -11
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useClickOutside.d.ts +1 -1
- package/dist/hooks/useClickOutside.d.ts.map +1 -1
- package/dist/hooks/useClickOutside.js +27 -13
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.d.ts +3 -1
- package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js +33 -22
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.d.ts +5 -1
- package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
- package/dist/hooks/useSelectableDestChains.js +42 -36
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/styles.css +3 -0
- package/package.json +2 -2
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +0 -15
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -92
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +0 -1
|
@@ -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 } from \"jotai\";\nimport { useAtom, useAtomValue } from \"@/core/store\";\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 | \"wrap-eth-drawer\"\n | \"connect-wallet-drawer\"\n | \"order-details\"\n | \"fill-order-review-and-confirm-drawer\"\n | `import-token-drawer-${\"from\" | \"to\" | undefined}`;\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\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
|
+
{"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 } from \"jotai\";\nimport { useAtom, useAtomValue } from \"@/core/store\";\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 | \"wrap-eth-drawer\"\n | \"connect-wallet-drawer\"\n | \"order-details\"\n | \"fill-order-review-and-confirm-drawer\"\n | `import-token-drawer-${\"from\" | \"to\" | undefined}`;\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\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): {\n drawerId: DrawerId | null;\n isDrawerFullCover: boolean;\n isDrawerOpen: boolean;\n} => {\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 }, [containerRef, isDrawerFullCover]);\n\n return {\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","previousHeightRef","useRef","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":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/OrderExpiryInput/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/OrderExpiryInput/index.tsx"],"names":[],"mappings":"AA4IA,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,4CAW5D,CAAC"}
|
|
@@ -7,7 +7,8 @@ import { ChevronIcon } from '../Icon/ChevronIcon.js';
|
|
|
7
7
|
import { useAtom } from '../../../core/store.js';
|
|
8
8
|
import { timeUnitAtom } from '../../../core/limit/state/deadlineAtom.js';
|
|
9
9
|
import { timeUnitAtom as timeUnitAtom$1 } from '../../../core/otc/state/deadlineAtom.js';
|
|
10
|
-
import { neverTimeUnit,
|
|
10
|
+
import { neverTimeUnit, minTimeUnit, timeUnits } from '../../../core/limit/state/constants.js';
|
|
11
|
+
import { useState, useEffect } from 'react';
|
|
11
12
|
|
|
12
13
|
const TimeUnitsDropdown = (t0) => {
|
|
13
14
|
const $ = distExports.c(19);
|
|
@@ -97,100 +98,102 @@ const TimeUnitsDropdown = (t0) => {
|
|
|
97
98
|
return t6;
|
|
98
99
|
};
|
|
99
100
|
const TimeUnitInput = (t0) => {
|
|
100
|
-
const $ = distExports.c(
|
|
101
|
+
const $ = distExports.c(20);
|
|
101
102
|
const {
|
|
102
103
|
type
|
|
103
104
|
} = t0;
|
|
104
105
|
const isLimit = type === "limit";
|
|
105
106
|
const [timeUnitObject, setTimeUnitObject] = useAtom(isLimit ? timeUnitAtom : timeUnitAtom$1);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
let t2;
|
|
123
|
-
if ($[2] !== isLimit || $[3] !== setTimeUnitObject) {
|
|
124
|
-
t2 = (values) => {
|
|
125
|
-
const floatValue = values.floatValue;
|
|
126
|
-
if (floatValue === neverTimeUnit.value && !isLimit) {
|
|
127
|
-
setTimeUnitObject(neverTimeUnit);
|
|
107
|
+
const onValueChange = (t1, sourceInfo) => {
|
|
108
|
+
const {
|
|
109
|
+
floatValue
|
|
110
|
+
} = t1;
|
|
111
|
+
if (sourceInfo.source === "prop") {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
setValue(floatValue ?? 0);
|
|
115
|
+
if (floatValue === neverTimeUnit.value && !isLimit) {
|
|
116
|
+
setTimeUnitObject(neverTimeUnit);
|
|
117
|
+
} else {
|
|
118
|
+
if (floatValue !== void 0) {
|
|
119
|
+
setTimeUnitObject((prev) => ({
|
|
120
|
+
label: prev.label,
|
|
121
|
+
value: floatValue
|
|
122
|
+
}));
|
|
128
123
|
} else {
|
|
129
|
-
|
|
130
|
-
setTimeUnitObject((prev_0) => {
|
|
131
|
-
if (prev_0.value === floatValue) {
|
|
132
|
-
return prev_0;
|
|
133
|
-
}
|
|
134
|
-
return {
|
|
135
|
-
...prev_0,
|
|
136
|
-
value: floatValue
|
|
137
|
-
};
|
|
138
|
-
});
|
|
139
|
-
} else {
|
|
140
|
-
setTimeUnitObject(minTimeUnit);
|
|
141
|
-
}
|
|
124
|
+
setTimeUnitObject(minTimeUnit);
|
|
142
125
|
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const [value, t2] = useState(timeUnitObject.value);
|
|
129
|
+
const setValue = t2;
|
|
130
|
+
let t3;
|
|
131
|
+
if ($[0] !== setValue || $[1] !== timeUnitObject.value) {
|
|
132
|
+
t3 = () => {
|
|
133
|
+
setValue(timeUnitObject.value);
|
|
143
134
|
};
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
$[
|
|
135
|
+
$[0] = setValue;
|
|
136
|
+
$[1] = timeUnitObject.value;
|
|
137
|
+
$[2] = t3;
|
|
147
138
|
} else {
|
|
148
|
-
|
|
139
|
+
t3 = $[2];
|
|
149
140
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
141
|
+
let t4;
|
|
142
|
+
if ($[3] !== timeUnitObject.value) {
|
|
143
|
+
t4 = [timeUnitObject.value];
|
|
144
|
+
$[3] = timeUnitObject.value;
|
|
145
|
+
$[4] = t4;
|
|
146
|
+
} else {
|
|
147
|
+
t4 = $[4];
|
|
148
|
+
}
|
|
149
|
+
useEffect(t3, t4);
|
|
150
|
+
let t5;
|
|
151
|
+
if ($[5] !== onValueChange || $[6] !== setValue || $[7] !== timeUnitObject.label || $[8] !== timeUnitObject.value || $[9] !== value) {
|
|
152
|
+
t5 = timeUnitObject.label !== neverTimeUnit.label && /* @__PURE__ */ jsx(NumericFormat, { className: "min-w-0 w-full text-lg font-geist-mono text-contrast-3 dark:text-contrast-8", placeholder: "0", value, onValueChange, decimalScale: 0, allowNegative: false, allowLeadingZeros: false, customInput: UnstyledInput, thousandSeparator: true, onBlur: () => {
|
|
153
|
+
setValue(timeUnitObject.value);
|
|
154
|
+
} });
|
|
154
155
|
$[5] = onValueChange;
|
|
155
|
-
$[6] =
|
|
156
|
-
$[7] = timeUnitObject.
|
|
157
|
-
$[8] =
|
|
156
|
+
$[6] = setValue;
|
|
157
|
+
$[7] = timeUnitObject.label;
|
|
158
|
+
$[8] = timeUnitObject.value;
|
|
159
|
+
$[9] = value;
|
|
160
|
+
$[10] = t5;
|
|
158
161
|
} else {
|
|
159
|
-
|
|
162
|
+
t5 = $[10];
|
|
160
163
|
}
|
|
161
|
-
let
|
|
162
|
-
if ($[
|
|
163
|
-
|
|
164
|
+
let t6;
|
|
165
|
+
if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
|
|
166
|
+
t6 = {
|
|
164
167
|
trigger: "w-full min-h-[28px]"
|
|
165
168
|
};
|
|
166
|
-
$[
|
|
169
|
+
$[11] = t6;
|
|
167
170
|
} else {
|
|
168
|
-
|
|
171
|
+
t6 = $[11];
|
|
169
172
|
}
|
|
170
|
-
let
|
|
171
|
-
if ($[
|
|
172
|
-
|
|
173
|
-
$[
|
|
174
|
-
$[
|
|
175
|
-
$[
|
|
176
|
-
$[
|
|
177
|
-
$[
|
|
173
|
+
let t7;
|
|
174
|
+
if ($[12] !== setTimeUnitObject || $[13] !== timeUnitObject.label || $[14] !== type || $[15] !== value) {
|
|
175
|
+
t7 = /* @__PURE__ */ jsx(TimeUnitsDropdown, { selectedTimeUnit: timeUnitObject.label, onSelect: setTimeUnitObject, expiryTimeValue: value, classes: t6, type });
|
|
176
|
+
$[12] = setTimeUnitObject;
|
|
177
|
+
$[13] = timeUnitObject.label;
|
|
178
|
+
$[14] = type;
|
|
179
|
+
$[15] = value;
|
|
180
|
+
$[16] = t7;
|
|
178
181
|
} else {
|
|
179
|
-
|
|
182
|
+
t7 = $[16];
|
|
180
183
|
}
|
|
181
|
-
let
|
|
182
|
-
if ($[
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
let t8;
|
|
185
|
+
if ($[17] !== t5 || $[18] !== t7) {
|
|
186
|
+
t8 = /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center flex-1", children: [
|
|
187
|
+
t5,
|
|
188
|
+
t7
|
|
186
189
|
] });
|
|
187
|
-
$[
|
|
188
|
-
$[
|
|
189
|
-
$[
|
|
190
|
+
$[17] = t5;
|
|
191
|
+
$[18] = t7;
|
|
192
|
+
$[19] = t8;
|
|
190
193
|
} else {
|
|
191
|
-
|
|
194
|
+
t8 = $[19];
|
|
192
195
|
}
|
|
193
|
-
return
|
|
196
|
+
return t8;
|
|
194
197
|
};
|
|
195
198
|
const OrderExpiryInput = (props) => {
|
|
196
199
|
const $ = distExports.c(3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/widget/OrderExpiryInput/index.tsx"],"sourcesContent":["import { UnstyledInput } from \"@/components/ui/input\";\nimport { NumericFormat, type NumericFormatProps } from \"react-number-format\";\nimport { DropdownWithItems } from \"../Dropdown/DropdownWithItems\";\nimport type { DropdownItem, DropdownWithItemsProps } from \"../Dropdown/types\";\nimport { ChevronIcon } from \"../Icon/ChevronIcon\";\nimport { useAtom } from \"@/core/store\";\nimport {\n timeUnitAtom as limitTimeUnitAtom,\n type TimeUnit,\n type TimeUnitObject,\n} from \"@/core/limit/state/deadlineAtom\";\nimport { timeUnitAtom as otcTimeUnitAtom } from \"@/core/otc/state/deadlineAtom\";\nimport {\n minTimeUnit,\n neverTimeUnit,\n timeUnits,\n} from \"@/core/limit/state/constants\";\n\ntype TimeUnitsDropdownProps = {\n expiryTimeValue: number;\n selectedTimeUnit: TimeUnit;\n onSelect: (timeUnit: TimeUnitObject) => void;\n classes?: DropdownWithItemsProps[\"classes\"];\n type: OrderExpiryInputProps[\"type\"];\n};\n\nconst TimeUnitsDropdown: React.FC<TimeUnitsDropdownProps> = ({\n expiryTimeValue,\n selectedTimeUnit,\n onSelect,\n classes,\n type,\n}) => {\n const isLimit = type === \"limit\";\n const specificTimeUnits = isLimit\n ? timeUnits.filter((item) => item.label !== \"never\")\n : timeUnits; // OTC can have 0 deadline\n\n const items = specificTimeUnits.map<DropdownItem>((item) => ({\n label: item.label,\n onSelect: () => {\n onSelect(item);\n },\n className: \"capitalize\",\n selected: item.label === selectedTimeUnit,\n }));\n\n const label =\n expiryTimeValue > 1 || selectedTimeUnit === neverTimeUnit.label\n ? selectedTimeUnit\n : selectedTimeUnit.slice(0, -1); // \"days\" -> \"day\"\n\n const menuTrigger = (\n <div className=\"flex justify-between items-center gap-1.5 text-contrast-3 dark:text-contrast-7 text-sm cursor-pointer\">\n <span className=\"capitalize\">{label}</span>\n <ChevronIcon width={12} height={12} className=\"pt-[2px]\" />\n </div>\n );\n\n return (\n <DropdownWithItems\n items={items}\n menuTrigger={menuTrigger}\n classes={classes}\n align=\"end\"\n />\n );\n};\n\nconst TimeUnitInput = ({ type }: OrderExpiryInputProps) => {\n const isLimit = type === \"limit\";\n const [timeUnitObject, setTimeUnitObject] = useAtom(\n isLimit ? limitTimeUnitAtom : otcTimeUnitAtom\n );\n\n const onTimeUnitChange = (currentTimeUnitObject: TimeUnitObject) => {\n setTimeUnitObject((prev) => {\n if (prev.label === currentTimeUnitObject.label) {\n return prev;\n }\n\n return currentTimeUnitObject;\n });\n };\n\n const onValueChange: NumericFormatProps[\"onValueChange\"] = (values) => {\n const floatValue = values.floatValue;\n\n if (floatValue === neverTimeUnit.value && !isLimit) {\n setTimeUnitObject(neverTimeUnit);\n } else if (floatValue !== undefined) {\n setTimeUnitObject((prev) => {\n if (prev.value === floatValue) return prev;\n return { ...prev, value: floatValue };\n });\n } else {\n setTimeUnitObject(minTimeUnit);\n }\n };\n\n return (\n <div className=\"flex justify-between items-center flex-1\">\n {timeUnitObject.label !== neverTimeUnit.label && (\n <NumericFormat\n className=\"min-w-0 w-full text-lg font-geist-mono text-contrast-3 dark:text-contrast-8\"\n placeholder=\"0\"\n value={timeUnitObject.value}\n onValueChange={onValueChange}\n decimalScale={0}\n allowNegative={false}\n allowLeadingZeros={false}\n customInput={UnstyledInput}\n thousandSeparator\n />\n )}\n <TimeUnitsDropdown\n selectedTimeUnit={timeUnitObject.label}\n onSelect={onTimeUnitChange}\n expiryTimeValue={timeUnitObject.value}\n classes={{\n trigger: \"w-full min-h-[28px]\",\n }}\n type={type}\n />\n </div>\n );\n};\n\ntype OrderExpiryInputProps = {\n type: \"limit\" | \"otc\";\n};\n\nexport const OrderExpiryInput = (props: OrderExpiryInputProps) => {\n return (\n <div className=\"flex flex-col gap-[8px] p-4 border-1 rounded-[12px] border-transparent transition-all focus-within:border-primary-azul-1 bg-contrast-8 dark:bg-contrast-2\">\n <div className=\"flex items-center justify-between text-xs text-contrast-3 dark:text-contrast-7\">\n <span>Order Expiry</span>\n </div>\n <div className=\"flex items-center justify-between gap-1.5\">\n <TimeUnitInput {...props} />\n </div>\n </div>\n );\n};\n"],"names":["TimeUnitsDropdown","t0","$","_c","expiryTimeValue","selectedTimeUnit","onSelect","classes","type","isLimit","t1","specificTimeUnits","timeUnits","filter","_temp","t2","item_0","label","item","className","selected","map","items","neverTimeUnit","slice","t3","t4","Symbol","for","t5","menuTrigger","t6","TimeUnitInput","timeUnitObject","setTimeUnitObject","useAtom","limitTimeUnitAtom","otcTimeUnitAtom","currentTimeUnitObject","prev","onTimeUnitChange","values","floatValue","value","undefined","prev_0","minTimeUnit","onValueChange","UnstyledInput","trigger","OrderExpiryInput","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/widget/OrderExpiryInput/index.tsx"],"sourcesContent":["import { UnstyledInput } from \"@/components/ui/input\";\nimport { NumericFormat, type NumericFormatProps } from \"react-number-format\";\nimport { DropdownWithItems } from \"../Dropdown/DropdownWithItems\";\nimport type { DropdownItem, DropdownWithItemsProps } from \"../Dropdown/types\";\nimport { ChevronIcon } from \"../Icon/ChevronIcon\";\nimport { useAtom } from \"@/core/store\";\nimport {\n timeUnitAtom as limitTimeUnitAtom,\n type TimeUnit,\n type TimeUnitObject,\n} from \"@/core/limit/state/deadlineAtom\";\nimport { timeUnitAtom as otcTimeUnitAtom } from \"@/core/otc/state/deadlineAtom\";\nimport {\n minTimeUnit,\n neverTimeUnit,\n timeUnits,\n} from \"@/core/limit/state/constants\";\nimport { useEffect, useState } from \"react\";\n\ntype TimeUnitsDropdownProps = {\n expiryTimeValue: number;\n selectedTimeUnit: TimeUnit;\n onSelect: (timeUnit: TimeUnitObject) => void;\n classes?: DropdownWithItemsProps[\"classes\"];\n type: OrderExpiryInputProps[\"type\"];\n};\n\nconst TimeUnitsDropdown: React.FC<TimeUnitsDropdownProps> = ({\n expiryTimeValue,\n selectedTimeUnit,\n onSelect,\n classes,\n type,\n}) => {\n const isLimit = type === \"limit\";\n const specificTimeUnits = isLimit\n ? timeUnits.filter((item) => item.label !== \"never\")\n : timeUnits; // OTC can have 0 deadline\n\n const items = specificTimeUnits.map<DropdownItem>((item) => ({\n label: item.label,\n onSelect: () => {\n onSelect(item);\n },\n className: \"capitalize\",\n selected: item.label === selectedTimeUnit,\n }));\n\n const label =\n expiryTimeValue > 1 || selectedTimeUnit === neverTimeUnit.label\n ? selectedTimeUnit\n : selectedTimeUnit.slice(0, -1); // \"days\" -> \"day\"\n\n const menuTrigger = (\n <div className=\"flex justify-between items-center gap-1.5 text-contrast-3 dark:text-contrast-7 text-sm cursor-pointer\">\n <span className=\"capitalize\">{label}</span>\n <ChevronIcon width={12} height={12} className=\"pt-[2px]\" />\n </div>\n );\n\n return (\n <DropdownWithItems\n items={items}\n menuTrigger={menuTrigger}\n classes={classes}\n align=\"end\"\n />\n );\n};\n\nconst TimeUnitInput = ({ type }: OrderExpiryInputProps) => {\n const isLimit = type === \"limit\";\n const [timeUnitObject, setTimeUnitObject] = useAtom(\n isLimit ? limitTimeUnitAtom : otcTimeUnitAtom\n );\n\n const onValueChange: NumericFormatProps[\"onValueChange\"] = (\n { floatValue },\n sourceInfo\n ) => {\n // source=\"event\" when changed by user input\n // source=\"prop\" when changed by prop update\n // do not respond to external value changes (e.g. when setting orderDeadline from inputProps)\n if (sourceInfo.source === \"prop\") return;\n\n setValue(floatValue ?? 0);\n\n if (floatValue === neverTimeUnit.value && !isLimit) {\n setTimeUnitObject(neverTimeUnit);\n } else if (floatValue !== undefined) {\n setTimeUnitObject((prev) => ({\n label: prev.label,\n value: floatValue,\n }));\n } else {\n setTimeUnitObject(minTimeUnit);\n }\n };\n\n // Use localValue to reflect user input immediately, even if it's temporarily invalid (e.g., empty or below minimum).\n // The atom enforces validation (e.g., minimum expiry for limit), but the input field doesn't update if the atom's value doesn't change.\n // This allows the user to see what they type, even if the atom silently corrects the value (e.g., always setting 10min for limit orders).\n // And at the same time, onBlur resets the input field to the atom's value to ensure consistency.\n const [value, setValue] = useState(timeUnitObject.value);\n // Sync local value when atom value changes (e.g., from inputProps)\n useEffect(() => {\n setValue(timeUnitObject.value);\n }, [timeUnitObject.value]);\n\n return (\n <div className=\"flex justify-between items-center flex-1\">\n {timeUnitObject.label !== neverTimeUnit.label && (\n <NumericFormat\n className=\"min-w-0 w-full text-lg font-geist-mono text-contrast-3 dark:text-contrast-8\"\n placeholder=\"0\"\n value={value}\n onValueChange={onValueChange}\n decimalScale={0}\n allowNegative={false}\n allowLeadingZeros={false}\n customInput={UnstyledInput}\n thousandSeparator\n onBlur={() => {\n setValue(timeUnitObject.value);\n }}\n />\n )}\n <TimeUnitsDropdown\n selectedTimeUnit={timeUnitObject.label}\n onSelect={setTimeUnitObject}\n expiryTimeValue={value}\n classes={{\n trigger: \"w-full min-h-[28px]\",\n }}\n type={type}\n />\n </div>\n );\n};\n\ntype OrderExpiryInputProps = {\n type: \"limit\" | \"otc\";\n};\n\nexport const OrderExpiryInput = (props: OrderExpiryInputProps) => {\n return (\n <div className=\"flex flex-col gap-[8px] p-4 border-1 rounded-[12px] border-transparent transition-all focus-within:border-primary-azul-1 bg-contrast-8 dark:bg-contrast-2\">\n <div className=\"flex items-center justify-between text-xs text-contrast-3 dark:text-contrast-7\">\n <span>Order Expiry</span>\n </div>\n <div className=\"flex items-center justify-between gap-1.5\">\n <TimeUnitInput {...props} />\n </div>\n </div>\n );\n};\n"],"names":["TimeUnitsDropdown","t0","$","_c","expiryTimeValue","selectedTimeUnit","onSelect","classes","type","isLimit","t1","specificTimeUnits","timeUnits","filter","_temp","t2","item_0","label","item","className","selected","map","items","neverTimeUnit","slice","t3","t4","Symbol","for","t5","menuTrigger","t6","TimeUnitInput","timeUnitObject","setTimeUnitObject","useAtom","limitTimeUnitAtom","otcTimeUnitAtom","onValueChange","sourceInfo","floatValue","source","setValue","value","undefined","prev","minTimeUnit","useState","useEffect","UnstyledInput","trigger","t7","t8","OrderExpiryInput","props"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"names":[],"mappings":"AAiBA,wBAAgB,yBAAyB,iDA+CxC"}
|
|
@@ -8,6 +8,7 @@ import { jotaiStore } from '../../../../core/store.js';
|
|
|
8
8
|
import { accountAtom } from '../../../../lib/web3/wagmi/external.js';
|
|
9
9
|
import { resetOrdersCountAtom } from '../../AppHeader/state/showMoreAtom.js';
|
|
10
10
|
import { enabledSrcChainsAtom } from '../../../../core/state/enabledChainsAtom.js';
|
|
11
|
+
import { limitReceiverAddressAtom } from '../../../../core/limit/state/receiverAddressAtom.js';
|
|
11
12
|
|
|
12
13
|
function subscribeToAccountChanges() {
|
|
13
14
|
return watchAccount(wagmiConfig, {
|
|
@@ -18,6 +19,7 @@ function subscribeToAccountChanges() {
|
|
|
18
19
|
const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);
|
|
19
20
|
if (!address || chainId === void 0 || !isSupportedChainId(chainId) || !enabledSrcChains.includes(chainId)) {
|
|
20
21
|
jotaiStore.set(receiverAddressAtom, void 0);
|
|
22
|
+
jotaiStore.set(limitReceiverAddressAtom, void 0);
|
|
21
23
|
return;
|
|
22
24
|
}
|
|
23
25
|
jotaiStore.set(accountAtom, address);
|
|
@@ -41,6 +43,7 @@ function subscribeToAccountChanges() {
|
|
|
41
43
|
})
|
|
42
44
|
});
|
|
43
45
|
jotaiStore.set(receiverAddressAtom, isEOA ? address : void 0);
|
|
46
|
+
jotaiStore.set(limitReceiverAddressAtom, isEOA ? address : void 0);
|
|
44
47
|
}
|
|
45
48
|
});
|
|
46
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.js","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { watchAccount } from \"@wagmi/core\";\nimport { receiverAddressAtom } from \"./receiverAddressAtom\";\n\nimport { queryClient } from \"@/lib/queryClient\";\n\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport {\n constructIsContractAtAddressQueryKey,\n getIsContractAtAddress,\n} from \"@/hooks/getCode/query\";\nimport { jotaiStore } from \"@/core/store\";\nimport { accountAtom } from \"@/lib/web3/wagmi/external\";\nimport { resetOrdersCountAtom } from \"../../AppHeader/state/showMoreAtom\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\n\nexport function subscribeToAccountChanges() {\n // subscribes to wallet account changes\n // config.subscribe(() => getAccount(config), onChange)\n return watchAccount(wagmiConfig, {\n onChange: async ({ address, chainId }) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n\n // reset the receiver address if the address is not valid or chainId is not supported\n if (\n !address ||\n chainId === undefined ||\n !isSupportedChainId(chainId) ||\n !enabledSrcChains.includes(chainId)\n ) {\n jotaiStore.set(receiverAddressAtom, undefined);\n return;\n }\n\n // internal account atom to trigger atomEffects\n jotaiStore.set(accountAtom, address);\n // reset activities pagination\n jotaiStore.set(resetOrdersCountAtom);\n\n if (chainId !== wagmiConfig.state.chainId)\n // wallet chainId takes precedence\n wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n const queryKey = constructIsContractAtAddressQueryKey({\n chainId,\n address,\n });\n\n const { isEOA } = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () =>\n getIsContractAtAddress({\n address,\n chainId,\n }),\n });\n\n // save if address is EOA, otherwise reset\n jotaiStore.set(receiverAddressAtom, isEOA ? address : undefined);\n },\n });\n}\n"],"names":["subscribeToAccountChanges","watchAccount","wagmiConfig","onChange","address","chainId","enabledSrcChains","jotaiStore","get","enabledSrcChainsAtom","undefined","isSupportedChainId","includes","set","receiverAddressAtom","accountAtom","resetOrdersCountAtom","state","setState","prev","queryKey","constructIsContractAtAddressQueryKey","isEOA","queryClient","ensureQueryData","queryFn","getIsContractAtAddress"],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { watchAccount } from \"@wagmi/core\";\nimport { receiverAddressAtom } from \"./receiverAddressAtom\";\n\nimport { queryClient } from \"@/lib/queryClient\";\n\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport {\n constructIsContractAtAddressQueryKey,\n getIsContractAtAddress,\n} from \"@/hooks/getCode/query\";\nimport { jotaiStore } from \"@/core/store\";\nimport { accountAtom } from \"@/lib/web3/wagmi/external\";\nimport { resetOrdersCountAtom } from \"../../AppHeader/state/showMoreAtom\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { limitReceiverAddressAtom } from \"@/core/limit/state/receiverAddressAtom\";\n\nexport function subscribeToAccountChanges() {\n // subscribes to wallet account changes\n // config.subscribe(() => getAccount(config), onChange)\n return watchAccount(wagmiConfig, {\n onChange: async ({ address, chainId }) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n\n // reset the receiver address if the address is not valid or chainId is not supported\n if (\n !address ||\n chainId === undefined ||\n !isSupportedChainId(chainId) ||\n !enabledSrcChains.includes(chainId)\n ) {\n jotaiStore.set(receiverAddressAtom, undefined);\n jotaiStore.set(limitReceiverAddressAtom, undefined);\n return;\n }\n\n // internal account atom to trigger atomEffects\n jotaiStore.set(accountAtom, address);\n // reset activities pagination\n jotaiStore.set(resetOrdersCountAtom);\n\n if (chainId !== wagmiConfig.state.chainId)\n // wallet chainId takes precedence\n wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n const queryKey = constructIsContractAtAddressQueryKey({\n chainId,\n address,\n });\n\n const { isEOA } = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () =>\n getIsContractAtAddress({\n address,\n chainId,\n }),\n });\n\n // save if address is EOA, otherwise reset\n jotaiStore.set(receiverAddressAtom, isEOA ? address : undefined);\n jotaiStore.set(limitReceiverAddressAtom, isEOA ? address : undefined);\n },\n });\n}\n"],"names":["subscribeToAccountChanges","watchAccount","wagmiConfig","onChange","address","chainId","enabledSrcChains","jotaiStore","get","enabledSrcChainsAtom","undefined","isSupportedChainId","includes","set","receiverAddressAtom","limitReceiverAddressAtom","accountAtom","resetOrdersCountAtom","state","setState","prev","queryKey","constructIsContractAtAddressQueryKey","isEOA","queryClient","ensureQueryData","queryFn","getIsContractAtAddress"],"mappings":";;;;;;;;;;;;AAiBO,SAASA,yBAAAA,GAA4B;AAG1C,EAAA,OAAOC,aAAaC,WAAAA,EAAa;AAAA,IAC/BC,UAAU,OAAO;AAAA,MAAEC,OAAAA;AAAAA,MAASC;AAAAA,KAAQ,KAAM;AACxC,MAAA,MAAMC,gBAAAA,GAAmBC,UAAAA,CAAWC,GAAAA,CAAIC,oBAAoB,CAAA;AAG5D,MAAA,IACE,CAACL,OAAAA,IACDC,OAAAA,KAAYK,MAAAA,IACZ,CAACC,kBAAAA,CAAmBN,OAAO,CAAA,IAC3B,CAACC,gBAAAA,CAAiBM,QAAAA,CAASP,OAAO,CAAA,EAClC;AACAE,QAAAA,UAAAA,CAAWM,GAAAA,CAAIC,qBAAqBJ,MAAS,CAAA;AAC7CH,QAAAA,UAAAA,CAAWM,GAAAA,CAAIE,0BAA0BL,MAAS,CAAA;AAClD,QAAA;AAAA,MACF;AAGAH,MAAAA,UAAAA,CAAWM,GAAAA,CAAIG,aAAaZ,OAAO,CAAA;AAEnCG,MAAAA,UAAAA,CAAWM,IAAII,oBAAoB,CAAA;AAEnC,MAAA,IAAIZ,OAAAA,KAAYH,YAAYgB,KAAAA,CAAMb,OAAAA;AAEhCH,QAAAA,WAAAA,CAAYiB,SAAUC,CAAAA,IAAAA,MAAU;AAAA,UAAE,GAAGA,IAAAA;AAAAA,UAAMf;AAAAA,SAAQ,CAAE,CAAA;AAEvD,MAAA,MAAMgB,WAAWC,oCAAAA,CAAqC;AAAA,QACpDjB,OAAAA;AAAAA,QACAD;AAAAA,OACD,CAAA;AAED,MAAA,MAAM;AAAA,QAAEmB;AAAAA,OAAM,GAAI,MAAMC,WAAAA,CAAYC,eAAAA,CAAgB;AAAA,QAClDJ,QAAAA;AAAAA,QACAK,OAAAA,EAASA,MACPC,sBAAAA,CAAuB;AAAA,UACrBvB,OAAAA;AAAAA,UACAC;AAAAA,SACD;AAAA,OACJ,CAAA;AAGDE,MAAAA,UAAAA,CAAWM,GAAAA,CAAIC,mBAAAA,EAAqBS,KAAAA,GAAQnB,OAAAA,GAAUM,MAAS,CAAA;AAC/DH,MAAAA,UAAAA,CAAWM,GAAAA,CAAIE,wBAAAA,EAA0BQ,KAAAA,GAAQnB,OAAAA,GAAUM,MAAS,CAAA;AAAA,IACtE;AAAA,GACD,CAAA;AACH;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { WithClasses } from '../../../types/withClasses';
|
|
2
2
|
import { UseReceiverAddressReturn } from './state/types';
|
|
3
|
+
import { TradeMode } from '../../../core/state/tradeModeAtom';
|
|
3
4
|
export type ReceiverAddressProps = UseReceiverAddressReturn & {
|
|
4
|
-
type:
|
|
5
|
+
type: TradeMode;
|
|
5
6
|
} & WithClasses<"root">;
|
|
6
7
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/ReceiverAddress/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/ReceiverAddress/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG;IAC5D,IAAI,EAAE,SAAS,CAAC;CACjB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Screen/GenericScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GenericScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Screen/GenericScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,KAAK,kBAAkB,GAAG,iBAAiB,CACzC;IACE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,GAAG,WAAW,CAAC,MAAM,CAAC,CACxB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,2GAS3B,kBAAkB,4CA8CpB,CAAC"}
|
|
@@ -16,6 +16,7 @@ const GenericScreen = (t0) => {
|
|
|
16
16
|
title
|
|
17
17
|
} = t0;
|
|
18
18
|
const _showBackButton = showBackButton && onGoBack;
|
|
19
|
+
const _showCloseButton = showCloseButton && onClose;
|
|
19
20
|
const shouldShowHeader = !!(_showBackButton || title || showCloseButton || closeButtonReplacement);
|
|
20
21
|
const t1 = classes?.root;
|
|
21
22
|
let t2;
|
|
@@ -27,20 +28,20 @@ const GenericScreen = (t0) => {
|
|
|
27
28
|
t2 = $[1];
|
|
28
29
|
}
|
|
29
30
|
let t3;
|
|
30
|
-
if ($[2] !== _showBackButton || $[3] !==
|
|
31
|
+
if ($[2] !== _showBackButton || $[3] !== _showCloseButton || $[4] !== closeButtonReplacement || $[5] !== onClose || $[6] !== onGoBack || $[7] !== shouldShowHeader || $[8] !== title) {
|
|
31
32
|
t3 = shouldShowHeader && /* @__PURE__ */ jsxs("div", { className: "pb-4 pt-6 px-6 flex items-center justify-between", children: [
|
|
32
33
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7", children: [
|
|
33
|
-
_showBackButton && /* @__PURE__ */ jsx(ArrowLeft, { className: "ring-offset-background cursor-pointer focus:ring-ring 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 }),
|
|
34
|
+
_showBackButton && /* @__PURE__ */ jsx("button", { children: /* @__PURE__ */ jsx(ArrowLeft, { className: "ring-offset-background cursor-pointer focus:ring-ring 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 }) }),
|
|
34
35
|
title
|
|
35
36
|
] }),
|
|
36
|
-
closeButtonReplacement ?? (
|
|
37
|
+
closeButtonReplacement ?? (_showCloseButton && /* @__PURE__ */ jsx("button", { children: /* @__PURE__ */ jsx("div", { className: "ring-offset-background cursor-pointer focus:ring-ring 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: onClose, children: /* @__PURE__ */ jsx(XIcon, {}) }) }))
|
|
37
38
|
] });
|
|
38
39
|
$[2] = _showBackButton;
|
|
39
|
-
$[3] =
|
|
40
|
-
$[4] =
|
|
41
|
-
$[5] =
|
|
42
|
-
$[6] =
|
|
43
|
-
$[7] =
|
|
40
|
+
$[3] = _showCloseButton;
|
|
41
|
+
$[4] = closeButtonReplacement;
|
|
42
|
+
$[5] = onClose;
|
|
43
|
+
$[6] = onGoBack;
|
|
44
|
+
$[7] = shouldShowHeader;
|
|
44
45
|
$[8] = title;
|
|
45
46
|
$[9] = t3;
|
|
46
47
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericScreen.js","sources":["../../../../src/components/widget/Screen/GenericScreen.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"GenericScreen.js","sources":["../../../../src/components/widget/Screen/GenericScreen.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport type { WithClasses } from \"@/types/withClasses\";\nimport { ArrowLeft, XIcon } from \"lucide-react\";\nimport type { PropsWithChildren } from \"react\";\n\ntype GenericScreenProps = PropsWithChildren<\n {\n title?: string;\n showBackButton?: boolean;\n showCloseButton?: boolean;\n closeButtonReplacement?: React.ReactNode;\n onGoBack?: () => void;\n onClose?: () => void;\n } & WithClasses<\"root\">\n>;\n\nexport const GenericScreen = ({\n children,\n classes,\n showBackButton,\n showCloseButton,\n closeButtonReplacement,\n onGoBack,\n onClose,\n title,\n}: GenericScreenProps) => {\n const _showBackButton = showBackButton && onGoBack;\n const _showCloseButton = showCloseButton && onClose;\n const shouldShowHeader = !!(\n _showBackButton ||\n title ||\n showCloseButton ||\n closeButtonReplacement\n );\n\n return (\n <div\n className={cn(\n \"bg-contrast-8 dark:bg-contrast-2 border border-contrast-7 dark:border-contrast-4 rounded-xxl min-w-[375px] w-full\",\n classes?.root\n )}\n >\n {shouldShowHeader && (\n <div className=\"pb-4 pt-6 px-6 flex items-center justify-between\">\n <div className=\"flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7\">\n {_showBackButton && (\n <button>\n <ArrowLeft\n className=\"ring-offset-background cursor-pointer focus:ring-ring 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}\n />\n </button>\n )}\n {title}\n </div>\n {closeButtonReplacement ??\n (_showCloseButton && (\n <button>\n <div\n className=\"ring-offset-background cursor-pointer focus:ring-ring 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={onClose}\n >\n <XIcon />\n </div>\n </button>\n ))}\n </div>\n )}\n {children}\n </div>\n );\n};\n"],"names":["GenericScreen","t0","$","_c","children","classes","showBackButton","showCloseButton","closeButtonReplacement","onGoBack","onClose","title","_showBackButton","_showCloseButton","shouldShowHeader","t1","root","t2","cn","t3","t4"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Screen/ScreenContainer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScreenContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Screen/ScreenContainer.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAAI,eAEjC;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,4CAUA,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,eAEtC;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,4CAEA,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
3
|
-
import { screenTypesClosableByOutsideClick } from '../../../core/screen/screenByType.js';
|
|
4
|
-
import { useScreen } from '../../../core/screen/state/screenAtom.js';
|
|
5
|
-
import { useClickOutside } from '../../../hooks/useClickOutside.js';
|
|
6
3
|
|
|
7
4
|
const MainScreenContainer = (t0) => {
|
|
8
5
|
const $ = distExports.c(2);
|
|
@@ -20,40 +17,19 @@ const MainScreenContainer = (t0) => {
|
|
|
20
17
|
return t1;
|
|
21
18
|
};
|
|
22
19
|
const SecondaryScreenContainer = (t0) => {
|
|
23
|
-
const $ = distExports.c(
|
|
20
|
+
const $ = distExports.c(2);
|
|
24
21
|
const {
|
|
25
22
|
children
|
|
26
23
|
} = t0;
|
|
27
|
-
const {
|
|
28
|
-
screen,
|
|
29
|
-
closeScreen
|
|
30
|
-
} = useScreen();
|
|
31
24
|
let t1;
|
|
32
|
-
if ($[0] !==
|
|
33
|
-
t1 = (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
closeScreen();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
$[0] = closeScreen;
|
|
40
|
-
$[1] = screen?.screenType;
|
|
41
|
-
$[2] = t1;
|
|
42
|
-
} else {
|
|
43
|
-
t1 = $[2];
|
|
44
|
-
}
|
|
45
|
-
const onClickOutside = t1;
|
|
46
|
-
const ref = useClickOutside(onClickOutside);
|
|
47
|
-
let t2;
|
|
48
|
-
if ($[3] !== children || $[4] !== ref) {
|
|
49
|
-
t2 = /* @__PURE__ */ jsx("div", { ref, className: "relative z-2", children });
|
|
50
|
-
$[3] = children;
|
|
51
|
-
$[4] = ref;
|
|
52
|
-
$[5] = t2;
|
|
25
|
+
if ($[0] !== children) {
|
|
26
|
+
t1 = /* @__PURE__ */ jsx("div", { className: "relative z-2", children });
|
|
27
|
+
$[0] = children;
|
|
28
|
+
$[1] = t1;
|
|
53
29
|
} else {
|
|
54
|
-
|
|
30
|
+
t1 = $[1];
|
|
55
31
|
}
|
|
56
|
-
return
|
|
32
|
+
return t1;
|
|
57
33
|
};
|
|
58
34
|
|
|
59
35
|
export { MainScreenContainer, SecondaryScreenContainer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenContainer.js","sources":["../../../../src/components/widget/Screen/ScreenContainer.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"ScreenContainer.js","sources":["../../../../src/components/widget/Screen/ScreenContainer.tsx"],"sourcesContent":["export const MainScreenContainer = ({\n children,\n}: {\n children?: React.ReactNode;\n}) => {\n return (\n <div\n className={\n \"relative flex flex-col pt-[24px] px-[24px] pb-[18px] bg-contrast-9 dark:bg-contrast-3 border border-contrast-7 dark:border-contrast-4 rounded-xxl\"\n }\n >\n {children}\n </div>\n );\n};\n\nexport const SecondaryScreenContainer = ({\n children,\n}: {\n children?: React.ReactNode;\n}) => {\n return <div className=\"relative z-2\">{children}</div>;\n};\n"],"names":["MainScreenContainer","t0","$","_c","children","t1","SecondaryScreenContainer"],"mappings":";;;AAAO,MAAMA,sBAAsBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAAAH,EAAAA;AAInC,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,QAAAA,EAAA;AAEGC,IAAAA,EAAAA,mBAAA,GAAA,CAAA,KAAA,EAAA,EAEI,SAAA,EAAA,mJAAA,EAGDD,QAAAA,EACH,CAAA;AAAMF,IAAAA,CAAAA,MAAAE,QAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OANNG,EAAAA;AAMM;AAIH,MAAMC,2BAA2BL,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAAAH,EAAAA;AAIxC,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,QAAAA,EAAA;AACQC,IAAAA,EAAAA,mBAAA,GAAA,CAAA,KAAA,EAAA,EAAe,SAAA,EAAA,cAAA,EAAgBD,QAAAA,EAAS,CAAA;AAAMF,IAAAA,CAAAA,MAAAE,QAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA9CG,EAAAA;AAA8C;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapModeActionsAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"swapModeActionsAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,eAAO,MAAM,eAAe;;CAoB1B,CAAC"}
|
|
@@ -6,6 +6,8 @@ import { deltaEnabledOnAPI } from '../../../../lib/constants/delta.js';
|
|
|
6
6
|
import { wagmiConfig } from '../../../../lib/web3/wagmi/config.js';
|
|
7
7
|
import { swapTokenToAtom } from '../../../../core/inputs/state/selectedTokenAtom.js';
|
|
8
8
|
import { userSwapModeAtom } from './swapModeAtom.js';
|
|
9
|
+
import { limitTokenToAtom } from '../../../../core/limit/state/limitTokenAtoms.js';
|
|
10
|
+
import { isLimitCrossChainAtom } from '../../../../core/limit/state/isCrosschainAtom.js';
|
|
9
11
|
|
|
10
12
|
const setSwapModeAtom = atom(null, (get, set, mode) => {
|
|
11
13
|
if (mode === "delta") {
|
|
@@ -19,6 +21,9 @@ const setSwapModeAtom = atom(null, (get, set, mode) => {
|
|
|
19
21
|
if (get(isCrossChainAtom)) {
|
|
20
22
|
set(swapTokenToAtom, void 0);
|
|
21
23
|
}
|
|
24
|
+
if (get(isLimitCrossChainAtom)) {
|
|
25
|
+
set(limitTokenToAtom, void 0);
|
|
26
|
+
}
|
|
22
27
|
set(userSwapModeAtom, mode);
|
|
23
28
|
set(deltaParamAtom, false);
|
|
24
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapModeActionsAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { deltaParamAtom } from \"../../TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { isCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { swapTokenToAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport type { SwapMode } from \"./types\";\nimport { userSwapModeAtom } from \"./swapModeAtom\";\n\nexport const setSwapModeAtom = atom(null, (get, set, mode: SwapMode) => {\n if (mode === \"delta\") {\n const enabledInConfig = get(widgetConfigAtom).enableDelta;\n const enabledOnAPI = deltaEnabledOnAPI[wagmiConfig.state.chainId];\n\n if (enabledInConfig && enabledOnAPI) {\n set(userSwapModeAtom, mode);\n set(deltaParamAtom, true);\n }\n } else {\n if (get(isCrossChainAtom)) {\n set(swapTokenToAtom, undefined);\n }\n set(userSwapModeAtom, mode);\n set(deltaParamAtom, false);\n }\n});\n"],"names":["setSwapModeAtom","atom","get","set","mode","enabledInConfig","widgetConfigAtom","enableDelta","enabledOnAPI","deltaEnabledOnAPI","wagmiConfig","state","chainId","userSwapModeAtom","deltaParamAtom","isCrossChainAtom","swapTokenToAtom","undefined"],"mappings":"
|
|
1
|
+
{"version":3,"file":"swapModeActionsAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { deltaParamAtom } from \"../../TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { isCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { swapTokenToAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport type { SwapMode } from \"./types\";\nimport { userSwapModeAtom } from \"./swapModeAtom\";\nimport { limitTokenToAtom } from \"@/core/limit/state/limitTokenAtoms\";\nimport { isLimitCrossChainAtom } from \"@/core/limit/state/isCrosschainAtom\";\n\nexport const setSwapModeAtom = atom(null, (get, set, mode: SwapMode) => {\n if (mode === \"delta\") {\n const enabledInConfig = get(widgetConfigAtom).enableDelta;\n const enabledOnAPI = deltaEnabledOnAPI[wagmiConfig.state.chainId];\n\n if (enabledInConfig && enabledOnAPI) {\n set(userSwapModeAtom, mode);\n set(deltaParamAtom, true);\n }\n } else {\n // delta mode disabled, reset tokenTo\n if (get(isCrossChainAtom)) {\n set(swapTokenToAtom, undefined);\n }\n if (get(isLimitCrossChainAtom)) {\n set(limitTokenToAtom, undefined);\n }\n set(userSwapModeAtom, mode);\n set(deltaParamAtom, false);\n }\n});\n"],"names":["setSwapModeAtom","atom","get","set","mode","enabledInConfig","widgetConfigAtom","enableDelta","enabledOnAPI","deltaEnabledOnAPI","wagmiConfig","state","chainId","userSwapModeAtom","deltaParamAtom","isCrossChainAtom","swapTokenToAtom","undefined","isLimitCrossChainAtom","limitTokenToAtom"],"mappings":";;;;;;;;;;;AAYO,MAAMA,kBAAkBC,IAAAA,CAAK,IAAA,EAAM,CAACC,GAAAA,EAAKC,KAAKC,IAAAA,KAAmB;AACtE,EAAA,IAAIA,SAAS,OAAA,EAAS;AACpB,IAAA,MAAMC,eAAAA,GAAkBH,GAAAA,CAAII,gBAAgB,CAAA,CAAEC,WAAAA;AAC9C,IAAA,MAAMC,YAAAA,GAAeC,iBAAAA,CAAkBC,WAAAA,CAAYC,KAAAA,CAAMC,OAAO,CAAA;AAEhE,IAAA,IAAIP,mBAAmBG,YAAAA,EAAc;AACnCL,MAAAA,GAAAA,CAAIU,kBAAkBT,IAAI,CAAA;AAC1BD,MAAAA,GAAAA,CAAIW,gBAAgB,IAAI,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA,MAAO;AAEL,IAAA,IAAIZ,GAAAA,CAAIa,gBAAgB,CAAA,EAAG;AACzBZ,MAAAA,GAAAA,CAAIa,iBAAiBC,MAAS,CAAA;AAAA,IAChC;AACA,IAAA,IAAIf,GAAAA,CAAIgB,qBAAqB,CAAA,EAAG;AAC9Bf,MAAAA,GAAAA,CAAIgB,kBAAkBF,MAAS,CAAA;AAAA,IACjC;AACAd,IAAAA,GAAAA,CAAIU,kBAAkBT,IAAI,CAAA;AAC1BD,IAAAA,GAAAA,CAAIW,gBAAgB,KAAK,CAAA;AAAA,EAC3B;AACF,CAAC;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
1
|
+
import { SwapSideUnion } from '@velora-dex/sdk';
|
|
2
|
+
export declare const swapSideAtom: import('jotai').Atom<SwapSideUnion>;
|
|
3
|
+
export declare const useSwapSide: () => SwapSideUnion;
|
|
3
4
|
//# sourceMappingURL=swapSideAtom.d.ts.map
|