Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
cheap-react-dnd
Advanced tools
very simple and easy-to-use drag-and-drop library supporting mouse event and touch event
A very simple and user-friendly drag-and-drop library that supports both mouse and touch events.
# Yarn
yarn add cheap-react-dnd
# NPM
npm install cheap-react-dnd
import Provider, {
useDrop,
useDrag,
useData,
operationType,
} from "cheap-react-dnd";
import React, { useRef } from "react";
const style = { width: 100, height: 100 };
const DragComponent = () => {
const dropRef = useRef();
useDrop({
acceptKeys = ["*"],
initData: { dropNo: 0 },
ref: dropRef,
onDrop: ({ dragState, setData, data, type }) => {},
});
return (
<div style={style} ref={dropRef}>
{" "}
Drop here{" "}
</div>
);
};
const key = "drag-1";
const DragComponent = () => {
const dragRef = useRef();
useDrag({
key: "drag-1",
ref: dragRef,
initData: { dragNo: 9 },
onDrag: ({ data, setData, type, dropData }) => {},
});
return (
<div style={style} ref={dragRef}>
A drag
</div>
);
};
const AudienceComponent = () => {
const data = useData(key);
return <div>🥺</div>;
};
const App = () => (
<Provider>
<DragComponent />
<DragComponent />
<AudienceComponent />
</Provider>
);
NOTE: React hooks require react
and react-dom
version 16.8.0
or higher.
Provider
A top-level component that all components utilizing useDrop, useDrag, and useData should be nested under the Provider.
Props | Type | Description |
---|---|---|
uniqueKey | String | Use this prop when you are working with multiple Providers. |
scale | Function | Object | When the outer element of the Provider uses the transform's scale property, it can lead to inaccurate drag positioning. To address this issue, you need to inform the Provider of the scaling ratios on both the horizontal and vertical axes. The default values are {x: 1, y: 1}. |
useDrag
Use this within components that is a drag source.
Parameter object includes :key, ref, initData, onDrag
key
string required
ref
DOM reference
initData
initial data
onDrag
callback when dragging
useDrop
Parameter object includes :acceptKeys = ["*"], initData, ref, onDrop
acceptKeys
string array required, determining what keys of the drag source can be accepted. if the drop target accepts all the keys of drag source, you specify it as ["*"]
ref
DOM reference
initData
initial data
onDrop
callback when dragging
Use this within components that is a drop target.
useData
Use this in any component under the Provider to subscribe to the state of a specific drag source.
Parameter string: key
the data of drag source inited by useDrag
operationType
enum of state including: ONSTART, ONENTER, ONHOVER, ONLEAVE, ONDROP, ONEND
MIT © Facebook Inc.
FAQs
very simple and easy-to-use drag-and-drop library supporting mouse event and touch event
We found that cheap-react-dnd demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.