@react-hookz/web
Version:
React hooks done right, for browser and SSR.
22 lines (21 loc) • 703 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSafeState = void 0;
var react_1 = require("react");
var __1 = require("..");
/**
* Like `useState` but its state setter is guarded against sets on unmounted component.
*/
function useSafeState(initialState) {
var _a = (0, react_1.useState)(initialState), state = _a[0], setState = _a[1];
var isMounted = (0, __1.useIsMounted)(true);
return [
state,
(0, react_1.useCallback)(function (value) {
if (isMounted())
setState(value);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []),
];
}
exports.useSafeState = useSafeState;