forked from AkkomaGang/akkoma-fe
Merge branch 'fix/fetch-activities-by-last-id' into 'develop'
#406 Fetch activities by last id See merge request pleroma/pleroma-fe!621
This commit is contained in:
commit
c44f0a9bde
2 changed files with 10 additions and 7 deletions
|
@ -10,6 +10,7 @@ const emptyTl = (userId = 0) => ({
|
||||||
visibleStatusesObject: {},
|
visibleStatusesObject: {},
|
||||||
newStatusCount: 0,
|
newStatusCount: 0,
|
||||||
maxId: 0,
|
maxId: 0,
|
||||||
|
minId: 0,
|
||||||
minVisibleId: 0,
|
minVisibleId: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
followers: [],
|
followers: [],
|
||||||
|
@ -117,11 +118,16 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
|
||||||
const timelineObject = state.timelines[timeline]
|
const timelineObject = state.timelines[timeline]
|
||||||
|
|
||||||
const maxNew = statuses.length > 0 ? maxBy(statuses, 'id').id : 0
|
const maxNew = statuses.length > 0 ? maxBy(statuses, 'id').id : 0
|
||||||
const older = timeline && maxNew < timelineObject.maxId
|
const minNew = statuses.length > 0 ? minBy(statuses, 'id').id : 0
|
||||||
|
const newer = timeline && maxNew > timelineObject.maxId && statuses.length > 0
|
||||||
|
const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0
|
||||||
|
|
||||||
if (timeline && !noIdUpdate && statuses.length > 0 && !older) {
|
if (!noIdUpdate && newer) {
|
||||||
timelineObject.maxId = maxNew
|
timelineObject.maxId = maxNew
|
||||||
}
|
}
|
||||||
|
if (!noIdUpdate && older) {
|
||||||
|
timelineObject.minId = minNew
|
||||||
|
}
|
||||||
|
|
||||||
// This makes sure that user timeline won't get data meant for other
|
// This makes sure that user timeline won't get data meant for other
|
||||||
// user. I.e. opening different user profiles makes request which could
|
// user. I.e. opening different user profiles makes request which could
|
||||||
|
@ -255,12 +261,9 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
|
||||||
processor(status)
|
processor(status)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Keep the visible statuses sorted
|
// Keep the visible statuses sorted
|
||||||
if (timeline) {
|
if (timeline) {
|
||||||
sortTimeline(timelineObject)
|
sortTimeline(timelineObject)
|
||||||
if ((older || timelineObject.minVisibleId <= 0) && statuses.length > 0) {
|
|
||||||
timelineObject.minVisibleId = minBy(statuses, 'id').id
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ const fetchAndUpdate = ({store, credentials, timeline = 'friends', older = false
|
||||||
const timelineData = rootState.statuses.timelines[camelCase(timeline)]
|
const timelineData = rootState.statuses.timelines[camelCase(timeline)]
|
||||||
|
|
||||||
if (older) {
|
if (older) {
|
||||||
args['until'] = until || timelineData.minVisibleId
|
args['until'] = until || timelineData.minId
|
||||||
} else {
|
} else {
|
||||||
args['since'] = timelineData.maxId
|
args['since'] = timelineData.maxId
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue