@preact/signals-react
Advanced tools
Comparing version 2.2.0 to 2.3.0
# @preact/signals-react | ||
## 2.3.0 | ||
### Minor Changes | ||
- [#624](https://github.com/preactjs/signals/pull/624) [`18b2f29`](https://github.com/preactjs/signals/commit/18b2f299c6d6985644a6459c9e9bb1a5863f02ac) Thanks [@JoviDeCroock](https://github.com/JoviDeCroock)! - Bump `peerDependency` on React to support 19.x | ||
### Patch Changes | ||
- [#611](https://github.com/preactjs/signals/pull/611) [`57a7d38`](https://github.com/preactjs/signals/commit/57a7d38fcd8a65721feb9038ad4b04cd1e86a0b1) Thanks [@Xstoudi](https://github.com/Xstoudi)! - Silences noisy warnings about `useLayoutEffect` whilst using SSR by switching to an isomorphic layout effect hook | ||
- [#624](https://github.com/preactjs/signals/pull/624) [`18b2f29`](https://github.com/preactjs/signals/commit/18b2f299c6d6985644a6459c9e9bb1a5863f02ac) Thanks [@JoviDeCroock](https://github.com/JoviDeCroock)! - Fix the stubbed ReactElementType to use the newly added traditional element in v19 | ||
## 2.2.0 | ||
@@ -4,0 +16,0 @@ |
{ | ||
"name": "@preact/signals-react", | ||
"version": "2.2.0", | ||
"version": "2.3.0", | ||
"license": "MIT", | ||
@@ -68,3 +68,3 @@ "description": "Manage state with style in React", | ||
"peerDependencies": { | ||
"react": "^16.14.0 || 17.x || 18.x" | ||
"react": "^16.14.0 || 17.x || 18.x || 19.x" | ||
}, | ||
@@ -71,0 +71,0 @@ "devDependencies": { |
@@ -1,1 +0,1 @@ | ||
var n=require("@preact/signals-core"),e=require("react"),r=require("use-sync-external-store/shim/index.js"),t=require("react/jsx-runtime"),i=require("react/jsx-dev-runtime");function u(n){return n&&"object"==typeof n&&"default"in n?n.default:n}var o=/*#__PURE__*/u(e),f=/*#__PURE__*/u(t),c=/*#__PURE__*/u(i),a=!1,s=null,l=!1,v=null,p=new Map;function d(n){if(!n)return 1;var e,r=p.get(n);if(void 0!==r)return r;var t=n.useCallback.toString();if(n.useReducer===n.useEffect)e=1;else if(n.useEffect===n.useImperativeHandle)e=32;else if(/Invalid/.test(t))e=2;else if(/updateCallback/.test(t)||/\[0\]/.test(t)&&/\[1\]/.test(t)){var i=n.useReducer.toString();if(/rerenderReducer/.test(i)||/return\s*\[\w+,/.test(i))e=16;else e=8}else e=4;p.set(n,e);return e}var b=[],g=Symbol.for("react.element"),m=function(){};function h(e){if("function"!=typeof e)return e;else return function(r,t){if("string"==typeof r&&t)for(var i in t){var u=t[i];if("children"!==i&&u instanceof n.Signal)t[i]=u.value}return e.call.apply(e,[e,r,t].concat([].slice.call(arguments,2)))}}var y,x=Symbol.dispose||Symbol.for("Symbol.dispose");function _(n,e){var r=e.effect.S();y=e;return j.bind(e,n,r)}function j(n,e){e();y=n}var S,q,k=((S={u:0,effect:{s:void 0,c:function(){},S:function(){return m},d:function(){}},subscribe:function(){return m},getSnapshot:function(){return 0},S:function(){},f:function(){}})[x]=function(){},S),w=Promise.prototype.then.bind(Promise.resolve());function B(){if(!q)q=w(O)}function O(){var n;q=void 0;null==(n=y)||n.f()}function P(t){if(void 0===t)t=0;B();var i=e.useRef();if(null==i.current)i.current=function(e){var r,t,i,u,o=0,f=n.effect(function(){t=this});t.c=function(){o=o+1|0;if(u)u()};return(r={u:e,effect:t,subscribe:function(n){u=n;return function(){o=o+1|0;u=void 0;f()}},getSnapshot:function(){return o},S:function(){if(null!=y){var n=y.u,e=this.u;if(0==n&&0==e||0==n&&1==e){y.f();i=_(void 0,this)}else if(1==n&&0==e||2==n&&0==e);else i=_(y,this)}else i=_(void 0,this)},f:function(){var n=i;i=void 0;null==n||n()}})[x]=function(){this.f()},r}(t);var u=i.current;r.useSyncExternalStore(u.subscribe,u.getSnapshot,u.getSnapshot);u.S();if(0===t)e.useLayoutEffect(O);return u}Object.defineProperties(n.Signal.prototype,{$$typeof:{configurable:!0,value:g},type:{configurable:!0,value:function(n){var e=n.data,r=P(1);try{return e.value}finally{r.f()}}},props:{configurable:!0,get:function(){return{data:this}}},ref:{configurable:!0,value:null}});exports._useSignalsImplementation=P;exports.ensureFinalCleanup=B;exports.installAutoSignalTracking=function(){if(e.version.split(".").map(Number)[0]>=19)throw new Error("Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform.");!function(){a=!0;Object.defineProperty(e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher,"current",{get:function(){return v},set:function(n){if(!l){var e=d(v),r=d(n);v=n;if(function(n,e){if(1&n&&28&e)return!0;else if(2&n||2&e)return!1;else return!1}(e,r)){l=!0;s=P(1);l=!1}else if(function(n,e){return Boolean(28&n&&16&e)}(e,r)){var t;null==(t=s)||t.f();l=!0;s=P(1);l=!1}else if(function(n,e){return Boolean(28&n&&1&e)}(e,r)){var i;null==(i=s)||i.f();s=null}}else v=n}})}();!function(){var n=f,e=c;o.createElement=h(o.createElement);e.jsx&&(e.jsx=h(e.jsx));n.jsx&&(n.jsx=h(n.jsx));e.jsxs&&(e.jsxs=h(e.jsxs));n.jsxs&&(n.jsxs=h(n.jsxs));e.jsxDEV&&(e.jsxDEV=h(e.jsxDEV));n.jsxDEV&&(n.jsxDEV=h(n.jsxDEV))}()};exports.useComputed=function(r){var t=e.useRef(r);t.current=r;return e.useMemo(function(){return n.computed(function(){return t.current()})},b)};exports.useSignal=function(r){return e.useMemo(function(){return n.signal(r)},b)};exports.useSignalEffect=function(r){var t=e.useRef(r);t.current=r;e.useEffect(function(){return n.effect(function(){return t.current()})},b)};exports.useSignals=function(n){if(a)return k;else return P(n)};exports.wrapJsx=h;//# sourceMappingURL=runtime.js.map | ||
var n=require("@preact/signals-core"),e=require("react"),r=require("use-sync-external-store/shim/index.js"),t=require("react/jsx-runtime"),i=require("react/jsx-dev-runtime");function u(n){return n&&"object"==typeof n&&"default"in n?n.default:n}var o=/*#__PURE__*/u(e),f=/*#__PURE__*/u(t),c=/*#__PURE__*/u(i),a=!1,s=null,l=!1,v=null,p=new Map;function d(n){if(!n)return 1;var e,r=p.get(n);if(void 0!==r)return r;var t=n.useCallback.toString();if(n.useReducer===n.useEffect)e=1;else if(n.useEffect===n.useImperativeHandle)e=32;else if(/Invalid/.test(t))e=2;else if(/updateCallback/.test(t)||/\[0\]/.test(t)&&/\[1\]/.test(t)){var i=n.useReducer.toString();if(/rerenderReducer/.test(i)||/return\s*\[\w+,/.test(i))e=16;else e=8}else e=4;p.set(n,e);return e}var b=e.version.split(".").map(Number),g=[],m=Symbol.for(b[0]>=19?"react.transitional.element":"react.element"),h=function(){};function y(e){if("function"!=typeof e)return e;else return function(r,t){if("string"==typeof r&&t)for(var i in t){var u=t[i];if("children"!==i&&u instanceof n.Signal)t[i]=u.value}return e.call.apply(e,[e,r,t].concat([].slice.call(arguments,2)))}}var x,_=Symbol.dispose||Symbol.for("Symbol.dispose");function j(n,e){var r=e.effect.S();x=e;return w.bind(e,n,r)}function w(n,e){e();x=n}var S,q,k=((S={u:0,effect:{s:void 0,c:function(){},S:function(){return h},d:function(){}},subscribe:function(){return h},getSnapshot:function(){return 0},S:function(){},f:function(){}})[_]=function(){},S),B=Promise.prototype.then.bind(Promise.resolve());function N(){if(!q)q=B(O)}function O(){var n;q=void 0;null==(n=x)||n.f()}var P="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;function R(t){if(void 0===t)t=0;N();var i=e.useRef();if(null==i.current)i.current=function(e){var r,t,i,u,o=0,f=n.effect(function(){t=this});t.c=function(){o=o+1|0;if(u)u()};return(r={u:e,effect:t,subscribe:function(n){u=n;return function(){o=o+1|0;u=void 0;f()}},getSnapshot:function(){return o},S:function(){if(null!=x){var n=x.u,e=this.u;if(0==n&&0==e||0==n&&1==e){x.f();i=j(void 0,this)}else if(1==n&&0==e||2==n&&0==e);else i=j(x,this)}else i=j(void 0,this)},f:function(){var n=i;i=void 0;null==n||n()}})[_]=function(){this.f()},r}(t);var u=i.current;r.useSyncExternalStore(u.subscribe,u.getSnapshot,u.getSnapshot);u.S();if(0===t)P(O);return u}Object.defineProperties(n.Signal.prototype,{$$typeof:{configurable:!0,value:m},type:{configurable:!0,value:function(n){var e=n.data,r=R(1);try{return e.value}finally{r.f()}}},props:{configurable:!0,get:function(){return{data:this}}},ref:{configurable:!0,value:null}});exports._useSignalsImplementation=R;exports.ensureFinalCleanup=N;exports.installAutoSignalTracking=function(){if(e.version.split(".").map(Number)[0]>=19)throw new Error("Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform.");!function(){a=!0;Object.defineProperty(e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher,"current",{get:function(){return v},set:function(n){if(!l){var e=d(v),r=d(n);v=n;if(function(n,e){if(1&n&&28&e)return!0;else if(2&n||2&e)return!1;else return!1}(e,r)){l=!0;s=R(1);l=!1}else if(function(n,e){return Boolean(28&n&&16&e)}(e,r)){var t;null==(t=s)||t.f();l=!0;s=R(1);l=!1}else if(function(n,e){return Boolean(28&n&&1&e)}(e,r)){var i;null==(i=s)||i.f();s=null}}else v=n}})}();!function(){var n=f,e=c;o.createElement=y(o.createElement);e.jsx&&(e.jsx=y(e.jsx));n.jsx&&(n.jsx=y(n.jsx));e.jsxs&&(e.jsxs=y(e.jsxs));n.jsxs&&(n.jsxs=y(n.jsxs));e.jsxDEV&&(e.jsxDEV=y(e.jsxDEV));n.jsxDEV&&(n.jsxDEV=y(n.jsxDEV))}()};exports.useComputed=function(r){var t=e.useRef(r);t.current=r;return e.useMemo(function(){return n.computed(function(){return t.current()})},g)};exports.useSignal=function(r){return e.useMemo(function(){return n.signal(r)},g)};exports.useSignalEffect=function(r){var t=e.useRef(r);t.current=r;e.useEffect(function(){return n.effect(function(){return t.current()})},g)};exports.useSignals=function(n){if(a)return k;else return R(n)};exports.wrapJsx=y;//# sourceMappingURL=runtime.js.map |
@@ -1,1 +0,1 @@ | ||
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@preact/signals-core"),require("react"),require("use-sync-external-store/shim/index.js"),require("react/jsx-runtime"),require("react/jsx-dev-runtime")):"function"==typeof define&&define.amd?define(["exports","@preact/signals-core","react","use-sync-external-store/shim/index.js","react/jsx-runtime","react/jsx-dev-runtime"],e):e((n||self).reactSignalsRuntime={},n.preactSignalsCore,n.react,n.index_js,n.jsxRuntime,n.jsxRuntimeDev)}(this,function(n,e,t,r,i,u){function o(n){return n&&"object"==typeof n&&"default"in n?n.default:n}var f=/*#__PURE__*/o(t),c=/*#__PURE__*/o(i),s=/*#__PURE__*/o(u),a=!1,l=null,v=!1,d=null,p=new Map;function b(n){if(!n)return 1;var e,t=p.get(n);if(void 0!==t)return t;var r=n.useCallback.toString();if(n.useReducer===n.useEffect)e=1;else if(n.useEffect===n.useImperativeHandle)e=32;else if(/Invalid/.test(r))e=2;else if(/updateCallback/.test(r)||/\[0\]/.test(r)&&/\[1\]/.test(r)){var i=n.useReducer.toString();if(/rerenderReducer/.test(i)||/return\s*\[\w+,/.test(i))e=16;else e=8}else e=4;p.set(n,e);return e}var g=[],m=Symbol.for("react.element"),h=function(){};function y(n){if("function"!=typeof n)return n;else return function(t,r){if("string"==typeof t&&r)for(var i in r){var u=r[i];if("children"!==i&&u instanceof e.Signal)r[i]=u.value}return n.call.apply(n,[n,t,r].concat([].slice.call(arguments,2)))}}var j,x=Symbol.dispose||Symbol.for("Symbol.dispose");function _(n,e){var t=e.effect.S();j=e;return S.bind(e,n,t)}function S(n,e){e();j=n}var q,k,w=((q={u:0,effect:{s:void 0,c:function(){},S:function(){return h},d:function(){}},subscribe:function(){return h},getSnapshot:function(){return 0},S:function(){},f:function(){}})[x]=function(){},q),B=Promise.prototype.then.bind(Promise.resolve());function O(){if(!k)k=B(P)}function P(){var n;k=void 0;null==(n=j)||n.f()}function R(n){if(void 0===n)n=0;O();var i=t.useRef();if(null==i.current)i.current=function(n){var t,r,i,u,o=0,f=e.effect(function(){r=this});r.c=function(){o=o+1|0;if(u)u()};return(t={u:n,effect:r,subscribe:function(n){u=n;return function(){o=o+1|0;u=void 0;f()}},getSnapshot:function(){return o},S:function(){if(null!=j){var n=j.u,e=this.u;if(0==n&&0==e||0==n&&1==e){j.f();i=_(void 0,this)}else if(1==n&&0==e||2==n&&0==e);else i=_(j,this)}else i=_(void 0,this)},f:function(){var n=i;i=void 0;null==n||n()}})[x]=function(){this.f()},t}(n);var u=i.current;r.useSyncExternalStore(u.subscribe,u.getSnapshot,u.getSnapshot);u.S();if(0===n)t.useLayoutEffect(P);return u}Object.defineProperties(e.Signal.prototype,{$$typeof:{configurable:!0,value:m},type:{configurable:!0,value:function(n){var e=n.data,t=R(1);try{return e.value}finally{t.f()}}},props:{configurable:!0,get:function(){return{data:this}}},ref:{configurable:!0,value:null}});n.o=R;n.ensureFinalCleanup=O;n.installAutoSignalTracking=function(){if(t.version.split(".").map(Number)[0]>=19)throw new Error("Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform.");!function(){a=!0;Object.defineProperty(t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher,"current",{get:function(){return d},set:function(n){if(!v){var e=b(d),t=b(n);d=n;if(function(n,e){if(1&n&&28&e)return!0;else if(2&n||2&e)return!1;else return!1}(e,t)){v=!0;l=R(1);v=!1}else if(function(n,e){return Boolean(28&n&&16&e)}(e,t)){var r;null==(r=l)||r.f();v=!0;l=R(1);v=!1}else if(function(n,e){return Boolean(28&n&&1&e)}(e,t)){var i;null==(i=l)||i.f();l=null}}else d=n}})}();!function(){var n=c,e=s;f.createElement=y(f.createElement);e.jsx&&(e.jsx=y(e.jsx));n.jsx&&(n.jsx=y(n.jsx));e.jsxs&&(e.jsxs=y(e.jsxs));n.jsxs&&(n.jsxs=y(n.jsxs));e.jsxDEV&&(e.jsxDEV=y(e.jsxDEV));n.jsxDEV&&(n.jsxDEV=y(n.jsxDEV))}()};n.useComputed=function(n){var r=t.useRef(n);r.current=n;return t.useMemo(function(){return e.computed(function(){return r.current()})},g)};n.useSignal=function(n){return t.useMemo(function(){return e.signal(n)},g)};n.useSignalEffect=function(n){var r=t.useRef(n);r.current=n;t.useEffect(function(){return e.effect(function(){return r.current()})},g)};n.useSignals=function(n){if(a)return w;else return R(n)};n.wrapJsx=y});//# sourceMappingURL=runtime.min.js.map | ||
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@preact/signals-core"),require("react"),require("use-sync-external-store/shim/index.js"),require("react/jsx-runtime"),require("react/jsx-dev-runtime")):"function"==typeof define&&define.amd?define(["exports","@preact/signals-core","react","use-sync-external-store/shim/index.js","react/jsx-runtime","react/jsx-dev-runtime"],e):e((n||self).reactSignalsRuntime={},n.preactSignalsCore,n.react,n.index_js,n.jsxRuntime,n.jsxRuntimeDev)}(this,function(n,e,t,r,i,u){function o(n){return n&&"object"==typeof n&&"default"in n?n.default:n}var f=/*#__PURE__*/o(t),c=/*#__PURE__*/o(i),a=/*#__PURE__*/o(u),s=!1,l=null,v=!1,d=null,p=new Map;function b(n){if(!n)return 1;var e,t=p.get(n);if(void 0!==t)return t;var r=n.useCallback.toString();if(n.useReducer===n.useEffect)e=1;else if(n.useEffect===n.useImperativeHandle)e=32;else if(/Invalid/.test(r))e=2;else if(/updateCallback/.test(r)||/\[0\]/.test(r)&&/\[1\]/.test(r)){var i=n.useReducer.toString();if(/rerenderReducer/.test(i)||/return\s*\[\w+,/.test(i))e=16;else e=8}else e=4;p.set(n,e);return e}var g=t.version.split(".").map(Number),m=[],h=Symbol.for(g[0]>=19?"react.transitional.element":"react.element"),y=function(){};function j(n){if("function"!=typeof n)return n;else return function(t,r){if("string"==typeof t&&r)for(var i in r){var u=r[i];if("children"!==i&&u instanceof e.Signal)r[i]=u.value}return n.call.apply(n,[n,t,r].concat([].slice.call(arguments,2)))}}var x,_=Symbol.dispose||Symbol.for("Symbol.dispose");function w(n,e){var t=e.effect.S();x=e;return S.bind(e,n,t)}function S(n,e){e();x=n}var q,k,B=((q={u:0,effect:{s:void 0,c:function(){},S:function(){return y},d:function(){}},subscribe:function(){return y},getSnapshot:function(){return 0},S:function(){},f:function(){}})[_]=function(){},q),N=Promise.prototype.then.bind(Promise.resolve());function O(){if(!k)k=N(P)}function P(){var n;k=void 0;null==(n=x)||n.f()}var R="undefined"!=typeof window?t.useLayoutEffect:t.useEffect;function T(n){if(void 0===n)n=0;O();var i=t.useRef();if(null==i.current)i.current=function(n){var t,r,i,u,o=0,f=e.effect(function(){r=this});r.c=function(){o=o+1|0;if(u)u()};return(t={u:n,effect:r,subscribe:function(n){u=n;return function(){o=o+1|0;u=void 0;f()}},getSnapshot:function(){return o},S:function(){if(null!=x){var n=x.u,e=this.u;if(0==n&&0==e||0==n&&1==e){x.f();i=w(void 0,this)}else if(1==n&&0==e||2==n&&0==e);else i=w(x,this)}else i=w(void 0,this)},f:function(){var n=i;i=void 0;null==n||n()}})[_]=function(){this.f()},t}(n);var u=i.current;r.useSyncExternalStore(u.subscribe,u.getSnapshot,u.getSnapshot);u.S();if(0===n)R(P);return u}Object.defineProperties(e.Signal.prototype,{$$typeof:{configurable:!0,value:h},type:{configurable:!0,value:function(n){var e=n.data,t=T(1);try{return e.value}finally{t.f()}}},props:{configurable:!0,get:function(){return{data:this}}},ref:{configurable:!0,value:null}});n.o=T;n.ensureFinalCleanup=O;n.installAutoSignalTracking=function(){if(t.version.split(".").map(Number)[0]>=19)throw new Error("Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform.");!function(){s=!0;Object.defineProperty(t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher,"current",{get:function(){return d},set:function(n){if(!v){var e=b(d),t=b(n);d=n;if(function(n,e){if(1&n&&28&e)return!0;else if(2&n||2&e)return!1;else return!1}(e,t)){v=!0;l=T(1);v=!1}else if(function(n,e){return Boolean(28&n&&16&e)}(e,t)){var r;null==(r=l)||r.f();v=!0;l=T(1);v=!1}else if(function(n,e){return Boolean(28&n&&1&e)}(e,t)){var i;null==(i=l)||i.f();l=null}}else d=n}})}();!function(){var n=c,e=a;f.createElement=j(f.createElement);e.jsx&&(e.jsx=j(e.jsx));n.jsx&&(n.jsx=j(n.jsx));e.jsxs&&(e.jsxs=j(e.jsxs));n.jsxs&&(n.jsxs=j(n.jsxs));e.jsxDEV&&(e.jsxDEV=j(e.jsxDEV));n.jsxDEV&&(n.jsxDEV=j(n.jsxDEV))}()};n.useComputed=function(n){var r=t.useRef(n);r.current=n;return t.useMemo(function(){return e.computed(function(){return r.current()})},m)};n.useSignal=function(n){return t.useMemo(function(){return e.signal(n)},m)};n.useSignalEffect=function(n){var r=t.useRef(n);r.current=n;t.useEffect(function(){return e.effect(function(){return r.current()})},m)};n.useSignals=function(n){if(s)return B;else return T(n)};n.wrapJsx=j});//# sourceMappingURL=runtime.min.js.map |
@@ -1,1 +0,1 @@ | ||
import{Signal as n,signal as r,computed as t,effect as e}from"@preact/signals-core";import i,{version as u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as o,useRef as f,useLayoutEffect as c,useMemo as a,useEffect as s}from"react";import{useSyncExternalStore as l}from"use-sync-external-store/shim/index.js";import v from"react/jsx-runtime";import m from"react/jsx-dev-runtime";var p=!1,d=null,b=!1,g=null,h=new Map;function y(n){if(!n)return 1;var r,t=h.get(n);if(void 0!==t)return t;var e=n.useCallback.toString();if(n.useReducer===n.useEffect)r=1;else if(n.useEffect===n.useImperativeHandle)r=32;else if(/Invalid/.test(e))r=2;else if(/updateCallback/.test(e)||/\[0\]/.test(e)&&/\[1\]/.test(e)){var i=n.useReducer.toString();if(/rerenderReducer/.test(i)||/return\s*\[\w+,/.test(i))r=16;else r=8}else r=4;h.set(n,r);return r}function _(){if(u.split(".").map(Number)[0]>=19)throw new Error("Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform.");!function(){p=!0;Object.defineProperty(o.ReactCurrentDispatcher,"current",{get:function(){return g},set:function(n){if(!b){var r=y(g),t=y(n);g=n;if(function(n,r){if(1&n&&28&r)return!0;else if(2&n||2&r)return!1;else return!1}(r,t)){b=!0;d=M(1);b=!1}else if(function(n,r){return Boolean(28&n&&16&r)}(r,t)){var e;null==(e=d)||e.f();b=!0;d=M(1);b=!1}else if(function(n,r){return Boolean(28&n&&1&r)}(r,t)){var i;null==(i=d)||i.f();d=null}}else g=n}})}();!function(){var n=v,r=m;i.createElement=k(i.createElement);r.jsx&&(r.jsx=k(r.jsx));n.jsx&&(n.jsx=k(n.jsx));r.jsxs&&(r.jsxs=k(r.jsxs));n.jsxs&&(n.jsxs=k(n.jsxs));r.jsxDEV&&(r.jsxDEV=k(r.jsxDEV));n.jsxDEV&&(n.jsxDEV=k(n.jsxDEV))}()}var j=[],S=Symbol.for("react.element"),x=function(){};function k(r){if("function"!=typeof r)return r;else return function(t,e){if("string"==typeof t&&e)for(var i in e){var u=e[i];if("children"!==i&&u instanceof n)e[i]=u.value}return r.call.apply(r,[r,t,e].concat([].slice.call(arguments,2)))}}var w,B=Symbol.dispose||Symbol.for("Symbol.dispose");function O(n,r){var t=r.effect.S();w=r;return P.bind(r,n,t)}function P(n,r){r();w=n}var R,$,A=((R={u:0,effect:{s:void 0,c:function(){},S:function(){return x},d:function(){}},subscribe:function(){return x},getSnapshot:function(){return 0},S:function(){},f:function(){}})[B]=function(){},R),C=Promise.prototype.then.bind(Promise.resolve());function E(){if(!$)$=C(I)}function I(){var n;$=void 0;null==(n=w)||n.f()}function M(n){if(void 0===n)n=0;E();var r=f();if(null==r.current)r.current=function(n){var r,t,i,u,o=0,f=e(function(){t=this});t.c=function(){o=o+1|0;if(u)u()};return(r={u:n,effect:t,subscribe:function(n){u=n;return function(){o=o+1|0;u=void 0;f()}},getSnapshot:function(){return o},S:function(){if(null!=w){var n=w.u,r=this.u;if(0==n&&0==r||0==n&&1==r){w.f();i=O(void 0,this)}else if(1==n&&0==r||2==n&&0==r);else i=O(w,this)}else i=O(void 0,this)},f:function(){var n=i;i=void 0;null==n||n()}})[B]=function(){this.f()},r}(n);var t=r.current;l(t.subscribe,t.getSnapshot,t.getSnapshot);t.S();if(0===n)c(I);return t}Object.defineProperties(n.prototype,{$$typeof:{configurable:!0,value:S},type:{configurable:!0,value:function(n){var r=n.data,t=M(1);try{return r.value}finally{t.f()}}},props:{configurable:!0,get:function(){return{data:this}}},ref:{configurable:!0,value:null}});function N(n){if(p)return A;else return M(n)}function useSignal(n){return a(function(){return r(n)},j)}function useComputed(n){var r=f(n);r.current=n;return a(function(){return t(function(){return r.current()})},j)}function useSignalEffect(n){var r=f(n);r.current=n;s(function(){return e(function(){return r.current()})},j)}export{M as _useSignalsImplementation,E as ensureFinalCleanup,_ as installAutoSignalTracking,useComputed,useSignal,useSignalEffect,N as useSignals,k as wrapJsx};//# sourceMappingURL=runtime.module.js.map | ||
import{Signal as n,signal as r,computed as t,effect as e}from"@preact/signals-core";import i,{version as u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as o,useRef as f,useMemo as c,useEffect as a,useLayoutEffect as s}from"react";import{useSyncExternalStore as l}from"use-sync-external-store/shim/index.js";import v from"react/jsx-runtime";import m from"react/jsx-dev-runtime";var p=!1,d=null,b=!1,g=null,h=new Map;function y(n){if(!n)return 1;var r,t=h.get(n);if(void 0!==t)return t;var e=n.useCallback.toString();if(n.useReducer===n.useEffect)r=1;else if(n.useEffect===n.useImperativeHandle)r=32;else if(/Invalid/.test(e))r=2;else if(/updateCallback/.test(e)||/\[0\]/.test(e)&&/\[1\]/.test(e)){var i=n.useReducer.toString();if(/rerenderReducer/.test(i)||/return\s*\[\w+,/.test(i))r=16;else r=8}else r=4;h.set(n,r);return r}function _(){if(u.split(".").map(Number)[0]>=19)throw new Error("Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform.");!function(){p=!0;Object.defineProperty(o.ReactCurrentDispatcher,"current",{get:function(){return g},set:function(n){if(!b){var r=y(g),t=y(n);g=n;if(function(n,r){if(1&n&&28&r)return!0;else if(2&n||2&r)return!1;else return!1}(r,t)){b=!0;d=q(1);b=!1}else if(function(n,r){return Boolean(28&n&&16&r)}(r,t)){var e;null==(e=d)||e.f();b=!0;d=q(1);b=!1}else if(function(n,r){return Boolean(28&n&&1&r)}(r,t)){var i;null==(i=d)||i.f();d=null}}else g=n}})}();!function(){var n=v,r=m;i.createElement=k(i.createElement);r.jsx&&(r.jsx=k(r.jsx));n.jsx&&(n.jsx=k(n.jsx));r.jsxs&&(r.jsxs=k(r.jsxs));n.jsxs&&(n.jsxs=k(n.jsxs));r.jsxDEV&&(r.jsxDEV=k(r.jsxDEV));n.jsxDEV&&(n.jsxDEV=k(n.jsxDEV))}()}var j=u.split(".").map(Number),w=[],S=Symbol.for(j[0]>=19?"react.transitional.element":"react.element"),x=function(){};function k(r){if("function"!=typeof r)return r;else return function(t,e){if("string"==typeof t&&e)for(var i in e){var u=e[i];if("children"!==i&&u instanceof n)e[i]=u.value}return r.call.apply(r,[r,t,e].concat([].slice.call(arguments,2)))}}var B,N=Symbol.dispose||Symbol.for("Symbol.dispose");function O(n,r){var t=r.effect.S();B=r;return P.bind(r,n,t)}function P(n,r){r();B=n}var R,$,A=((R={u:0,effect:{s:void 0,c:function(){},S:function(){return x},d:function(){}},subscribe:function(){return x},getSnapshot:function(){return 0},S:function(){},f:function(){}})[N]=function(){},R),C=Promise.prototype.then.bind(Promise.resolve());function E(){if(!$)$=C(I)}function I(){var n;$=void 0;null==(n=B)||n.f()}var M="undefined"!=typeof window?s:a;function q(n){if(void 0===n)n=0;E();var r=f();if(null==r.current)r.current=function(n){var r,t,i,u,o=0,f=e(function(){t=this});t.c=function(){o=o+1|0;if(u)u()};return(r={u:n,effect:t,subscribe:function(n){u=n;return function(){o=o+1|0;u=void 0;f()}},getSnapshot:function(){return o},S:function(){if(null!=B){var n=B.u,r=this.u;if(0==n&&0==r||0==n&&1==r){B.f();i=O(void 0,this)}else if(1==n&&0==r||2==n&&0==r);else i=O(B,this)}else i=O(void 0,this)},f:function(){var n=i;i=void 0;null==n||n()}})[N]=function(){this.f()},r}(n);var t=r.current;l(t.subscribe,t.getSnapshot,t.getSnapshot);t.S();if(0===n)M(I);return t}Object.defineProperties(n.prototype,{$$typeof:{configurable:!0,value:S},type:{configurable:!0,value:function(n){var r=n.data,t=q(1);try{return r.value}finally{t.f()}}},props:{configurable:!0,get:function(){return{data:this}}},ref:{configurable:!0,value:null}});function z(n){if(p)return A;else return q(n)}function useSignal(n){return c(function(){return r(n)},w)}function useComputed(n){var r=f(n);r.current=n;return c(function(){return t(function(){return r.current()})},w)}function useSignalEffect(n){var r=f(n);r.current=n;a(function(){return e(function(){return r.current()})},w)}export{q as _useSignalsImplementation,E as ensureFinalCleanup,_ as installAutoSignalTracking,useComputed,useSignal,useSignalEffect,z as useSignals,k as wrapJsx};//# sourceMappingURL=runtime.module.js.map |
@@ -8,3 +8,9 @@ import { | ||
} from "@preact/signals-core"; | ||
import { useRef, useMemo, useEffect, useLayoutEffect } from "react"; | ||
import { | ||
useRef, | ||
useMemo, | ||
useEffect, | ||
useLayoutEffect, | ||
version as reactVersion, | ||
} from "react"; | ||
import { useSyncExternalStore } from "use-sync-external-store/shim/index.js"; | ||
@@ -15,4 +21,10 @@ import { isAutoSignalTrackingInstalled } from "./auto"; | ||
const [major] = reactVersion.split(".").map(Number); | ||
const Empty = [] as const; | ||
const ReactElemType = Symbol.for("react.element"); // https://github.com/facebook/react/blob/346c7d4c43a0717302d446da9e7423a8e28d8996/packages/shared/ReactSymbols.js#L15 | ||
// V19 https://github.com/facebook/react/blob/346c7d4c43a0717302d446da9e7423a8e28d8996/packages/shared/ReactSymbols.js#L15 | ||
// V18 https://github.com/facebook/react/blob/346c7d4c43a0717302d446da9e7423a8e28d8996/packages/shared/ReactSymbols.js#L15 | ||
const ReactElemType = Symbol.for( | ||
major >= 19 ? "react.transitional.element" : "react.element" | ||
); | ||
const noop = () => {}; | ||
@@ -321,2 +333,5 @@ | ||
const useIsomorphicLayoutEffect = | ||
typeof window !== "undefined" ? useLayoutEffect : useEffect; | ||
/** | ||
@@ -340,3 +355,3 @@ * Custom hook to create the effect to track signals used during render and | ||
// note: _usage is a constant here, so conditional is okay | ||
if (_usage === UNMANAGED) useLayoutEffect(cleanupTrailingStore); | ||
if (_usage === UNMANAGED) useIsomorphicLayoutEffect(cleanupTrailingStore); | ||
@@ -388,3 +403,3 @@ return store; | ||
export function useSignalEffect(cb: () => void | (() => void)): void { | ||
export function useSignalEffect(cb: () => void | (() => void)) { | ||
const callback = useRef(cb); | ||
@@ -394,4 +409,6 @@ callback.current = cb; | ||
useEffect(() => { | ||
return effect(() => callback.current()); | ||
return effect(function (this: Effect) { | ||
return callback.current(); | ||
}); | ||
}, Empty); | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
229892
939