mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
add api bw news on banner
This commit is contained in:
parent
7a193766e5
commit
91359394e2
1 changed files with 44 additions and 2 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue