react-firebase-hooks
Version:
React Hooks for Firebase
3 lines (2 loc) • 3.13 kB
JavaScript
!function(e,n){"use strict";var r=function(e,n,r,t,o){if(e.exists){var u=e.data(n);return o&&(u=o(u)),r&&(u[r]=e.id),t&&(u[t]=e.ref),u}},t=function(){return(t=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var o in n=arguments[r])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)},o=function(e){return{loading:void 0===e||null===e,value:e}},u=function(e){var r=e?e():void 0,u=n.useReducer(function(e,n){switch(n.type){case"error":return t({},e,{error:n.error,loading:!1,value:void 0});case"reset":return o(n.defaultValue);case"value":return t({},e,{error:void 0,loading:!1,value:n.value});default:return e}},o(r)),i=u[0],s=u[1],a=function(){var n=e?e():void 0;s({type:"reset",defaultValue:n})},c=function(e){s({type:"error",error:e})},f=function(e){s({type:"value",value:e})};return n.useMemo(function(){return{error:i.error,loading:i.loading,reset:a,setError:c,setValue:f,value:i.value}},[i.error,i.loading,a,c,f,i.value])},i=function(e,n){var r=!e&&!n,t=!!e&&!!n&&e.isEqual(n);return r||t},s=function(e,r){return function(e,r,t){var o=n.useRef(e);return n.useEffect(function(){r(e,o.current)||(o.current=e,t&&t())}),o}(e,i,r)},a=function(e,r,t){var o=u(),i=o.error,a=o.loading,c=o.reset,f=o.setError,l=o.setValue,v=o.value,d=s(r,c);n.useEffect(function(){if(d.current){if(e){var n=t&&t.snapshotListenOptions?d.current.onSnapshot(t.snapshotListenOptions,l,f):d.current.onSnapshot(l,f);return function(){n()}}d.current.get(t?t.getOptions:void 0).then(l).catch(f)}else l(void 0)},[d.current]);var p=[v,a,i];return n.useMemo(function(){return p},p)},c=function(e,t,o){var u=o?o.idField:void 0,i=o?o.refField:void 0,s=o?o.snapshotOptions:void 0,c=o?o.transform:void 0,f=a(e,t,o),l=f[0],v=f[1],d=f[2],p=[n.useMemo(function(){return l?l.docs.map(function(e){return r(e,s,u,i,c)}):void 0},[l,s,u,i,c]),v,d];return n.useMemo(function(){return p},p)},f=function(e,r,t){var o=u(),i=o.error,a=o.loading,c=o.reset,f=o.setError,l=o.setValue,v=o.value,d=s(r,c);n.useEffect(function(){if(d.current){if(e){var n=t&&t.snapshotListenOptions?d.current.onSnapshot(t.snapshotListenOptions,l,f):d.current.onSnapshot(l,f);return function(){n()}}d.current.get(t?t.getOptions:void 0).then(l).catch(f)}else l(void 0)},[d.current]);var p=[v,a,i];return n.useMemo(function(){return p},p)},l=function(e,t,o){var u=o?o.idField:void 0,i=o?o.refField:void 0,s=o?o.snapshotOptions:void 0,a=o?o.transform:void 0,c=f(e,t,o),l=c[0],v=c[1],d=c[2],p=[n.useMemo(function(){return l?r(l,s,u,i,a):void 0},[l,s,u,i,a]),v,d];return n.useMemo(function(){return p},p)};e.useCollection=function(e,n){return a(!0,e,n)},e.useCollectionOnce=function(e,n){return a(!1,e,n)},e.useCollectionData=function(e,n){return c(!0,e,n)},e.useCollectionDataOnce=function(e,n){return c(!1,e,n)},e.useDocument=function(e,n){return f(!0,e,n)},e.useDocumentData=function(e,n){return l(!0,e,n)},e.useDocumentOnce=function(e,n){return f(!1,e,n)},e.useDocumentDataOnce=function(e,n){return l(!1,e,n)}}(this["react-firebase-hooks"]=this["react-firebase-hooks"]||{},react);
//# sourceMappingURL=react-firebase-hooks-firestore.js.map