molstar
Version:
A comprehensive macromolecular library.
37 lines • 1.13 kB
JavaScript
/**
* Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.useBehavior = void 0;
var react_1 = require("react");
// eslint-disable-next-line
function useBehavior(s) {
var _a = (0, react_1.useState)(s === null || s === void 0 ? void 0 : s.value), value = _a[0], setValue = _a[1];
(0, react_1.useEffect)(function () {
if (!s) {
if (value !== void 0)
setValue(void 0);
return;
}
var fst = true;
var sub = s.subscribe(function (v) {
if (fst) {
fst = false;
if (v !== value)
setValue(v);
}
else
setValue(v);
});
return function () {
sub.unsubscribe();
};
// eslint-disable-next-line
}, [s]);
return value;
}
exports.useBehavior = useBehavior;
//# sourceMappingURL=use-behavior.js.map
;