Mercurial > addons > firefox-addons > feed-preview
view popup/feed-selection.js @ 51:dc25aa2bc628
Revert flexbox layout from extension.css in the entry style sheet
This reverts laying out the contents of the body according to the flexbox model
since it has, among other things, the unwanted effect of stretching images.
author | Guido Berhoerster <guido+feed-preview@berhoerster.name> |
---|---|
date | Fri, 06 Sep 2019 13:16:48 +0200 |
parents | bc5cc170163c |
children | c8fa2430eab2 |
line wrap: on
line source
/* * Copyright (C) 2018 Guido Berhoerster <guido+feed-preview@berhoerster.name> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 'use strict'; async function buildFeedSelection() { let tabs = await browser.tabs.query({active: true, currentWindow: true}); let feeds = await browser.runtime.sendMessage(tabs[0].id); let feedListElement = document.querySelector('.panel-section-list'); feedListElement.addEventListener('click', ev => { // find selected list item element and open the feed in a new tab for (let element = ev.target; element !== ev.currentTarget; element = element.parentElement) { if (element.classList.contains('panel-list-item')) { browser.tabs.create({url: element.dataset.href}); break; } } ev.preventDefault(); }); let templateElement = document.querySelector('#feed-item-template'); for (let feed of feeds) { let feedNode = document.importNode(templateElement.content, true); feedNode.querySelector('.panel-list-item').dataset.href = feed.href; let prefix = (feed.type === 'application/atom+xml') ? 'Atom Feed' : 'RSS Feed'; let imgNode = feedNode.querySelector('.icon > img'); imgNode.src = browser.runtime.getURL('icons/feed-preview.svg'); imgNode.alt = prefix; feedNode.querySelector('.text').textContent = `${prefix}: ${feed.title}`; feedListElement.appendChild(feedNode); } } buildFeedSelection();