Add server and mini-program pagination for shared lists

This commit is contained in:
2026-10-11 10:10:49 +08:00
parent c0a3db5c8e
commit 7854d94e7b
37 changed files with 395 additions and 175 deletions
+4 -8
View File
@@ -1,3 +1,4 @@
const { itemsOf, totalOf } = require('../../utils/list-pagination');
const { withDataCache } = require('../../utils/page-cache');
const { getLayout } = require('../../utils/layout');
// pages/discover/discover.js
@@ -46,18 +47,13 @@ Page(withDataCache({
const [timeline, album, diary] = await Promise.all([
api.timelineList(), api.albumList(), api.diaryList()
]);
var photoCount = 0;
if (Array.isArray(album)) {
for (var i = 0; i < album.length; i++) {
photoCount += parseInt(album[i].photo_count || 0);
}
}
var photoCount = album && album.photo_total != null ? Number(album.photo_total) : itemsOf(album).reduce((sum,item)=>sum+(Number(item.photo_count)||0),0);
var stats = {
timeline: Array.isArray(timeline) ? timeline.length : 0,
timeline: totalOf(timeline),
album: photoCount,
diary: (diary && diary.total) ? diary.total : 0,
};
this.setData({ stats: stats, entries: ((diary && diary.items) || []).map(diaryEntry), albums: (Array.isArray(album) ? album : []).map(albumEntry), memories: (Array.isArray(timeline) ? timeline : []).map(memoryEntry) });
this.setData({ stats: stats, entries: ((diary && diary.items) || []).map(diaryEntry), albums: itemsOf(album).map(albumEntry), memories: itemsOf(timeline).map(memoryEntry) });
} catch (e) {
console.error(e);
this.setData({loadError:true});