--- title: useSelection --- import { DocusaurusDoc } from '@freesewing/react/components/Docusaurus' import { Popout } from '@freesewing/react/components/Popout' import { Tab, Tabs } from '@freesewing/react/components/Tab' The **useSelection** hook facilitates letting the user select one or more items from a list or array. You need to pass this list/array to the hook. ## Example ```js import { useSelection } from '@freesewing/react/hooks/useFilter' const MyComponent = ({ items = [] }) => { const { count, selection, setSelection, toggle, toggleAll, } = useSelection(items) // ... } ``` ## Return value Calling the hook returns an object with the following properties: - [count](#count) - [selection](#selection) - [setSelection](#setselection) - [toggle](#toggle) - [toggleAll](#toggleAll) ### count This holds the number of items currently selected. ### selection This holds an object of selected items where the key is the index and the value the item itself. Call `selection.values()` to get an array. ### setSelection This is a method that sets the selection manually, typically not used. # toggle This is a method that takes an index and toggles the selection for that item. # toggleAll This is a method will select all items, unless all items are currently selected. In that case, it will select zero items.