UNPKG

valtio

Version:

🧙 Valtio makes proxy-state simple for React and Vanilla

22 lines (18 loc) • 493 B
'use strict'; 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;