Files
SenMeshNet/domain/sftpVirtualList.ts
zhaolei 2f9f8da48e
Some checks failed
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
Initial commit: NetMesh smart ops platform with 3D topology, inspection reports, RCA and AI ops assistant
2026-10-15 13:53:04 +08:00

23 lines
549 B
TypeScript

interface SftpVirtualListScrollInput {
itemIndex: number;
rowHeight: number;
currentScrollTop: number;
viewportHeight: number;
}
export const getSftpVirtualListScrollTop = ({
itemIndex,
rowHeight,
currentScrollTop,
viewportHeight,
}: SftpVirtualListScrollInput): number => {
const rowTop = itemIndex * rowHeight;
const rowBottom = rowTop + rowHeight;
if (rowTop < currentScrollTop) return rowTop;
if (rowBottom > currentScrollTop + viewportHeight) {
return rowBottom - viewportHeight;
}
return currentScrollTop;
};