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