beautiful-react-hooks
Version:
A collection of beautiful (and hopefully useful) React hooks to speed-up your components and hooks development
14 lines (13 loc) • 606 B
JavaScript
import { useCallback, useState } from 'react';
const maybeState = (state, defaultValue) => (state !== null && state !== void 0 ? state : defaultValue);
/**
* Returns a safe state by making sure the given value is not null or undefined
*/
const useDefaultedState = (defaultValue, initialState) => {
const [state, setState] = useState(maybeState(initialState, defaultValue));
const setStateSafe = useCallback((nextState) => {
setState(maybeState(nextState, defaultValue));
}, [setState]);
return [maybeState(state, defaultValue), setStateSafe];
};
export default useDefaultedState;