UNPKG

ipreact

Version:

connect data-actions of preact-components via immutablejs

2 lines 1.11 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact")):"function"==typeof define&&define.amd?define(["exports","preact"],t):t(e.IPreact={},e.Preact)}(this,function(e,t){"use strict";const p=(e,t)=>{let p=Object.keys(e),s=Object.keys(t);return p.length===s.length&&(p.length+s.length===0||p.every(p=>e[p]===t[p]))};e.isSameObject=p,e.default=(e=>(s={})=>{let n=s,r=[];return{connect:(e,s)=>n=>(class extends t.Component{execProps(){const{props:t}=this,p=e(t);let n={};return s&&(n=s(Object.assign({},t,p))),Object.assign({},t,p,n)}constructor(e){super(e);let t=this;t.execProps=t.execProps.bind(t),t.tempProps=t.execProps(),t.tempUpdate=function(){let e=t.execProps();p(t.tempProps,e)||(t.tempProps=e,t.forceUpdate&&t.forceUpdate())},r.push(t.tempUpdate)}componentWillUnmount(){r.splice(r.indexOf(this.tempUpdate),1)}render(){return t.h(n,Object.assign({},this.tempProps,this.props))}}),getState:()=>n,dispatch:(t,p)=>{let s=t(n);e&&e.map(e=>e(n,s,p)),s!==n&&(n=s,r.map(e=>e()))}}}),Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ipreact.js.map