react-split-pane
Version:
React split-pane component with hooks and TypeScript
42 lines • 1.45 kB
TypeScript
import type { Direction, ResizeEvent } from '../types';
/**
* Options for the useResizer hook.
*/
export interface UseResizerOptions {
direction: Direction;
sizes: number[];
minSizes: number[];
maxSizes: number[];
snapPoints?: number[] | undefined;
snapTolerance?: number | undefined;
step?: number | undefined;
onResizeStart?: ((event: ResizeEvent) => void) | undefined;
onResize?: ((sizes: number[], event: ResizeEvent) => void) | undefined;
onResizeEnd?: ((sizes: number[], event: ResizeEvent) => void) | undefined;
}
/**
* Return type for the useResizer hook.
*/
export interface UseResizerResult {
isDragging: boolean;
currentSizes: number[];
handlePointerDown: (dividerIndex: number) => (e: React.PointerEvent) => void;
}
/**
* Hook that handles pointer-based resizing of panes.
*
* This is a low-level hook used internally by SplitPane. For most use cases,
* you should use the SplitPane component directly.
*
* Features:
* - Unified pointer events (handles mouse, touch, and pen input)
* - Pointer capture for reliable drag behavior
* - RAF-throttled updates for smooth performance
* - Snap points support
* - Step-based resizing
*
* @param options - Configuration options for the resizer
* @returns Handlers and state for resize interactions
*/
export declare function useResizer(options: UseResizerOptions): UseResizerResult;
//# sourceMappingURL=useResizer.d.ts.map