UNPKG

create-nova-vite-template

Version:

This is a dashboard template built with React and Vite. It provides a modern and responsive user interface for building web applications.

29 lines (23 loc) 692 B
import { useState } from "react"; export default function useToggleState<T = number>(initialState: T[]) { const [selectedValues, setselectedValues] = useState<T[]>(initialState); const isSelected = (value: T) => { return Boolean(selectedValues?.find((item) => item === value)); }; const addToSelected = (value: T) => { if (!isSelected(value)) { setselectedValues([...selectedValues, value]); } else { setselectedValues(selectedValues.filter((item) => item !== value)); } }; const replaceState = (newValues: T[]) => { setselectedValues(newValues); }; return { selectedValues, isSelected, addToSelected, replaceState, }; }