npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

easy-react-dnd

v1.1.9

Published

The easiest drag and drop grid library for React

Downloads

2

Readme

Installation

$ npm i easy-react-dnd

Demo

https://master.d34ix3fbmn7czh.amplifyapp.com/

Usage

The only required prop is the onItemSwitch prop. It is your responsability to update the state that renders the EasyItem components.

import React, { Component } from 'react'
import { EasyDraggable, EasyItem } from 'react-easy-dnd'

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      itemArray: ['Test 1', 'Test 2', 'Test 3']
    }
  }

  _handleDragStart = (key) => {
    // Getting the key of the item being draged
  }
  _handleDragStop = (index) => {
    // Getting index of final position
  }

  /*
   * This function is required to keep persistance
   */
  _handleItemSwitch = (newArray) => {
    // Getting the new array of items
    // Get key with newArray[index].key
    let temp = []
    for (const item of newArray) {
      temp.push(item.key)
    }
    this.setState({ itemArray: temp })
  }

  _handleItemHover = (key, index) => {
    // key and index of hovered item
  }

  render() {
    return (
      <EasyDraggable
        cursor='grab'
        hSpacing='10px'
        vSpacing='10px'
        transition="ease"
        onDragStart={this._handleDragStart}
        onDragStop={this._handleDragStop}
        onItemSwitch={this._handleItemSwitch} //Required
        onItemHover={this._handleSwitch}
        itemsPerRow={2}
      >
        {this.state.itemArray.map((item) => (
          <EasyItem key={item}>
            <div className='box'>{item}</div>
          </EasyItem>
        ))}
      </EasyDraggable>
    )
  }
}
export default App

EasyDraggable Props

Appearance props

| prop | Type | Default value | Description | | ----------- | -------------- | ------------- | ----------------------------------------------------------------------- | | itemsPerRow | number | 1 | The amount of items per row (columns per rows) | | transition | string | none | Transition animation . Ease or opacity | | handle | HTML component | none | A handle that allow dragging from a specific point | | hSpacing | string | 0px | Horizontal spacing between items (ex:12px) | | vSpacing | string | 0px | Vertical spacing between rows (ex:12px) | | cursor | string | auto | The cursor used on drag (cursor style property, ex : grab,pointer, ...) |

Events props

| prop | Type | parameter(s) | Description | | ------------ | ------- | -------------------------------------------------------- | --------------------------------------------------------- | | onDragStart | funtion | The key of the item being draged | When drag starts | | onDragStop | funtion | The key of the final position | When drag stops | | onItemSwitch | funtion | The new array of items | When an item switch. This is required to keep persistance | | onItemHover | funtion | key (key of hovered item), index (index of hovered item) | When an item is hovered |

EasyItem Props

| prop | Type | Default value | Required | Description | | ---- | ------------- | ------------- | -------- | ---------------------- | | key | number/string | none | no | Unique id for the item |

Credits

Adam Pinheiro

Authors

  • Adam Pinheiro

Ressources used