next-era
Version:
Welcome to **Next Era**! A comprehensive library designed to supercharge your **Next.js** applications with powerful utilities and significant performance optimizations. Build faster, more efficient, and feature-rich Next.js projects with ease.
15 lines (14 loc) • 583 B
JavaScript
import { useCallback, useState } from "react";
/**
* Hook to manage boolean state.
* @param defaultValue default value of the boolean state
* @returns boolean state, setTrue, setFalse, toggle, setValue
*/
export const useBool = (defaultValue = false) => {
const [value, setValue] = useState(!!defaultValue);
const setTrue = useCallback(() => setValue(true), []);
const setFalse = useCallback(() => setValue(false), []);
const toggle = useCallback(() => setValue((x) => !x), []);
return [value, setTrue, setFalse, toggle, setValue];
};
export default useBool;