@wix/design-system
Version:
@wix/design-system
53 lines (46 loc) • 1.31 kB
TypeScript
import * as React from 'react';
export interface DraggableProps {
droppable?: boolean;
withHandle?: boolean;
containerId?: string;
groupName?: string;
renderItem?: (data: object) => React.ReactNode;
index?: number;
id?: number | string;
item?: object;
onMoveOut?: (id: any) => void;
onDrop?: DropEventFn;
onHover?: HoverEventFn;
onDragStart?: DragEventFn;
onDragEnd?: DragEventFn;
shift?: number[];
hasDragged?: boolean;
setWrapperNode?: (node: HTMLElement, index: number, item: object) => void;
animationDuration?: number;
animationTiming?: string;
canDrag?: DragEventFn;
delay?: number;
listOfPropsThatAffectItems?: any[];
}
export default class Draggable extends React.Component<DraggableProps> {}
export type DragEventParams = {
id: string | number;
index: number;
containerId: string;
groupName: string;
item: object;
};
export type DragEventFn = (params: DragEventParams) => void;
export type HoverEventFn = (params: {
removedIndex: number | string;
addedIndex: number | string;
id: any;
item: object;
}) => void;
export type DropEventFn = (params: {
payload: { id: number | string; text: string };
removedIndex: number | string;
addedIndex: number | string;
addedToContainerId: string;
removedFromContainerId: string;
}) => void;