MCPcopy Index your code
hub / github.com/primer/react / getNextPageElement

Function getNextPageElement

packages/react/src/TreeView/useRovingTabIndex.ts:224–241  ·  view source on GitHub ↗
(element: HTMLElement)

Source from the content-addressed store, hash-verified

222}
223
224function getNextPageElement(element: HTMLElement): HTMLElement | undefined {
225 const root = element.closest('[role="tree"]')
226 if (!root) {
227 return
228 }
229
230 const items = Array.from(root.querySelectorAll('[role="treeitem"]')) as HTMLElement[]
231 if (items.length === 0) {
232 return
233 }
234
235 const itemLabel = items[0].firstElementChild as HTMLElement
236 const pageSize = getPageSize(root, itemLabel)
237 const page = Math.floor(items.indexOf(element) / pageSize)
238 const offset = items.indexOf(element) - pageSize * page
239
240 return items[Math.min(items.length - 1, (page + 1) * pageSize + offset)]
241}
242
243function getPreviousPageElement(element: HTMLElement): HTMLElement | undefined {
244 const root = element.closest('[role="tree"]')

Callers 1

getNextFocusableElementFunction · 0.85

Calls 1

getPageSizeFunction · 0.85

Tested by

no test coverage detected