react-movable-block-editor
Version:
React component for creating layouts and content via drag-and-drop blocks.
39 lines (38 loc) • 1.46 kB
TypeScript
import * as React from 'react';
import { BlockNode, BlockNodeType } from '../data';
import { BlockEditorValue } from '../components/editor/BlockEditorProps';
export interface DraggedInfo {
startLeft: number;
startTop: number;
}
export declare function parseTypes(types: Array<string>): {
draggedNodeId: string;
draggedNodeType: BlockNodeType | null;
};
export declare function getDragPositionRelativeToTarget(e: React.DragEvent<HTMLDivElement>, targetRect: ClientRect | null): {
left: number;
top: number;
width: number;
height: number;
} | null;
export declare function getDragPositionRelativeToTarget2({ clientX, clientY }: {
clientX: number;
clientY: number;
}, targetRect: ClientRect | null): {
left: number;
top: number;
width: number;
height: number;
} | null;
export declare function onDragStart(e: React.DragEvent<HTMLDivElement>, draggedNode: BlockNode, getBoundingRect: () => any): void;
export interface MoveOpts {
beforeItemId?: string;
afterItemId?: string;
isPlaceHolder?: boolean;
absolutePos?: {
left: number;
top: number;
};
}
export declare function onDropped(types: Array<string>, targetNodeId: string, opts?: MoveOpts): (value: BlockEditorValue) => BlockEditorValue;
export declare function onDropped2(draggedNodeId: string, targetNodeId: string, opts?: MoveOpts): (value: BlockEditorValue) => BlockEditorValue;