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-selection
or
yarn add react-virtual-selection
Usage
useSelectable
useSelectable
accepts a type and a item function
type
is a string with the selection typeitem
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 selectedselectableElement
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 touseSelectable
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 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
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