add api bw news on banner

This commit is contained in:
Jordan Blasenhauer 2024-02-26 13:02:13 +01:00
parent 7a193766e5
commit 91359394e2

View file

@ -56,7 +56,6 @@ class News {
if (sessionStorage.getItem("lastNews") !== null)
return this.render(JSON.parse(sessionStorage.getItem("lastNews")));
try {
console.lg("fetching news");
fetch("https://www.bunkerweb.io/api/posts/0/2")
.then((res) => {
return res.json();
@ -338,7 +337,49 @@ class Banner {
}
init() {
this.changeMenu();
window.addEventListener("load", () => {
this.changeMenu();
this.loadData();
this.animateBanner();
});
}
loadData() {
//test with data
// sessionStorage.setItem("bannerNews", JSON.stringify([{"content" : ` <p class="dark:brightness-125 mb-0 text-center text-xs xs:text-sm text-white">
// TEST
//<a class="dark:brightness-125 font-medium underline text-gray-100 hover:no-underline"
// href="https://panel.bunkerweb.io/?utm_campaign=self&utm_source=ui">TEST</a>
//</p>`}]));
// Try to get data from api
if (sessionStorage.getItem("bannerNews") !== null)
return this.updateBanner(
JSON.parse(sessionStorage.getItem("bannerNews")),
);
try {
fetch("https://www.bunkerweb.io/api/bw-ui-news")
.then((res) => {
return res.json();
})
.then((res) => {
return this.updateBanner(res.data);
});
} catch (err) {}
}
updateBanner(bannerNews) {
// store for next time
sessionStorage.setItem("bannerNews", JSON.stringify(bannerNews));
const bannerItems = this.bannerEl.querySelectorAll('[role="listitem"]');
const maxItems = Math.min(bannerNews.length, bannerItems.length);
for (let i = 0; i < maxItems; i++) {
const bannerEl = bannerItems[i];
bannerEl.innerHTML = bannerNews[i]["content"];
}
}
animateBanner() {
setInterval(() => {
// Get current visible
let visibleEl;
@ -380,6 +421,7 @@ class Banner {
}, this.nextDelay);
}
// update float button position looking at current banner visibility
changeMenu() {
let options = {
root: null,