File size: 3,271 Bytes
ca7bcbd 94367ea ca7bcbd e37d8b9 0645c10 e37d8b9 ca7bcbd 0645c10 ca7bcbd 2fc40c6 ca7bcbd 94367ea 0645c10 2fc40c6 94367ea 5a2d8ac ca7bcbd 5a2d8ac ca7bcbd 0645c10 5a2d8ac ca7bcbd 0645c10 ca7bcbd 94367ea e37d8b9 ca7bcbd 94367ea e37d8b9 ca7bcbd 830d5f1 ca7bcbd e37d8b9 94367ea ca7bcbd 94367ea e37d8b9 d7dec02 |
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
const amountInput = document.getElementById('amount');
const fromCurrency = document.getElementById('fromCurrency');
const toCurrency = document.getElementById('toCurrency');
const swapButton = document.getElementById('swapButton');
const convertButton = document.getElementById('convertButton');
const resultDiv = document.getElementById('result');
// Status konversi otomatis
let autoConvert = false;
// Tombol convert pertama kali
convertButton.addEventListener('click', async () => {
autoConvert = true; // Aktifkan konversi otomatis
await convertCurrency();
convertButton.style.display = 'none'; // Sembunyikan tombol
});
// Swap mata uang
swapButton.addEventListener('click', async () => {
const temp = fromCurrency.value;
fromCurrency.value = toCurrency.value;
toCurrency.value = temp;
// Langsung konversi ulang jika swap dilakukan
await convertCurrency();
});
// Input perubahan jumlah
amountInput.addEventListener('input', async () => {
if (autoConvert) {
await convertCurrency(); // Konversi otomatis
}
});
// Perubahan mata uang
[fromCurrency, toCurrency].forEach(element => {
element.addEventListener('change', () => {
// Reset status jika mata uang diubah
autoConvert = false;
convertButton.style.display = 'block'; // Tampilkan tombol Convert
resultDiv.innerHTML = ''; // Kosongkan hasil
});
});
// Fungsi konversi
async function convertCurrency() {
const amount = amountInput.value;
const from = fromCurrency.value;
const to = toCurrency.value;
if (!amount || amount <= 0) {
resultDiv.innerHTML = 'Please enter a valid amount.';
return;
}
try {
const apiKey = '3ebe2ccf9eeea2aaef280201';
const url = `https://v6.exchangerate-api.com/v6/${apiKey}/latest/${from}`;
const response = await fetch(url);
const data = await response.json();
if (data.result === 'success') {
const rate = data.conversion_rates[to];
const convertedAmount = (amount * rate).toFixed(2);
resultDiv.innerHTML = `${amount} ${from} = ${convertedAmount} ${to}`;
} else {
resultDiv.innerHTML = `Error: ${data['error-type']}`;
}
} catch (error) {
resultDiv.innerHTML = 'Error fetching conversion rate.';
console.error(error);
}
}
// Activate Select2
$(document).ready(function () {
$('#fromCurrency, #toCurrency').select2();
});
// Swap functionality
document.getElementById('swapButton').addEventListener('click', function () {
const fromCurrency = document.getElementById('fromCurrency');
const toCurrency = document.getElementById('toCurrency');
// Swap the values
const temp = fromCurrency.value;
fromCurrency.value = toCurrency.value;
toCurrency.value = temp;
// Reinitialize Select2 to reflect the changes
$('#fromCurrency, #toCurrency').select2();
});
// Convert functionality placeholder
document.getElementById('convertButton').addEventListener('click', function () {
const amount = document.getElementById('amount').value;
const fromCurrency = document.getElementById('fromCurrency').value;
const toCurrency = document.getElementById('toCurrency').value;
// For now, just show a placeholder message
document.getElementById('result').textContent = `Converted ${amount} ${fromCurrency} to ${toCurrency}.`;
});
|