Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
queries.js 1.08 KiB
import axios from "axios";
import { useQuery } from "react-query";

export function useCryptoTimeSeriesData(name, days = 7, interval = "daily") {
  return useQuery(
    `${name}_${days}_days`,
    () => {
      return axios
        .get(
          `https://api.coingecko.com/api/v3/coins/${name}/market_chart?vs_currency=usd&days=${days}&interval=${interval}`
        )
        .then((res) => res.data);
    },
    {
      refetchOnWindowFocus: false,
      staleTime: 5 * 60000, // 5 minutes,
    }
  );
}

export function useCryptoList(
  currency = "usd",
  numberOfCurrencies = 20,
  sparkline = true
) {
  return useQuery(
    `list_of_${numberOfCurrencies}_currencies_in_${currency}_${
      sparkline ? "with" : "without"
    }_sparkline`,
    () => {
      return axios
        .get(
          `https://api.coingecko.com/api/v3/coins/markets?vs_currency=${currency}&order=market_cap_desc&per_page=${numberOfCurrencies}&page=1&sparkline=${sparkline}`
        )
        .then((res) => res.data);
    },
    {
      refetchOnWindowFocus: false,
      staleTime: 5 * 60000, // 5 minutes,
    }
  );
}