UNPKG

3.81 kBSource Map (JSON)View Raw
1{"version":3,"file":"observe.js","sources":["../src/providers/observe/observe.js"],"sourcesContent":["import React from 'react'\nimport getDisplayName from 'react-display-name'\nimport { warnOnce } from '../../utils'\n\n// Higher-order component for convenient subscriptions to RxJS observables\nconst observe = (observe, initialState = {}) => Component =>\n class extends React.Component {\n static displayName = `Observe(${getDisplayName(Component)})`\n static propTypes = {\n observable: ({ observable }, _, componentName) => {\n if (observable && typeof observable.subscribe !== 'function') {\n throw new Error(\n `Invalid prop \\`observable\\` supplied to \\`${componentName}\\` ` +\n '(wrapped by `observe()`). ' +\n '`observable` must be an RxJS Observable-like object. ' +\n `Given ${observable} instead.`\n )\n }\n },\n }\n state = initialState\n componentDidMount() {\n this.subscribe(this.props.observable)\n }\n componentWillReceiveProps({ observable: nextObservable }) {\n const { observable } = this.props\n // If a new observable gets passed in, unsubscribe from the old and subscribe to the new\n if (nextObservable !== observable) {\n this.unsubscribe()\n this.subscribe(nextObservable)\n }\n }\n componentWillUnmount() {\n this.unsubscribe()\n }\n subscribe = observable => {\n if (observable) {\n this.setState({\n subscription: observe(observable).subscribe(state => {\n this.setState(state)\n }),\n })\n }\n }\n unsubscribe = () => {\n this.state.subscription && this.state.subscription.unsubscribe()\n }\n render() {\n warnOnce(\n 'observe()',\n 'observe() is deprecated. If you are using it with @aragon/api, using @aragon/api-react is now recommended instead.'\n )\n const { ...props } = this.props\n // Don't pass down the given observable\n delete props.observable\n\n return <Component {...this.state} {...props} />\n }\n }\n\nexport default observe\n"],"names":["observe","initialState","Component","observable","setState","subscription","subscribe","state","unsubscribe","props","nextObservable","warnOnce","React","getDisplayName","_","componentName","Error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,OAAO,GAAG,iBAACA,QAAD;AAAA,MAAUC,YAAV,uEAAyB,EAAzB;AAAA,SAAgC,UAAAC,SAAS;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA,gGAe7CD,YAf6C;;AAAA,oGA8BzC,UAAAE,UAAU,EAAI;AACxB,cAAIA,UAAJ,EAAgB;AACd,kBAAKC,QAAL,CAAc;AACZC,cAAAA,YAAY,EAAEL,QAAO,CAACG,UAAD,CAAP,CAAoBG,SAApB,CAA8B,UAAAC,KAAK,EAAI;AACnD,sBAAKH,QAAL,CAAcG,KAAd;AACD,eAFa;AADF,aAAd;AAKD;AACF,SAtCoD;;AAAA,sGAuCvC,YAAM;AAClB,gBAAKA,KAAL,CAAWF,YAAX,IAA2B,MAAKE,KAAL,CAAWF,YAAX,CAAwBG,WAAxB,EAA3B;AACD,SAzCoD;;AAAA;AAAA;;AAAA;AAAA;AAAA,4CAgBjC;AAClB,eAAKF,SAAL,CAAe,KAAKG,KAAL,CAAWN,UAA1B;AACD;AAlBoD;AAAA;AAAA,wDAmBK;AAAA,cAAlBO,cAAkB,QAA9BP,UAA8B;AAAA,cAChDA,UADgD,GACjC,KAAKM,KAD4B,CAChDN,UADgD;;AAGxD,cAAIO,cAAc,KAAKP,UAAvB,EAAmC;AACjC,iBAAKK,WAAL;AACA,iBAAKF,SAAL,CAAeI,cAAf;AACD;AACF;AA1BoD;AAAA;AAAA,+CA2B9B;AACrB,eAAKF,WAAL;AACD;AA7BoD;AAAA;AAAA,iCA0C5C;AACPG,UAAAA,oBAAQ,CACN,WADM,EAEN,oHAFM,CAAR;;AADO,cAKIF,KALJ,2BAKc,KAAKA,KALnB;;;AAOP,iBAAOA,KAAK,CAACN,UAAb;AAEA,8BAAOS,6BAAC,SAAD,0BAAe,KAAKL,KAApB,EAA+BE,KAA/B,EAAP;AACD;AApDoD;;AAAA;AAAA,MACzCG,cAAK,CAACV,SADmC,6EAErBW,6BAAc,CAACX,SAAD,CAFO,+DAGlC;AACjBC,MAAAA,UAAU,EAAE,2BAAiBW,CAAjB,EAAoBC,aAApB,EAAsC;AAAA,YAAnCZ,WAAmC,SAAnCA,UAAmC;;AAChD,YAAIA,WAAU,IAAI,OAAOA,WAAU,CAACG,SAAlB,KAAgC,UAAlD,EAA8D;AAC5D,gBAAM,IAAIU,KAAJ,CACJ,iDAA6CD,aAA7C,UACE,4BADF,GAEE,uDAFF,mBAGWZ,WAHX,cADI,CAAN;AAMD;AACF;AAVgB,KAHkC;AAAA,GAAzC;AAAA,CAAhB;;;;"}
\No newline at end of file