@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
35 lines (34 loc) • 1.32 kB
TypeScript
import type { Column, DropEventParams, Grid } from "../+types.js";
import type { GridBoxItem } from "./+types.js";
export interface OnDropParams<T> {
readonly target: Column<T>;
readonly src: Column<T>;
readonly isBefore: boolean;
}
export interface OnRootDropParams<T> {
readonly column: Column<T>;
}
export interface OnActionParams<T> {
readonly column: Column<T>;
readonly el: HTMLElement;
}
export interface UseColumnBoxItemArgs<T> {
readonly grid: Grid<T>;
readonly orientation?: "horizontal" | "vertical";
readonly draggable?: boolean;
readonly itemFilter?: (c: Column<T>) => boolean;
readonly placeholder?: (el: HTMLElement) => HTMLElement;
readonly onRootDrop?: (p: OnRootDropParams<T>) => void;
readonly onDrop?: (p: OnDropParams<T>) => void;
readonly onAction?: (c: OnActionParams<T>) => void;
readonly onDelete?: (c: OnActionParams<T>) => void;
}
export declare function useColumnBoxItems<T>({ grid, onRootDrop, onDrop, onDelete, onAction, orientation, draggable, itemFilter, placeholder, }: UseColumnBoxItemArgs<T>): {
rootProps: {
accepted: string[];
orientation: "horizontal" | "vertical" | undefined;
onRootDrop: (p: DropEventParams) => void;
grid: Grid<T>;
};
items: GridBoxItem<Column<T>>[];
};