fix(app): virtualizer getting wrong scroll root
This commit is contained in:
@@ -19,12 +19,35 @@ export const virtualMetrics: Partial<VirtualFileMetrics> = {
|
|||||||
fileGap: 0,
|
fileGap: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scrollable(value: string) {
|
||||||
|
return value === "auto" || value === "scroll" || value === "overlay"
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrollRoot(container: HTMLElement) {
|
||||||
|
let node = container.parentElement
|
||||||
|
while (node) {
|
||||||
|
const style = getComputedStyle(node)
|
||||||
|
if (scrollable(style.overflowY)) return node
|
||||||
|
node = node.parentElement
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function target(container: HTMLElement): Target | undefined {
|
function target(container: HTMLElement): Target | undefined {
|
||||||
if (typeof document === "undefined") return
|
if (typeof document === "undefined") return
|
||||||
|
|
||||||
const root = container.closest("[data-component='session-review']")
|
const review = container.closest("[data-component='session-review']")
|
||||||
if (root instanceof HTMLElement) {
|
if (review instanceof HTMLElement) {
|
||||||
const content = root.querySelector("[data-slot='session-review-container']")
|
const content = review.querySelector("[data-slot='session-review-container']")
|
||||||
|
return {
|
||||||
|
key: review,
|
||||||
|
root: review,
|
||||||
|
content: content instanceof HTMLElement ? content : undefined,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const root = scrollRoot(container)
|
||||||
|
if (root) {
|
||||||
|
const content = root.querySelector("[role='log']")
|
||||||
return {
|
return {
|
||||||
key: root,
|
key: root,
|
||||||
root,
|
root,
|
||||||
|
|||||||
Reference in New Issue
Block a user