Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/timc1/react-drag-elements

A small & efficient React Hook that allows users to drag items around and update lists of elements.
https://github.com/timc1/react-drag-elements

animation css html javascript react typescript

Last synced: 16 days ago
JSON representation

A small & efficient React Hook that allows users to drag items around and update lists of elements.

Awesome Lists containing this project

README

        


react-drag-elements




📱🕹



A light weight and efficient Hook that make DOM elements draggable & reorganizable.

## About

This project is inspired by the MacOS Launchpad iOS Springboard UI, where items can be dragged
around and reordered.


demo

## Setup

```
yarn add react-drag-elements
```

or

```
npm install react-drag-elements
```

## Usage

```
import useDragElements from 'react-drag-elements'

const initialItems = [
{ id: 0, text: 'One', color: '#616AFF' },
{ id: 1, text: 'Two', color: '#2DBAE7' },
{ id: 2, text: 'Three', color: '#fd4e4e' },
]

export default function App() {

const { items, getItemProps } = useDragElements({
initialItems,
delay: 200, // optional
debounceMs: 200, // optional
easeFunction: `ease-out` // optional
})

return (


    {items.map((item: any) => (


  • {item.text}


  • ))}

)
}
```

## Props

### initialItems

> Array of objects with each item containing a unique id

### delay

> number, defaults to 250

### debounceMs

> number, defaults to 200

### easeFunction

> string, defaults to a subtle springy `cubic-bezier(.39,.28,.13,1.14)`

## Example

```
git clone [email protected]:timc1/react-drag-elements.git
```

```
cd react-drag-elements/example
```

```
yarn
```

```
yarn start
```