lucid-ui
Version:
A UI component library from Xandr.
180 lines • 6.45 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import * as reducers from './DraggableList.reducers';
import { StandardProps, Overwrite } from '../../util/component-types';
export interface IDraggableListItemProps extends StandardProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
}
interface IDraggableListPropsRaw extends StandardProps {
/** Render a drag handle on list items */
hasDragHandle?: boolean;
/** Index of the item the drag was started on */
dragIndex?: number;
/** Index of the item the dragged item is hovered over */
dragOverIndex?: number;
/** Called when the user starts to drag an item.
Signature: \`(dragIndex, { event, props }) => {}\` */
onDragStart?: (dragIndex: number, { event, props }: {
event: React.DragEvent;
props: IDraggableListProps;
}) => void;
/** Called when the user stops to dragging an item.
Signature: \`({ event, props }) => {}\` */
onDragEnd?: ({ event, props, }: {
event: React.DragEvent;
props: IDraggableListProps;
}) => void;
/** Called when the user drags an item over another item.
Signature: \`(dragOverIndex, { event, props }) => {}\` */
onDragOver?: (dragOverIndex: number, { event, props }: {
event: React.DragEvent;
props: IDraggableListProps;
}) => void;
/** Called when the user drops an item in the list
Signature: \`({oldIndex, newIndex}, { event, props }) => {}\` */
onDrop?: ({ oldIndex, newIndex }: {
newIndex: number;
oldIndex: number;
}, { event, props }: {
event: React.DragEvent;
props: IDraggableListProps;
}) => void;
/** Props for DraggableList.Item */
Item?: React.ReactNode & {
props: IDraggableListItemProps;
};
}
export interface IDraggableListProps extends Overwrite<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, IDraggableListPropsRaw> {
}
declare const DraggableList: {
(props: IDraggableListProps): JSX.Element;
Item: {
(_props: IDraggableListItemProps): null;
displayName: string;
peek: {
description: string;
};
propName: string;
propTypes: {
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
};
};
displayName: string;
peek: {
description: string;
categories: string[];
};
propTypes: {
/**
Appended to the component-specific class names set on the root element.
*/
className: PropTypes.Requireable<string>;
/**
Passed through to the root element.
*/
style: PropTypes.Requireable<object>;
/**
Render a drag handle on list items
*/
hasDragHandle: PropTypes.Requireable<boolean>;
/**
Index of the item the drag was started on
*/
dragIndex: PropTypes.Requireable<number>;
/**
Index of the item the dragged item is hovered over
*/
dragOverIndex: PropTypes.Requireable<number>;
/**
Called when the user starts to drag an item.
Signature: \`(dragIndex, { event, props }) => {}\`
*/
onDragStart: PropTypes.Requireable<(...args: any[]) => any>;
/**
Called when the user stops to dragging an item.
Signature: \`({ event, props }) => {}\`
*/
onDragEnd: PropTypes.Requireable<(...args: any[]) => any>;
/**
Called when the user drags an item over another item.
Signature: \`(dragOverIndex, { event, props }) => {}\`
*/
onDragOver: PropTypes.Requireable<(...args: any[]) => any>;
/**
Called when the user drops an item in the list
Signature: \`({oldIndex, newIndex}, { event, props }) => {}\`
*/
onDrop: PropTypes.Requireable<(...args: any[]) => any>;
/**
Props for DraggableList.Item
*/
Item: PropTypes.Requireable<any>;
};
};
declare const _default: {
(props: IDraggableListProps): JSX.Element;
Item: {
(_props: IDraggableListItemProps): null;
displayName: string;
peek: {
description: string;
};
propName: string;
propTypes: {
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
};
};
displayName: string;
peek: {
description: string;
categories: string[];
};
propTypes: {
/**
Appended to the component-specific class names set on the root element.
*/
className: PropTypes.Requireable<string>;
/**
Passed through to the root element.
*/
style: PropTypes.Requireable<object>;
/**
Render a drag handle on list items
*/
hasDragHandle: PropTypes.Requireable<boolean>;
/**
Index of the item the drag was started on
*/
dragIndex: PropTypes.Requireable<number>;
/**
Index of the item the dragged item is hovered over
*/
dragOverIndex: PropTypes.Requireable<number>;
/**
Called when the user starts to drag an item.
Signature: \`(dragIndex, { event, props }) => {}\`
*/
onDragStart: PropTypes.Requireable<(...args: any[]) => any>;
/**
Called when the user stops to dragging an item.
Signature: \`({ event, props }) => {}\`
*/
onDragEnd: PropTypes.Requireable<(...args: any[]) => any>;
/**
Called when the user drags an item over another item.
Signature: \`(dragOverIndex, { event, props }) => {}\`
*/
onDragOver: PropTypes.Requireable<(...args: any[]) => any>;
/**
Called when the user drops an item in the list
Signature: \`({oldIndex, newIndex}, { event, props }) => {}\`
*/
onDrop: PropTypes.Requireable<(...args: any[]) => any>;
/**
Props for DraggableList.Item
*/
Item: PropTypes.Requireable<any>;
};
} & import("../../util/state-management").IHybridComponent<IDraggableListProps, reducers.IDraggableListState>;
export default _default;
export { DraggableList as DraggableListDumb };
//# sourceMappingURL=DraggableList.d.ts.map