remove deprecations, remove header when scrolling
This commit is contained in:
@@ -15,6 +15,16 @@ const layout = ref(localStorage.getItem('layout') || 'list') // 'list' | 'cards'
|
||||
let observer; // Declare observer outside the setup function
|
||||
let initialLoad = false
|
||||
|
||||
// Timestamp (performance.now()) of the most recent programmatic scroll / list
|
||||
// mutation that moves the page without user intent — currently the list-view
|
||||
// read-correction below. AppNav's auto-hide handler resyncs its scroll baseline
|
||||
// (instead of treating the induced jump as a user scroll) for a short window
|
||||
// after this, so removing read articles can't pop the header in/out mid-read.
|
||||
const lastProgrammaticScroll = ref(0)
|
||||
function markProgrammaticScroll() {
|
||||
lastProgrammaticScroll.value = performance.now()
|
||||
}
|
||||
|
||||
export function authHeaders() {
|
||||
return {
|
||||
headers: {
|
||||
@@ -247,6 +257,9 @@ function handleIntersection(entries, topbarHeight = 0) {
|
||||
observer = null
|
||||
}
|
||||
|
||||
// Both the array splice (via scroll anchoring) and the scrollBy correction
|
||||
// below move the page — flag it so AppNav's header auto-hide ignores the jump.
|
||||
markProgrammaticScroll()
|
||||
const readIds = new Set(readFeeds.map(feed => feed.id))
|
||||
feeds.value = feeds.value.filter(feed => !readIds.has(feed.id))
|
||||
|
||||
@@ -265,6 +278,7 @@ function handleIntersection(entries, topbarHeight = 0) {
|
||||
if (first) {
|
||||
const top = first.getBoundingClientRect().top
|
||||
if (top < topbarHeight) {
|
||||
markProgrammaticScroll()
|
||||
window.scrollBy(0, top - topbarHeight)
|
||||
}
|
||||
}
|
||||
@@ -389,5 +403,7 @@ export function useFeeds() {
|
||||
disconnectObserver,
|
||||
setInitialLoad,
|
||||
handleIntersection,
|
||||
lastProgrammaticScroll,
|
||||
markProgrammaticScroll,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user