Skip to content

Drag and Drop Components

Presentational components for drag and drop, built on @dnd-kit.


DraggableItem

Wrapper for sortable items.

Props

PropTypeRequiredDescription
idUniqueIdentifierYesUnique item ID
childrenReactNodeYesItem content
dataRecord<string, unknown>NoAdditional drag data
disabledbooleanNoDisable dragging
isOverlaybooleanNoRender as drag overlay

DragHandle

Dedicated drag trigger.

Props

PropTypeRequiredDescription
listenersSyntheticListenerMapYesFrom useSortable
attributesDraggableAttributesYesFrom useSortable
disabledbooleanNoDisable handle
childrenReactNodeNoHandle content

DroppableZone

Drop target container.

Props

PropTypeRequiredDescription
idUniqueIdentifierYesZone identifier
isOverbooleanNoWhether being dragged over
childrenReactNodeYesZone content
classNamestringNoContainer class

SortableList

Generic sortable list container.

Props

PropTypeRequiredDescription
itemsT[]YesItems array
getItemId(item: T) => UniqueIdentifierYesID extractor
renderItem(item: T, index: number) => ReactNodeYesItem renderer
direction'vertical' | 'horizontal'NoList direction (default: 'vertical')
classNamestringNoContainer class

EmptyDropZone

Placeholder for empty drop areas.

Props

PropTypeDefaultDescription
messagestring'Drop items here'Placeholder text
isOverbooleanfalseHighlight state
classNamestring-Container class

See also