useCounter
/**
* @typedef {{
* count: number,
* increment: () => void,
* decrement: () => void,
* reset: () => void,
* setCount: import('react').Dispatch<import('react').SetStateAction<number>>,
* }} UseCounterReturn
*/
/**
* @param {number} [initialValue=0]
* @returns {UseCounterReturn}
*/
import {useState, useCallback} from 'react';
export default function useCounter(initialValue = 0) {
const [count, setCount] = useState(initialValue);
const increment = useCallback(() => {
setCount(count + 1);
});
const decrement = useCallback(() => {
setCount(count - 1);
});
const reset = useCallback(() => {
setCount(initialValue);
});
return {
count,
setCount,
increment,
decrement,
reset,
};
}