Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-dns

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-dns

React component to select multiple items with the mouse cursor

  • 0.7.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

A lightweight, fully-tested (unit and e2e test), TypeScript'd, React library (1 component, and 1 hook!) to enable using the cursor to drag and select multiple items.

The underlying logic for this library was inspired from React Drag to Select.

This project was bootstrapped with Create React Library.

Features

  1. No selected state management - Unlike [React Drag to Select](https://github.com/pablofierro/react-drag-select], this component does not managed if an item is selected. It's up to you to handle that. It only fires the hook once the item becomes selected.

  2. Supports deeply nested items - Unlike [React Drag to Select](https://github.com/pablofierro/react-drag-select], the items you are trying to select don't need to be immediate children of the parent HOC. As long as they have the useSelectableByDragging inside of them, and the

  3. Supports virtualization - Unlike [React Drag to Select](https://github.com/pablofierro/react-drag-select], our library can support virtualized lists as well!

Setup

  1. Install dependency
  2. Add

API

DragSelection

This is the HOC which is used to create the drag context and draw the drag layer to the screen.

It has no props/configuration.

Example
<DragSelection>
  {/* Any components you want selected go in here */}
</DragSelection>

useSelectableByDragging

This is the hook used by any component that is a descendant of <DragSelection>. It fires every time the selected state of the component changes.

It returns an array with 2 values:

type UseSelectableByDraggingReturnType<RefType> = [
  { selected: boolean },
  RefObject<RefType>
];
  1. An object containing selected which indicates if the component is being selected at that moment
  2. A refObject which needs to be applied as the ref to the component you're trying to select

Note: For TypeScript users, you must pass in the first generic for useSelectableByDragging. This type must match the type of element you'll be applying the ref to (it gets passed to useRef).

Example
const MyComponent: React.FC = () => {
  // <HTMLDivElement> is used because the ref gets applied to a `div` below
  const [{ selected }, ref] = useSelectableByDragging<HTMLDivElement>();

  return <div {...{ ref }} />;
};

FAQs

Package last updated on 05 Jan 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc