/home/vianto5/hidalgoresidences.mx/wp-content/plugins/code-snippets/js/hooks
NameSizeModeActions
useAxios.ts13680644editdlrm
useFileUploadAPI.ts20000644editdlrm
useHorizontalScrollOverflow.ts13990644editdlrm
useImportersAPI.ts14450644editdlrm
useRestAPI.tsx25250644editdlrm
useSelection.ts12400644editdlrm
useSnippetForm.tsx27600644editdlrm
useSnippetsAPI.tsx37510644editdlrm
useSnippetsList.tsx14670644editdlrm
useSnippetView.ts12410644editdlrm
useSubmitSnippet.ts48600644editdlrm
useSubmitSnippet.tsx54590644editdlrm
Edit: /home/vianto5/hidalgoresidences.mx/wp-content/plugins/code-snippets/js/hooks/useSelection.ts (1240B)
import { useState } from 'react' export interface UseSelection { selectAll: VoidFunction toggleItem: (itemKey: K) => void selectedItems: Set isAllSelected: boolean availableItems: T[] clearSelection: VoidFunction getSelectedItems: () => T[] } export const useSelection = (availableItems: T[], getKey: (item: T) => K): UseSelection => { const [selectedItems, setSelectedItems] = useState>(new Set()) const toggleItem = (itemKey: K) => { const newSelected = new Set(selectedItems) if (newSelected.has(itemKey)) { newSelected.delete(itemKey) } else { newSelected.add(itemKey) } setSelectedItems(newSelected) } const selectAll = () => { if (selectedItems.size === availableItems.length) { clearSelection() } else { setSelectedItems(new Set(availableItems.map(getKey))) } } const clearSelection = () => { setSelectedItems(new Set()) } const getSelectedItems = () => availableItems.filter(item => selectedItems.has(getKey(item))) const isAllSelected = selectedItems.size === availableItems.length && 0 < availableItems.length return { availableItems, selectedItems, toggleItem, selectAll, clearSelection, getSelectedItems, isAllSelected } }