summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkFileListForAdmin.vue
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-04-19 13:35:18 +0100
committerdakkar <dakkar@thenautilus.net>2024-04-19 13:35:18 +0100
commitdbfafe25e3230d5efa0406ea7a297af4633ed800 (patch)
tree7c157bd711aff31a303a044f6947e1bbfea96821 /packages/frontend/src/components/MkFileListForAdmin.vue
parentmerge: hide images/videos in og cards, when under a CW - fixes #487 (!488) (diff)
downloadsharkey-dbfafe25e3230d5efa0406ea7a297af4633ed800.tar.gz
sharkey-dbfafe25e3230d5efa0406ea7a297af4633ed800.tar.bz2
sharkey-dbfafe25e3230d5efa0406ea7a297af4633ed800.zip
rework pagination - fixes #491
previously, when adding items either at the beginnig (e.g. new notes coming in while we're not looking at the top of the timeline) or a the end (e.g. more items arriving from a background fetch) of a paginated view, the resulting list got truncated to `displayLimit`, potentially throwing data away and causing a new fetch. This, coupled with the async nature of scrolling & fetching, could cause weird results. Also, `offset` was always incremented by the size of the fetched results, even if not all of them were displayed, meant that it was possible for offset-based pagination to drop items. Finally, the "queue" of new items (usually, new notes) also got truncated to `displayLimit`, which again could drop items (this effect was usually masked by the first point: when scrolling to the top of the timeline, if the queue's length was equal to `displayLimit`, those notes displaced any existing ones, `unshiftItems` set `more.value=true`, you got scrolled to the top, and notes were fetched again, so you lost your position but at least all notes got shown, eventually)
Diffstat (limited to 'packages/frontend/src/components/MkFileListForAdmin.vue')
0 files changed, 0 insertions, 0 deletions