Fix feed pagination logic
This commit is contained in:
@@ -60,7 +60,7 @@ export const makeFeed = ({
|
|||||||
|
|
||||||
const insertIntoBuffer = (event: TrustedEvent) => {
|
const insertIntoBuffer = (event: TrustedEvent) => {
|
||||||
for (let i = 0; i < buffer.length; i++) {
|
for (let i = 0; i < buffer.length; i++) {
|
||||||
if (buffer[i].created_at > event.created_at) {
|
if (buffer[i].created_at < event.created_at) {
|
||||||
buffer.splice(i, 0, event)
|
buffer.splice(i, 0, event)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -152,7 +152,7 @@ export const makeFeed = ({
|
|||||||
element,
|
element,
|
||||||
delay: 300,
|
delay: 300,
|
||||||
threshold: 5000,
|
threshold: 5000,
|
||||||
onScroll: () => {
|
onScroll: async () => {
|
||||||
const [since, until] = backwardWindow
|
const [since, until] = backwardWindow
|
||||||
|
|
||||||
backwardWindow = [since - interval, since]
|
backwardWindow = [since - interval, since]
|
||||||
@@ -160,7 +160,7 @@ export const makeFeed = ({
|
|||||||
insertEvents(buffer.splice(0, 30))
|
insertEvents(buffer.splice(0, 30))
|
||||||
|
|
||||||
if (until > now() - int(2, YEAR)) {
|
if (until > now() - int(2, YEAR)) {
|
||||||
loadTimeframe(since, until)
|
await loadTimeframe(since, until)
|
||||||
} else if (!buffer.some(e => e.created_at < at)) {
|
} else if (!buffer.some(e => e.created_at < at)) {
|
||||||
backwardScroller.stop()
|
backwardScroller.stop()
|
||||||
onBackwardExhausted?.()
|
onBackwardExhausted?.()
|
||||||
@@ -173,7 +173,7 @@ export const makeFeed = ({
|
|||||||
reverse: true,
|
reverse: true,
|
||||||
delay: 300,
|
delay: 300,
|
||||||
threshold: 5000,
|
threshold: 5000,
|
||||||
onScroll: () => {
|
onScroll: async () => {
|
||||||
const [since, until] = forwardWindow
|
const [since, until] = forwardWindow
|
||||||
|
|
||||||
forwardWindow = [until, until + interval]
|
forwardWindow = [until, until + interval]
|
||||||
@@ -181,7 +181,7 @@ export const makeFeed = ({
|
|||||||
insertEvents(buffer.splice(0, 30))
|
insertEvents(buffer.splice(0, 30))
|
||||||
|
|
||||||
if (until < now()) {
|
if (until < now()) {
|
||||||
loadTimeframe(since, until)
|
await loadTimeframe(since, until)
|
||||||
} else if (!buffer.some(e => e.created_at > at)) {
|
} else if (!buffer.some(e => e.created_at > at)) {
|
||||||
forwardScroller.stop()
|
forwardScroller.stop()
|
||||||
onForwardExhausted?.()
|
onForwardExhausted?.()
|
||||||
|
|||||||
Reference in New Issue
Block a user