import React from 'react'; /** * Toggles the presence of a number in the selectedNumbers array state. * * @param number - The number to toggle in the selection. * @param setSelectedNumbers - The state setter function from useState. */ const toggleNumber = ( number: number, setSelectedNumbers: React.Dispatch<React.SetStateAction<number[]>> ): void => { setSelectedNumbers((prevSelectedNumbers) => { if (prevSelectedNumbers.includes(number)) { // Number is already selected; remove it from the array return prevSelectedNumbers.filter((n) => n !== number); } else { // Number is not selected; add it to the array return [...prevSelectedNumbers, number]; } }); }; // Initialize State in Your Component const [selectedNumbers, setSelectedNumbers] = useState<number[]>([]); // Use the toggleNumber Function // Example usage within a component event handler const handleNumberClick = (number: number): void => { toggleNumber(number, setSelectedNumbers); }; // Implement in JSX <button onClick={() => handleNumberClick(5)}> {selectedNumbers.includes(5) ? 'Deselect 5' : 'Select 5'} </button>
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter