Skip to content

Commit

Permalink
Fix "More..." date reset bug.
Browse files Browse the repository at this point in the history
Opening a news item in a new tab was reseting the amplify store 'next'
value.

Don't use amplify store; instead put next date in data-date attribute.
  • Loading branch information
Leftium committed May 7, 2022
1 parent 1d79e54 commit 7813887
Show file tree
Hide file tree
Showing 8 changed files with 259 additions and 265 deletions.
17 changes: 9 additions & 8 deletions assets/js/hw.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,11 +182,11 @@
var tmpl1 = tmpl('stories-load');
var loadNews = function (_data) {
var data = _data.slice();
var date = _data.next;

var date = amplify.store('next');
var html = '<ul class="tableview tableview-links" id="hwlist">'
+ hw.news.markupStories(data)
+ '<li><a class="more-link">More&hellip; (' + date + ') <span class="loader"><i class="icon-loading"></i></span></a></li>'
+ '<li><a class="more-link" data-date=' + date +'>More&hellip; (' + date + ') <span class="loader"><i class="icon-loading"></i></span></a></li>'
+ '</ul>';
$homeScrollSection.innerHTML = html;
hw.pub('onRenderNews');
Expand Down Expand Up @@ -231,7 +231,6 @@
},
reload: function () {
amplify.store('news-latest', null); // force cache flush
amplify.store('next', null);
hnapi.number = 1;
hw.news.render({
// delay: 300 // Cheat a little to make user think that it's doing something
Expand All @@ -242,7 +241,7 @@
target.classList.add('loading');
var news2 = amplify.store('hacker-news2');

var date = amplify.store('next');
var date = target.dataset.date;
hnapi.news(date, function (news) {
target.classList.remove('loading');
var targetParent = target.parentNode;
Expand All @@ -252,8 +251,10 @@
var data = news.slice();
var html = hw.news.markupStories(data);
$('hwlist').insertAdjacentHTML('beforeend', html);
var date = amplify.store('next');
$('hwlist').insertAdjacentHTML('beforeend', '<li><a class="more-link">More&hellip; (' + date + ') <span class="loader"></span></a></li>');

var date = news.next;

$('hwlist').insertAdjacentHTML('beforeend', '<li><a class="more-link" data-date=' + date + '>More&hellip; (' + date + ') <span class="loader"></span></a></li>');
});
}
};
Expand Down Expand Up @@ -456,7 +457,7 @@
};

hw.init = function () {
amplify.store('next', null);
console.log('INIT JKM 2022.05.07 725');
hw.news.render();
ruto.init();

Expand Down Expand Up @@ -492,7 +493,7 @@
}
};
setAppearance(appearance);

if (prefersColorSchemeSupported) {
$hwAppearance.querySelector('[name=hw-appearance][value=auto]').parentNode.hidden = false;
var input = $hwAppearance.querySelector('[name=hw-appearance][value=' + appearance + ']');
Expand Down
16 changes: 5 additions & 11 deletions assets/js/libs/hnapi.js
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,11 @@
hnapi_entry.i = hnapi.number++;
hnapi_entries.push(hnapi_entry);
}

var day = dayjs.unix(last_time);
day = day.subtract(1, 'day');
hnapi_entries.next = day.format('YYYYMMDD');

return hnapi_entries;
}

Expand All @@ -191,17 +196,6 @@
var expires = (date == 'latest') ? 60 * 1000 : 60 * 1000 * 60 * 24 * 30;

function onSuccess(data) {
var day;

if (next = amplify.store('next')) {
day = dayjs(next);
} else {
lastItem = data[data.length - 1];
day = dayjs.unix(lastItem.time);
}
day = day.subtract(1, 'day');
day = day.format('YYYYMMDD');
amplify.store('next', day);
var results = process_entries(data);
success(results);
};
Expand Down
166 changes: 83 additions & 83 deletions js/hw-ios-2.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/hw-ios-2.min.js.map

Large diffs are not rendered by default.

186 changes: 93 additions & 93 deletions js/hw-ios.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/hw-ios.min.js.map

Large diffs are not rendered by default.

133 changes: 66 additions & 67 deletions js/hw-web.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/hw-web.min.js.map

Large diffs are not rendered by default.

0 comments on commit 7813887

Please sign in to comment.