1.1.0 • Published 2 years ago

react-virtual-selection v1.1.0

Weekly downloads
-
License
AGPL-3.0-only
Repository
github
Last release
2 years ago

React Virtual Selection

Select elements using a native OS like selector

Installation

npm install react-virtual-selection

or

yarn add react-virtual-selection

Usage

useSelectable

useSelectable accepts a type and a item function

  • type is a string with the selection type
  • item is a function for when the element is selected so that the selecting element can get data about the element

usSelection also returns isSelected and selectableElement

  • isSelected is a boolean that can be used to detect if the element is selected
  • selectableElement is the ref for the draggable element
import { useSelectable } from 'react-virtual-selection';

const ExampleSelectable = (props) => {
  const { exampleData } = props;

  const [isSelected, selectableElement] = useSelectable(
    'selectable-1',
    () => ({ exampleData }),
  );

  return (
    <div
      draggable={false}
      className={`w-full h-full bg-gray-600 ${isSelected && 'outline outline-green-300'}`}
      ref={selectableElement}
    />
  );
};

useSelectionCollector

useSelectionCollector accepts a type

  • type is a string with the selection type and should match the one provided to useSelectable of the items you want to select

usSelection returns selectionData which is a list of data collected from the selected elements item function

import React, { useEffect } from 'react';

import useSelectionCollector from '../hooks/useSelectionCollector';
import Selectable from '../components/Selectable';
import ExampleSelectable from './components/ExampleSelectable';

const App = () => {
  const selectionData = useSelectionCollector('selectable-1');

  useEffect(() => {
    console.log(selectionData);
  }, [selectionData]);

  return (
    <Selectable accepts="selectable-1">
      <div className="w-screen h-screen bg-gray-700">
        <div className="grid w-full h-full grid-flow-row grid-cols-3 gap-10 p-10">
          <ExampleSelectable exampleData={{ test: 1 }} key="1" />
          <ExampleSelectable exampleData={{ test: 1 }} key="1" />
        </div>
      </div>
    </Selectable>
  );
};

export default App;

Selectable

Selectable is a component that allows elements to be selectable it contains all the logic for creating the selection square and more

Selectable Props
  • accepts: String The types of selectable elements this component should handle
  • children: React Node or Nodes Children of the component
  • selectionStyle: CSS Style Style of the selection square
  • selectionClassName: String CSS classes of the selection square
1.1.0

2 years ago

1.0.22

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago