1.1.0 • Published 2 years ago
react-virtual-selection v1.1.0
React Virtual Selection
Select elements using a native OS like selector
Installation
npm install react-virtual-selectionor
yarn add react-virtual-selectionUsage
useSelectable
useSelectable accepts a type and a item function
typeis a string with the selection typeitemis 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
isSelectedis a boolean that can be used to detect if the element is selectedselectableElementis 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
typeis a string with the selection type and should match the one provided touseSelectableof 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 handlechildren: React Node or Nodes Children of the componentselectionStyle: CSS Style Style of the selection squareselectionClassName: String CSS classes of the selection square
1.1.0
2 years ago
1.0.22
3 years ago
1.0.25
3 years ago
1.0.24
3 years ago
1.0.23
3 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
4 years ago
1.0.11
4 years ago
1.0.10
4 years ago
1.0.9
4 years ago
1.0.8
4 years ago
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.3
4 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago