summaryrefslogtreecommitdiff
path: root/js/Headlines.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-10-21 07:19:15 +0300
committerAndrew Dolgov <[email protected]>2020-10-21 07:19:15 +0300
commite3da11bf6ddc90c11c1e6462c9287f446d20b363 (patch)
tree67f821fd02782885dcf5ad58af08c92218d65bbb /js/Headlines.js
parent8d75a542cdf594a67fd899bb38ee45c37096d550 (diff)
Revert "somewhat experimental: disable article packing/unpacking, render content immediately"
This reverts commit ab53591957d877908b89f6874e91c282bf59d165.
Diffstat (limited to 'js/Headlines.js')
-rwxr-xr-xjs/Headlines.js25
1 files changed, 23 insertions, 2 deletions
diff --git a/js/Headlines.js b/js/Headlines.js
index 23dc0b2c2..a3a023f9c 100755
--- a/js/Headlines.js
+++ b/js/Headlines.js
@@ -32,6 +32,15 @@ const Headlines = {
},
{threshold: [0, 1], root: document.querySelector("#headlines-frame")}
),
+ unpack_observer: new IntersectionObserver(
+ (entries, observer) => {
+ entries.forEach((entry) => {
+ if (entry.intersectionRatio > 0)
+ Article.unpack(entry.target);
+ });
+ },
+ {threshold: [0], root: document.querySelector("#headlines-frame")}
+ ),
row_observer: new MutationObserver((mutations) => {
const modified = [];
@@ -360,6 +369,7 @@ const Headlines = {
if (hl.active) {
new_row.addClassName("active");
+ Article.unpack(new_row);
if (App.isCombinedMode())
Article.cdmMoveToId(id, {noscroll: true});
@@ -375,6 +385,11 @@ const Headlines = {
this.sticky_header_observer.observe(e)
});
+ if (App.getInitParam("cdm_expanded"))
+ $$("#headlines-frame > div[id*=RROW].cdm").each((e) => {
+ this.unpack_observer.observe(e)
+ });
+
},
render: function (headlines, hl) {
let row = null;
@@ -411,6 +426,7 @@ const Headlines = {
id="RROW-${hl.id}"
data-article-id="${hl.id}"
data-orig-feed-id="${hl.feed_id}"
+ data-content="${App.escapeHtml(hl.content)}"
data-score="${hl.score}"
data-article-title="${App.escapeHtml(hl.title)}"
onmouseover="Article.mouseIn(${hl.id})"
@@ -450,7 +466,7 @@ const Headlines = {
<div class="content" onclick="return Headlines.click(event, ${hl.id}, true);">
<div id="POSTNOTE-${hl.id}">${hl.note}</div>
<div class="content-inner" lang="${hl.lang ? hl.lang : 'en'}">
- ${hl.content}
+ <img src="${App.getInitParam('icon_indicator_white')}">
</div>
<div class="intermediate">
${hl.enclosures}
@@ -687,6 +703,11 @@ const Headlines = {
this.sticky_header_observer.observe(e)
});
+ if (App.getInitParam("cdm_expanded"))
+ $$("#headlines-frame > div[id*=RROW].cdm").each((e) => {
+ this.unpack_observer.observe(e)
+ });
+
} else {
console.error("Invalid object received: " + transport.responseText);
dijit.byId("headlines-frame").attr('content', "<div class='whiteBox'>" +
@@ -697,7 +718,7 @@ const Headlines = {
Feeds.infscroll_in_progress = 0;
// this is used to auto-catchup articles if needed after infscroll request has finished,
- // fill buffer more, etc
+ // unpack visible articles, fill buffer more, etc
this.scrollHandler();
Notify.close();