Count the shown News section in the panel header

With Local chosen, the header counted the Conflicts feed's cards instead of
the Local list's.
This commit is contained in:
Denis Groshev committed 2026-11-06 00:45:30 +01:00
1 parent 74d40c4b1a
commit fa736a7cd5
2 files changed
+9 -1

No files matched your search

+4 -1
View File
@@ -33,7 +33,10 @@ export function createNewsPanel({ container, setLayerParams = () => {} } = {}) {
renderVue(h(NewsFeed, { view, onParams }), container); renderVue(h(NewsFeed, { view, onParams }), container);
const hidden = !view; const hidden = !view;
if (panel) set(panel, 'hidden', hidden); if (panel) set(panel, 'hidden', hidden);
if (count) set(count, 'textContent', String(view?.items.length ?? 0)); // The count is the shown section's: Local's list, else the feed.
const shown =
view?.filters?.section === 'local' ? view.inView?.items : view?.items;
if (count) set(count, 'textContent', String(shown?.length ?? 0));
if (!hidden && panel && !appearedPanels.has(panel)) { if (!hidden && panel && !appearedPanels.has(panel)) {
appearedPanels.add(panel); appearedPanels.add(panel);
// First appearance opens the panel unless a stored or shared collapse // First appearance opens the panel unless a stored or shared collapse
+5
View File
@@ -228,6 +228,11 @@ test('filters, the Local section and empty or failed reads', () => {
assert.equal(panel.querySelector('[data-chip-id="ua-ru-war"]'), null); assert.equal(panel.querySelector('[data-chip-id="ua-ru-war"]'), null);
assert.equal(panel.querySelector('select[aria-label="Severity"]'), null); assert.equal(panel.querySelector('select[aria-label="Severity"]'), null);
assert.equal(panel.querySelector('[aria-label="Latest news"]'), null); assert.equal(panel.querySelector('[aria-label="Latest news"]'), null);
assert.equal(document.getElementById('news-panel-count').textContent, '0');
news.update(
localView({ active: true, items: [feedCardView(report('near'), NOW)] }),
);
assert.equal(document.getElementById('news-panel-count').textContent, '1');
news.update(localView({ active: true })); news.update(localView({ active: true }));
assert.match( assert.match(
panel.querySelector('[aria-label="Local"]').textContent, panel.querySelector('[aria-label="Local"]').textContent,