UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

30 lines (29 loc) 1.26 kB
export interface UseScrollSpyHeadingData { /** Heading depth, 1-6 */ depth: number; /** Heading text content value */ value: string; /** Heading id */ id: string; /** Function to get heading node */ getNode: () => HTMLElement; } export interface UseScrollSpyOptions { /** Selector to get headings, `'h1, h2, h3, h4, h5, h6'` by default */ selector?: string; /** A function to retrieve depth of heading, by default depth is calculated based on tag name */ getDepth?: (element: HTMLElement) => number; /** A function to retrieve heading value, by default `element.textContent` is used */ getValue?: (element: HTMLElement) => string; } export interface UseScrollSpyReturnType { /** Index of the active heading in the `data` array */ active: number; /** Headings data. If not initialize, data is represented by an empty array. */ data: UseScrollSpyHeadingData[]; /** True if headings value have been retrieved from the DOM. */ initialized: boolean; /** Function to update headings values after the parent component has mounted. */ reinitialize: () => void; } export declare function useScrollSpy({ selector, getDepth, getValue, }?: UseScrollSpyOptions): UseScrollSpyReturnType;