File size: 2,791 Bytes
77ebda8
 
 
 
 
 
 
 
 
 
94367ea
77ebda8
 
94367ea
77ebda8
 
 
 
94367ea
 
 
 
 
 
7a5bae5
77ebda8
7a5bae5
77ebda8
94367ea
 
 
77ebda8
94367ea
 
 
77ebda8
94367ea
77ebda8
 
 
 
 
 
 
94367ea
 
 
77ebda8
94367ea
77ebda8
94367ea
77ebda8
 
7a5bae5
94367ea
7a5bae5
 
77ebda8
 
 
 
7a5bae5
77ebda8
 
 
 
7a5bae5
77ebda8
 
 
 
7a5bae5
ac28244
77ebda8
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// Ambil elemen
const amountInput = document.getElementById('amount');
const fromCurrency = document.getElementById('fromCurrency');
const toCurrency = document.getElementById('toCurrency');
const resultDiv = document.getElementById('result');
const convertButton = document.createElement('button');
convertButton.textContent = 'Convert';
convertButton.type = 'button';
convertButton.id = 'convertButton';
document.getElementById('currencyForm').appendChild(convertButton);

// Tombol tampil secara default
let isInitialConversion = true;

async function convertCurrency() {
  const amount = amountInput.value;

  // Validasi input jumlah
  if (!amount || amount <= 0) {
    resultDiv.innerHTML = "Please enter a valid amount!";
    return;
  }

  try {
    const apiKey = '3ebe2ccf9eeea2aaef280201'; // API Key
    const url = `https://v6.exchangerate-api.com/v6/${apiKey}/latest/${fromCurrency.value}`;

    // Ambil data dari API
    const response = await fetch(url);
    const data = await response.json();

    // Tangani error API
    if (data.result === 'error') {
      resultDiv.innerHTML = `Error: ${data['error-type']}`;
    } else {
      const rate = data.conversion_rates[toCurrency.value];
      const convertedAmount = (amount * rate).toFixed(2);
      resultDiv.innerHTML = `${amount} ${fromCurrency.value} = ${convertedAmount} ${toCurrency.value}`;

      // Sembunyikan tombol setelah konversi pertama
      if (isInitialConversion) {
        convertButton.style.display = 'none';
        isInitialConversion = false;
      }
    }
  } catch (error) {
    resultDiv.innerHTML = "Error fetching conversion rate.";
    console.error("Error:", error);
  }
}

// Fungsi Swap
document.getElementById('swapButton').addEventListener('click', function () {
  const tempCurrency = fromCurrency.value;
  fromCurrency.value = toCurrency.value;
  toCurrency.value = tempCurrency;

  if (amountInput.value && amountInput.value > 0) {
    convertCurrency(); // Konversi ulang setelah swap
  }
});

// Event untuk tombol Convert (klik tombol manual)
convertButton.addEventListener('click', function () {
  convertCurrency();
});

// Event otomatis konversi setelah jumlah diisi
amountInput.addEventListener('input', function () {
  if (!isInitialConversion) {
    convertCurrency(); // Konversi otomatis
  }
});

// Event tampilkan tombol jika mata uang diubah
fromCurrency.addEventListener('change', function () {
  convertButton.style.display = 'block'; // Tampilkan tombol
  isInitialConversion = true; // Reset status awal
  resultDiv.innerHTML = ""; // Reset hasil
});

toCurrency.addEventListener('change', function () {
  convertButton.style.display = 'block'; // Tampilkan tombol
  isInitialConversion = true; // Reset status awal
  resultDiv.innerHTML = ""; // Reset hasil
});