@reservoir0x/relay-kit-hooks
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
56 lines • 1.78 kB
JavaScript
import { MAINNET_RELAY_API, RelayClient, setParams } from '@reservoir0x/relay-sdk';
import fetcher from '../fetcher.js';
import { useQuery } from '@tanstack/react-query';
import { useMemo } from 'react';
export const queryExecutionStatus = function (baseApiUrl = MAINNET_RELAY_API, options, headers) {
return new Promise((resolve, reject) => {
const url = new URL(`${baseApiUrl}/intents/status/v2`);
let query = { ...options };
setParams(url, query);
fetcher(url.href, headers)
.then((response) => {
const request = {
url: url.href,
method: 'get'
};
resolve({
...response,
request
});
})
.catch((e) => {
reject(e);
});
});
};
export default function (client, options, onRequest, onResponse, queryOptions) {
const queryKey = ['useExecutionStatus', options];
const response = useQuery({
queryKey: queryKey,
queryFn: () => {
onRequest?.();
const promise = queryExecutionStatus(client?.baseApiUrl, options);
promise.then((response) => {
onResponse?.(response);
});
return promise;
},
enabled: client !== undefined && options !== undefined,
retry: false,
...queryOptions
});
return useMemo(() => ({
...response,
data: response.error ? undefined : response.data,
queryKey
}), [
response.data,
response.error,
response.isLoading,
response.isFetching,
response.isRefetching,
response.dataUpdatedAt,
queryKey
]);
}
//# sourceMappingURL=useExecutionStatus.js.map