Delay scroll restoration after card refresh
This commit is contained in:
1 parent
01fa2bc2b6
commit
e25899b3ee
1 file changed
+14
-9
@@ -28,25 +28,30 @@
|
|||||||
container,
|
container,
|
||||||
top: container.scrollTop,
|
top: container.scrollTop,
|
||||||
left: container.scrollLeft,
|
left: container.scrollLeft,
|
||||||
scheduled: false,
|
timer: null,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const restoreScrollPosition = (root) => {
|
const restoreScrollPosition = (root) => {
|
||||||
const state = scrollRestoreStates.get(root);
|
const state = scrollRestoreStates.get(root);
|
||||||
if (!state || state.scheduled) {
|
if (!state) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
state.scheduled = true;
|
if (state.timer) {
|
||||||
requestAnimationFrame(() => {
|
window.clearTimeout(state.timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
state.timer = window.setTimeout(() => {
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
if (state.container?.isConnected) {
|
requestAnimationFrame(() => {
|
||||||
state.container.scrollTo({ top: state.top, left: state.left, behavior: 'auto' });
|
if (state.container?.isConnected) {
|
||||||
}
|
state.container.scrollTo({ top: state.top, left: state.left, behavior: 'auto' });
|
||||||
scrollRestoreStates.delete(root);
|
}
|
||||||
|
scrollRestoreStates.delete(root);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}, 100);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getDirectDeleteElement = (card, selector) => Array.from(card?.children || [])
|
const getDirectDeleteElement = (card, selector) => Array.from(card?.children || [])
|
||||||
|
|||||||
Reference in new issue
Block a user