@lifi/widget
Version:
LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.
34 lines (33 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useTokenSearch = void 0;
const react_query_1 = require("@tanstack/react-query");
const providers_1 = require("../providers");
const useTokenSearch = (chainId, tokenQuery, enabled) => {
const lifi = (0, providers_1.useLiFi)();
const queryClient = (0, react_query_1.useQueryClient)();
const { data, isLoading } = (0, react_query_1.useQuery)(['token-search', chainId, tokenQuery], async ({ queryKey: [, chainId, tokenQuery], signal }) => {
const token = await lifi.getToken(chainId, tokenQuery, {
signal,
});
if (token) {
queryClient.setQueriesData(['tokens'], (data) => {
if (data &&
!data.tokens[chainId]?.some((t) => t.address === token.address)) {
const clonedData = { ...data };
clonedData.tokens[chainId]?.push(token);
return clonedData;
}
});
}
return token;
}, {
enabled: Boolean(chainId && tokenQuery && enabled),
retry: false,
});
return {
token: data,
isLoading,
};
};
exports.useTokenSearch = useTokenSearch;