-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
51 lines (43 loc) · 1.66 KB
/
script.js
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
const BASE_URL="https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/";
const dropdowns=document.querySelectorAll(".dropdown select");
const btn=document.querySelector("button");
const fromCurr=document.querySelector(".from select");
const toCurr=document.querySelector(".to select");
const msg=document.querySelector(".msg");
for(let select of dropdowns){
for(currCode in countryList){
let newOption=document.createElement("option");
newOption.innerText=currCode;
if(select.name==="from" && currCode==="USD"){
newOption.selected="selected";
}else if(select.name==="to" && currCode==="INR"){
newOption.selected="selected";
}
select.append(newOption);
}
select.addEventListener("change", (evt)=>{
updateFlag(evt.target);
});
};
const updateFlag = (element)=>{
let currCode=element.value;
let countryCode=countryList[currCode];
let newSrc = `https://flagsapi.com/${countryCode}/flat/64.png`;
let img=element.parentElement.querySelector("img");
img.src=newSrc;
};
btn.addEventListener("click", async(evt)=>{
evt.preventDefault();
let amount=document.querySelector(".amount input");
let amtVal=amount.value;
if(amtVal==="" || amtVal<1){
amtVal=1;
amount.value="1";
}
const URL=`${BASE_URL}/${fromCurr.value.toLowerCase()}/${toCurr.value.toLowerCase()}.json`;
let response= await fetch(URL);
let data=await response.json();
let rate=data[toCurr.value.toLowerCase()];
let finalAmount=amtVal*rate;
msg.innerText=`${amtVal} ${fromCurr.value} = ${finalAmount} ${toCurr.value}`;
});