react-hook-use-state
Version:
useState() with confidence
41 lines (31 loc) • 1.17 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
// eslint-disable-next-line import/no-extraneous-dependencies
function useState() {
var isMounted = (0, _react.useRef)(false);
(0, _react.useEffect)(function () {
isMounted.current = true;
return function () {
isMounted.current = false;
};
}, []);
var _React$useState = _react["default"].useState.apply(_react["default"], arguments),
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
state = _React$useState2[0],
setState = _React$useState2[1];
var setStateProxy = function setStateProxy() {
if (isMounted.current) {
setState.apply(void 0, arguments);
}
};
return [state, setStateProxy];
}
var _default = useState;
exports["default"] = _default;