window.addEventListener("load", () => {
app.query(".table-body").innerHTML = app.loading();
app.query(".btm-lft-amnt").innerHTML = app.loading();
app.query("#sechRadio").checked = false;
app.query("#searchInput").value = "";
});
const handleDataInput = () => {
//HANDLING TABLE BODY
app.getCookie("azer_token", (e, r) => {
// console.log(r);
if (e) {
app.client.fetch("/user/wallet/all", "POST", { token: r }).then((dx) => {
let btcWorth = 0;
let fetchedData = [];
let btcLogic = 0;
let totalBtc = 0;
let totalWalletFiat = 0;
// let btcWorth = 0;
let currVal = 0;
dx.map((item, i) => {
for (const [key, value] of Object.entries(item)) {
fetchedData.push({ key, ...value });
totalWalletFiat += parseFloat(value.availableBalance);
if (value.name === "Bitcoin") {
btcWorth = value.coinPrice;
}
btcLogic =
(Number(value.totalAvailableBalance) * value.coinPrice) /
Number(btcWorth);
btcValue =
btcLogic <= 0 ? btcLogic.toFixed(2) : btcLogic.toFixed(8);
totalBtc += btcLogic;
}
});
//HANDLING TOTAL BTC VALUE AND FIAT VALUE
const getCurr = async () => {
const userCurrency = await getUserLocationAndCurrency();
const fetchedCurrency = await getSingleCurrency(
userCurrency.country_code ? userCurrency.country_code : "us"
);
fetchedCurrency.forEach((data) => {
currVal = `${data.currency_sign}${Number(
Number(data.buy_rate) * Number(totalWalletFiat).toFixed(2)
).toLocaleString()}`;
});
};
getCurr().then(() => setWalletHtml());
const setWalletHtml = () => {
app.query(".btm-lft-amnt").innerHTML = `
${
totalBtc === 0
? totalBtc.toFixed(
2
)
: totalBtc.toFixed(
8
)
}
BTC
~ $${Number(
totalWalletFiat.toFixed(
2
)
).toLocaleString()}
(${currVal})
`;
};
//HANDLING DATA TO TABLE
const analyseData = (dataArr) => {
if (dataArr.length > 0) {
let eachWalletHtml = "";
let btcValue = 0;
let btcLogic = 0;
let totalBtc = 0;
// CONVERTING AVAILABLE BALANCE TO NUMBERS FOR PROPER SORTING
dataArr.forEach((data) => {
data.availableBalance = Number(data.availableBalance);
});
// SORTING ARRAY BASED ON DOLLAR VALUE
dataArr.sort((a, b) =>
a.availableBalance < b.availableBalance
? 1
: b.availableBalance < a.availableBalance
? -1
: 0
);
//LOOPING THROUGH ARRAY AND INPUTING VALUES INTO HTML
dataArr.forEach((value) => {
btcLogic =
(Number(value.totalAvailableBalance) * value.coinPrice) /
Number(btcWorth);
btcValue =
btcLogic == 0 ? btcLogic.toFixed(2) : btcLogic.toFixed(8);
totalBtc += btcLogic;
console.log(
value.key,
Number(Number(value.totalAvailableBalance).toFixed(8))
);
eachWalletHtml += `
|
${
Number(value.totalAvailableBalance) === 0
? Number(value.totalAvailableBalance).toFixed(
2
)
: Number(
Number(
value.totalAvailableBalance
).toFixed(8)
)
}
|
${btcValue}
|
$${
Number(value.availableBalance) == 0
? Number(value.availableBalance).toFixed(2)
: Number(
Number(value.availableBalance).toFixed(2)
).toLocaleString()
}
|
|
`;
});
app.query(".table-body").innerHTML = eachWalletHtml;
// console.log(dx);
} else {
app.query(".table-body").innerHTML = `
No match found
|
`;
}
};
analyseData(fetchedData);
});
}
});
//HANDLING TOTAL BTC VALUE AND FIAT VALUE
// app.getCookie("azer_token", (e, r) => {
// if (e) {
// app.client.fetch("/user/wallet/all", "POST", { token: r }).then((dx) => {
// let btcValue = 0;
// let btcLogic = 0;
// let totalBtc = 0;
// let totalWalletFiat = 0;
// let btcWorth = 0;
// let currVal = 0;
// dx.map((item, i) => {
// for (const [key, value] of Object.entries(item)) {
// totalWalletFiat += parseFloat(value.availableBalance);
// if (value.name === "Bitcoin") {
// btcWorth = value.coinPrice;
// }
// btcLogic =
// (Number(value.totalAvailableBalance) * value.coinPrice) /
// Number(btcWorth);
// btcValue =
// btcLogic == 0 ? btcLogic.toFixed(2) : btcLogic.toFixed(8);
// totalBtc += btcLogic;
// }
// });
// const getCurr = async () => {
// const userCurrency = await getUserLocationAndCurrency();
// const fetchedCurrency = await getSingleCurrency(
// userCurrency.country_code ? userCurrency.country_code : "us"
// );
// fetchedCurrency.forEach((data) => {
// currVal = `${data.currency_sign}${Number(
// Number(data.buy_rate) * Number(totalWalletFiat).toFixed(2)
// ).toLocaleString()}`;
// });
// };
// getCurr().then(() => setWalletHtml());
// const setWalletHtml = () => {
// app.query(".btm-lft-amnt").innerHTML = `
// ${totalBtc.toFixed(
// 2
// )}
// BTC
// ~ $${Number(
// totalWalletFiat.toFixed(
// 2
// )
// ).toLocaleString()}
// (${currVal})
//
// `;
// };
// // console.log(dx);
// });
// }
// });
};
const handlefilteredData = () => {
//HANDLING TABLE BODY
app.getCookie("azer_token", (e, r) => {
// console.log(r);
if (e) {
app.client.fetch("/user/wallet/all", "POST", { token: r }).then((dx) => {
let btcWorth = 0;
let fetchedData = [];
const searchInput = app.query("#searchInput");
const sechRadio = app.query("#sechRadio");
searchOnlyPattern = new RegExp("^[a-zA-Z ]+$");
let previousValue = "";
dx.map((item, i) => {
for (const [key, value] of Object.entries(item)) {
fetchedData.push({ key, ...value });
if (value.name === "Bitcoin") {
btcWorth = value.coinPrice;
}
}
});
//FILTER ARRAY WITH BALANCE ASSET
sechRadio.addEventListener("click", () => {
searchInput.value = "";
if (sechRadio.checked) {
const filteredCoins = fetchedData.filter((data) => {
app.query(".filtered-body").classList.add("active");
app.query(".table-body").classList.remove("active");
return data.availableBalance > 0;
});
analyseData(filteredCoins);
} else {
app.query(".filtered-body").classList.remove("active");
app.query(".table-body").classList.add("active");
analyseData(fetchedData);
}
});
//FILTER ARRAY WITH SEARCH INPUT
searchInput.addEventListener("input", (e) => {
sechRadio.checked = false;
let currentValue = searchInput.value;
if (
e.inputType.includes("delete") ||
searchOnlyPattern.test(currentValue)
) {
previousValue = currentValue;
}
searchInput.value = previousValue;
if (!searchInput.value == "") {
app.query(".filtered-body").classList.add("active");
app.query(".table-body").classList.remove("active");
} else {
app.query(".filtered-body").classList.remove("active");
app.query(".table-body").classList.add("active");
}
const searchString = searchInput.value.toLowerCase();
const filteredCoins = fetchedData.filter((data) => {
return data.symbol.toLowerCase().includes(searchString);
});
analyseData(filteredCoins);
});
const analyseData = (dataArr) => {
if (dataArr.length > 0) {
let eachWalletHtml = "";
let btcValue = 0;
let btcLogic = 0;
let totalBtc = 0;
// CONVERTING AVAILABLE BALANCE TO NUMBERS FOR PROPER SORTING
dataArr.forEach((data) => {
data.availableBalance = Number(data.availableBalance);
});
// SORTING ARRAY BASED ON DOLLAR VALUE
dataArr.sort((a, b) =>
a.availableBalance < b.availableBalance
? 1
: b.availableBalance < a.availableBalance
? -1
: 0
);
//LOOPING THROUGH ARRAY AND INPUTING VALUES INTO HTML
dataArr.forEach((value) => {
btcLogic =
(Number(value.totalAvailableBalance) * value.coinPrice) /
Number(btcWorth);
btcValue =
btcLogic == 0 ? btcLogic.toFixed(2) : btcLogic.toFixed(8);
totalBtc += btcLogic;
eachWalletHtml += `
|
${
Number(value.totalAvailableBalance) == 0
? Number(value.totalAvailableBalance).toFixed(
2
)
: Number(
Number(
value.totalAvailableBalance
).toFixed(8)
).toLocaleString()
}
|
${btcValue}
|
$${
Number(value.availableBalance) == 0
? Number(value.availableBalance).toFixed(2)
: Number(
Number(value.availableBalance).toFixed(2)
).toLocaleString()
}
|
|
`;
});
app.query(".filtered-body").innerHTML = eachWalletHtml;
// console.log(dx);
} else {
app.query(".filtered-body").innerHTML = `
No match found
|
`;
}
};
analyseData(fetchedData);
});
}
});
};
handleDataInput();
handlefilteredData();
setInterval(handleDataInput, 25000);