in src/js/popup/popup.js [703:766]
init: async () => {
const newsList = document.querySelector(".fx-relay-news");
// If there's any news items, go build them
if ( !newsList.hasChildNodes()) {
sessionState.newsContent.forEach(async (newsItem) => {
// Build and attach news item
const liFxRelayNewsItem = document.createElement("li");
liFxRelayNewsItem.classList.add("fx-relay-news-item");
const button = document.createElement("button");
button.classList.add("fx-relay-news-item-button");
button.setAttribute("data-news-item-id", newsItem.id);
liFxRelayNewsItem.appendChild(button);
const divTeaserImage = document.createElement("div");
divTeaserImage.classList.add("fx-relay-news-item-image");
const imgTeaserImage = document.createElement("img");
imgTeaserImage.src = newsItem.teaserImg;
divTeaserImage.appendChild(imgTeaserImage);
button.appendChild(divTeaserImage);
const divTeaserCopy = document.createElement("div");
divTeaserCopy.classList.add("fx-relay-news-item-content");
const h3TeaserTitle = document.createElement("h3");
h3TeaserTitle.classList.add("fx-relay-news-item-hero");
// Pass i18n Args if applicable
const h3TeaserTitleTextContent = newsItem.headlineStringArgs
? browser.i18n.getMessage(
newsItem.headlineString,
newsItem.headlineStringArgs
)
: browser.i18n.getMessage(newsItem.headlineString);
h3TeaserTitle.textContent = h3TeaserTitleTextContent;
const divTeaserBody = document.createElement("div");
divTeaserBody.classList.add("fx-relay-news-item-body");
// Pass i18n Args if applicable
const divTeaserBodyTextContent = newsItem.bodyStringArgs
? browser.i18n.getMessage(
newsItem.bodyString,
newsItem.bodyStringArgs
)
: browser.i18n.getMessage(newsItem.bodyString);
divTeaserBody.textContent = divTeaserBodyTextContent;
divTeaserCopy.appendChild(h3TeaserTitle);
divTeaserCopy.appendChild(divTeaserBody);
button.appendChild(divTeaserCopy);
newsList.appendChild(liFxRelayNewsItem);
button.addEventListener(
"click",
popup.panel.news.item.show,
false
);
});
}
},