UNPKG

8.66 kBJavaScriptView Raw
1!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],t):t((e=e||self).ReactFirestore={},e.React,e.PropTypes)}(this,function(e,t,r){"use strict";var n="default"in t?t.default:t;function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}r=r&&r.hasOwnProperty("default")?r.default:r;var s=function(){},i=n.createContext(null),a=function(e){function t(t){var r=e.call(this,t)||this,n=t.firebase,o=t.useTimestampsInSnapshots,i=n.firestore();return void 0!==o&&i.settings({timestampsInSnapshots:o}),r.state={firestoreDatabase:i,firestoreCache:new s},r}return o(t,e),t.prototype.render=function(){return n.createElement(i.Provider,{value:this.state},this.props.children)},t}(t.Component);a.defaultProps={};function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function c(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}function p(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e,t){return e(t={exports:{}},t.exports),t.exports}var l=f(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,s=r?Symbol.for("react.fragment"):60107,i=r?Symbol.for("react.strict_mode"):60108,a=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,p=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,l=r?Symbol.for("react.forward_ref"):60112,d=r?Symbol.for("react.suspense"):60113,y=r?Symbol.for("react.memo"):60115,h=r?Symbol.for("react.lazy"):60116;function m(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case p:case f:case s:case a:case i:case d:return e;default:switch(e=e&&e.$$typeof){case c:case l:case u:return e;default:return t}}case h:case y:case o:return t}}}function b(e){return m(e)===f}t.typeOf=m,t.AsyncMode=p,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=u,t.Element=n,t.ForwardRef=l,t.Fragment=s,t.Lazy=h,t.Memo=y,t.Portal=o,t.Profiler=a,t.StrictMode=i,t.Suspense=d,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===s||e===f||e===a||e===i||e===d||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===y||e.$$typeof===u||e.$$typeof===c||e.$$typeof===l)},t.isAsyncMode=function(e){return b(e)||m(e)===p},t.isConcurrentMode=b,t.isContextConsumer=function(e){return m(e)===c},t.isContextProvider=function(e){return m(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return m(e)===l},t.isFragment=function(e){return m(e)===s},t.isLazy=function(e){return m(e)===h},t.isMemo=function(e){return m(e)===y},t.isPortal=function(e){return m(e)===o},t.isProfiler=function(e){return m(e)===a},t.isStrictMode=function(e){return m(e)===i},t.isSuspense=function(e){return m(e)===d}});p(l);l.typeOf,l.AsyncMode,l.ConcurrentMode,l.ContextConsumer,l.ContextProvider,l.Element,l.ForwardRef,l.Fragment,l.Lazy,l.Memo,l.Portal,l.Profiler,l.StrictMode,l.Suspense,l.isValidElementType,l.isAsyncMode,l.isConcurrentMode,l.isContextConsumer,l.isContextProvider,l.isElement,l.isForwardRef,l.isFragment,l.isLazy,l.isMemo,l.isPortal,l.isProfiler,l.isStrictMode,l.isSuspense;var d=f(function(){});p(d);d.typeOf,d.AsyncMode,d.ConcurrentMode,d.ContextConsumer,d.ContextProvider,d.Element,d.ForwardRef,d.Fragment,d.Lazy,d.Memo,d.Portal,d.Profiler,d.StrictMode,d.Suspense,d.isValidElementType,d.isAsyncMode,d.isConcurrentMode,d.isContextConsumer,d.isContextProvider,d.isElement,d.isForwardRef,d.isFragment,d.isLazy,d.isMemo,d.isPortal,d.isProfiler,d.isStrictMode,d.isSuspense;var y=f(function(e){e.exports=l}),h={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},m={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},b={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},v={};function S(e){return y.isMemo(e)?b:v[e.$$typeof]||h}v[y.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var P=Object.defineProperty,g=Object.getOwnPropertyNames,C=Object.getOwnPropertySymbols,O=Object.getOwnPropertyDescriptor,M=Object.getPrototypeOf,F=Object.prototype;var w=function e(t,r,n){if("string"!=typeof r){if(F){var o=M(r);o&&o!==F&&e(t,o,n)}var s=g(r);C&&(s=s.concat(C(r)));for(var i=S(t),a=S(r),u=0;u<s.length;++u){var c=s[u];if(!(m[c]||n&&n[c]||a&&a[c]||i&&i[c])){var p=O(r,c);try{P(t,c,p)}catch(e){}}}return t}return t},x=function(e){var t=function(t){var r=t.wrappedComponentRef,o=c(t,["wrappedComponentRef"]);return n.createElement(i.Consumer,null,function(t){if(!t)throw new Error("FirestoreProvider is missing");var s=t.firestoreDatabase;return n.createElement(e,u({},o,{firestore:s,ref:r}))})};return t.displayName="withFirestore("+(e.displayName||e.name)+")",t.WrappedComponent=e,w(t,e)};var $=x(function(e){function t(){for(var t,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return(t=e.call.apply(e,[this].concat(n))||this).state={isLoading:!0,data:[],error:null,snapshot:null},t.setupFirestoreListener=function(){var e=t.props,r=e.firestore,n=e.path,o=c(e,["firestore","path"]),s=r.collection(n),i=t.buildQuery(s,o);t.unsubscribe=i.onSnapshot(t.handleOnSnapshotSuccess,t.handleOnSnapshotError)},t.handleOnSnapshotSuccess=function(e){e&&t.setState({isLoading:!1,data:e.docs.map(function(e){return u({id:e.id},e.data())}),error:null,snapshot:e})},t.handleOnSnapshotError=function(e){t.setState({isLoading:!1,data:[],error:e,snapshot:null})},t.buildQuery=function(e,t){var r,n=t.sort,o=t.limit,s=t.filter,i=e;(n&&n.split(",").forEach(function(e){var t=e.split(":"),r=t[0],n=t[1];i=i.orderBy(r,n)}),o&&(i=i.limit(o)),s)&&(Array.isArray(s[0])?s.forEach(function(e){var t;i=(t=i).where.apply(t,e)}):i=(r=i).where.apply(r,s));return i},t}o(t,e);var r=t.prototype;return r.componentDidMount=function(){this.setupFirestoreListener()},r.componentWillUnmount=function(){this.handleUnsubscribe()},r.componentWillReceiveProps=function(e){var t=this;e.path===this.props.path&&e.sort===this.props.sort&&e.limit===this.props.limit&&function e(t,r){if(Array.isArray(t)&&Array.isArray(r)){if(t.length!==r.length)return!1;for(var n=0;n<t.length;n++)if(!e(t[n],r[n]))return!1;return!0}return t===r}(e.filter,this.props.filter)||(this.handleUnsubscribe(),this.setState({isLoading:!0},function(){return t.setupFirestoreListener()}))},r.handleUnsubscribe=function(){this.unsubscribe&&this.unsubscribe()},r.render=function(){var e=this.props,t=e.children,r=e.render;return r?r(this.state):"function"==typeof t?t(this.state):null},t}(t.Component)),E=x(function(e){function t(){for(var t,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return(t=e.call.apply(e,[this].concat(n))||this).state={isLoading:!0,data:null,error:null,snapshot:null},t.setupFirestoreListener=function(){var e=t.props,r=e.firestore,n=e.path,o=r.doc(n);t.unsubscribe=o.onSnapshot(t.handleOnSnapshotSuccess,t.handleOnSnapshotError)},t.handleOnSnapshotError=function(e){t.setState({isLoading:!1,error:e,data:null,snapshot:null})},t.handleOnSnapshotSuccess=function(e){if(e){var r={isLoading:!1,error:null,snapshot:e};try{var n=e.data();r.data=u({id:e.id},n)}catch(e){r.error=e}t.setState(r)}},t}o(t,e);var r=t.prototype;return r.componentDidMount=function(){this.setupFirestoreListener()},r.componentWillUnmount=function(){this.handleUnsubscribe()},r.componentWillReceiveProps=function(e){var t=this;e.path!==this.props.path&&(this.handleUnsubscribe(),this.setState({isLoading:!0},function(){return t.setupFirestoreListener()}))},r.handleUnsubscribe=function(){this.unsubscribe&&this.unsubscribe()},r.render=function(){var e=this.props,t=e.children,r=e.render;return r?r(this.state):"function"==typeof t?t(this.state):null},t}(t.Component));e.Firestore=function(e){var t=e.render;return n.createElement(i.Consumer,null,function(e){var r=e.firestoreDatabase;return t({firestore:r})})},e.FirestoreProvider=a,e.FirestoreCollection=$,e.FirestoreDocument=E,e.withFirestore=x,Object.defineProperty(e,"__esModule",{value:!0})});
2//# sourceMappingURL=react-firestore.umd.min.js.map