index.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. async function fetchCurrency() {
  2. try {
  3. const response = await fetch(
  4. "https://api.coingecko.com/api/v3/exchange_rates"
  5. );
  6. const currency = await response.json();
  7. return currency.rates;
  8. } catch (error) {
  9. console.error(error);
  10. }
  11. }
  12. async function renderCurrency() {
  13. const currencies = await fetchCurrency();
  14. const curArray = [];
  15. for (let key in currencies) {
  16. curArray.push(key);
  17. }
  18. let firstSelect = document.querySelector("#firstSelect");
  19. for (let i = 0; i < curArray.length; i++) {
  20. let option = document.createElement("option");
  21. option.setAttribute("value", curArray[i]);
  22. option.innerHTML = currencies[curArray[i]]["name"];
  23. firstSelect.appendChild(option);
  24. }
  25. return currencies;
  26. }
  27. renderCurrency();
  28. async function convert() {
  29. const objCur = await renderCurrency();
  30. const curArray = [];
  31. for (let key in objCur) {
  32. curArray.push(key);
  33. }
  34. let currency1 = document.querySelector("#firstCurrency");
  35. let currency2 = document.querySelector("#secondCurrency");
  36. let value1 = document.querySelector("#firstInput");
  37. let value2 = document.querySelector("#secondInput");
  38. if (currency1.value === currency2.value) {
  39. value2.value = value1.value;
  40. }
  41. if (currency2.value === "btc"s) {
  42. value2.value = objCur[currency1.value]["value"];
  43. }
  44. if (currency1.value !== currency2.value) {
  45. value2.value =
  46. (value1.value ** 2 * objCur[currency2.value]["value"]) /
  47. (value1.value / (1 / objCur[currency1.value]["value"]));
  48. }
  49. currency1.disabled = true;
  50. currency2.disabled = true;
  51. value1.disabled = true;
  52. let divButton = document.querySelector(".buttonBox");
  53. divButton.firstChild.remove();
  54. let reloadButton = document.createElement("button");
  55. reloadButton.className = "btn btn-outline-secondary btn-lg";
  56. reloadButton.innerText = "Try again";
  57. divButton.appendChild(reloadButton);
  58. reloadButton.onclick = function () {
  59. window.location.reload();
  60. };
  61. }