UNPKG

nice-ui

Version:

React design system, components, and utilities

35 lines (34 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useBehaviorSubjectOpt = exports.useBehaviorSubject = void 0; const react_1 = require("react"); const useBehaviorSubject = (subject) => { const ref = (0, react_1.useRef)(subject.getValue()); const [, setCnt] = (0, react_1.useState)(0); (0, react_1.useEffect)(() => { const subscription = subject.subscribe((value) => { ref.current = value; setCnt((prev) => prev + 1); }); return () => subscription.unsubscribe(); }, [subject]); return ref.current; }; exports.useBehaviorSubject = useBehaviorSubject; const useBehaviorSubjectOpt = (subject) => { const ref = (0, react_1.useRef)(subject?.getValue()); const [, setCnt] = (0, react_1.useState)(0); (0, react_1.useEffect)(() => { if (!subject) { ref.current = undefined; return; } const subscription = subject.subscribe((value) => { ref.current = value; setCnt((prev) => prev + 1); }); return () => subscription.unsubscribe(); }, [subject]); return ref.current; }; exports.useBehaviorSubjectOpt = useBehaviorSubjectOpt;