Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/cool-waves-hope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@reservoir0x/relay-kit-hooks': minor
'@reservoir0x/relay-kit-ui': minor
---

Add quoteQueryOptions prop to SwapWidget to allow passing options to the useQuote hook
2 changes: 1 addition & 1 deletion packages/hooks/src/hooks/useQuote.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ type QueryType = typeof useQuery<
QuoteResponse,
QueryKey
>
type QueryOptions = Parameters<QueryType>['0']
export type QueryOptions = Parameters<QueryType>['0']

export const queryQuote = function (
baseApiUrl: string = MAINNET_RELAY_API,
Expand Down
6 changes: 5 additions & 1 deletion packages/hooks/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
//hooks
export { default as useRequests, queryRequests } from './hooks/useRequests.js'
export { default as useQuote, queryQuote } from './hooks/useQuote.js'
export {
default as useQuote,
queryQuote,
type QueryOptions as QuoteQueryOptions
} from './hooks/useQuote.js'
export {
default as useTokenList,
queryTokenList
Expand Down
4 changes: 4 additions & 0 deletions packages/ui/src/components/widgets/SwapWidget/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import { UnverifiedTokenModal } from '../../common/UnverifiedTokenModal.js'
import { alreadyAcceptedToken } from '../../../utils/localStorage.js'
import GasTopUpSection from './GasTopUpSection.js'
import { calculateUsdValue, getSwapEventData } from '../../../utils/quote.js'
import type { QuoteQueryOptions } from '@reservoir0x/relay-kit-hooks'

type BaseSwapWidgetProps = {
fromToken?: Token
Expand All @@ -57,6 +58,7 @@ type BaseSwapWidgetProps = {
disableInputAutoFocus?: boolean
popularChainIds?: number[]
disablePasteWalletAddressOption?: boolean
quoteQueryOptions?: QuoteQueryOptions
onFromTokenChange?: (token?: Token) => void
onToTokenChange?: (token?: Token) => void
onConnectWallet?: () => void
Expand Down Expand Up @@ -105,6 +107,7 @@ const SwapWidget: FC<SwapWidgetProps> = ({
disableInputAutoFocus = false,
popularChainIds,
disablePasteWalletAddressOption,
quoteQueryOptions,
onSetPrimaryWallet,
onLinkNewWallet,
onFromTokenChange,
Expand Down Expand Up @@ -167,6 +170,7 @@ const SwapWidget: FC<SwapWidgetProps> = ({
wallet={wallet}
linkedWallets={linkedWallets}
multiWalletSupportEnabled={multiWalletSupportEnabled}
quoteQueryOptions={quoteQueryOptions}
onSwapError={onSwapError}
onAnalyticEvent={onAnalyticEvent}
supportedWalletVMs={supportedWalletVMs}
Expand Down
4 changes: 4 additions & 0 deletions packages/ui/src/components/widgets/SwapWidgetRenderer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ import { errorToJSON } from '../../utils/errors.js'
import { useSwapButtonCta } from '../../hooks/widget/useSwapButtonCta.js'
import { sha256 } from '../../utils/hashing.js'
import { get15MinuteInterval } from '../../utils/time.js'
import type { QuoteQueryOptions } from '@reservoir0x/relay-kit-hooks'

export type TradeType = 'EXACT_INPUT' | 'EXPECTED_OUTPUT'

Expand All @@ -73,6 +74,7 @@ type SwapWidgetRendererProps = {
linkedWallets?: LinkedWallet[]
multiWalletSupportEnabled?: boolean
supportedWalletVMs: Omit<ChainVM, 'hypevm'>[]
quoteQueryOptions?: QuoteQueryOptions
onConnectWallet?: () => void
onAnalyticEvent?: (eventName: string, data?: any) => void
onSwapError?: (error: string, data?: Execute) => void
Expand Down Expand Up @@ -197,6 +199,7 @@ const SwapWidgetRenderer: FC<SwapWidgetRendererProps> = ({
multiWalletSupportEnabled = false,
linkedWallets,
supportedWalletVMs,
quoteQueryOptions = {},
children,
onAnalyticEvent,
onSwapError
Expand Down Expand Up @@ -469,6 +472,7 @@ const SwapWidgetRenderer: FC<SwapWidgetRendererProps> = ({
undefined,
undefined,
{
...quoteQueryOptions,
refetchOnWindowFocus: false,
enabled:
fromToken !== undefined &&
Expand Down