import * as React from 'react';
import { DraggableProps } from '../DragAndDrop/Draggable';

export interface SortableGridBaseProps extends DraggableProps {
  dataHook?: string;
  /** in case of wrong position of item during drag you can force SortableListBase to use portals */
  usePortal?: boolean;
  /**
   if you are having nested SortableListBases,
   list that you are currently dragging need to be marked as dragPreview
   inside of renderItem callback
   */
  dragPreview?: boolean;
  /** list of items with {id: any} */
  items?: object[];
  /** Specifies a CSS class name to be appended to the component’s root element.
   * @internal
   */
  className?: string;
  /** className of the first items parent container */
  contentClassName?: string;
  /** Specifies where the item can be inserted */
  insertPosition?: 'start' | 'end' | 'any';
  /** Node which will be rendered before draggable items and this element won't be draggable */
  startFixedElement?: React.ReactNode;
  /** Node which will be rendered after draggable items and this element won't be draggable */
  endFixedElement?: React.ReactNode;
}

export default class SortableGridBase extends React.PureComponent<SortableGridBaseProps> {}
