valtio
Version:
🧙 Valtio makes proxy-state simple for React and Vanilla
22 lines (18 loc) • 493 B
JavaScript
;
var react$1 = require('react');
var react = require('valtio/react');
const DUMMY_SYMBOL = /* @__PURE__ */ Symbol();
function useProxy(proxy, options) {
const snapshot = react.useSnapshot(proxy, options);
snapshot[DUMMY_SYMBOL];
let isRendering = true;
react$1.useLayoutEffect(() => {
isRendering = false;
});
return new Proxy(proxy, {
get(target, prop) {
return isRendering ? snapshot[prop] : target[prop];
}
});
}
exports.useProxy = useProxy;