pocketbase-react 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react-dom'), require('pocketbase')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'react-dom', 'pocketbase'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.PocketbaseReact = {}, global.reactDom, global.Pocketbase));
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react-dom'), require('@tobicrain/pocketbase')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'react-dom', '@tobicrain/pocketbase'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.PocketbaseReact = {}, global.reactDom, global.PocketBase));
5
5
  })(this, (function (exports, reactDom, PocketBase) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -5975,7 +5975,6 @@
5975
5975
  const [collections, _] = react.useState(props.collections || []);
5976
5976
  const actions = {
5977
5977
  subscribe: async collectionName => {
5978
- // save local that collectionName should be subscribed
5979
5978
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
5980
5979
  switch (event.action) {
5981
5980
  case 'create':
@@ -5988,27 +5987,27 @@
5988
5987
  dispatch(deleteRecord$1(collectionName, event.record));
5989
5988
  break;
5990
5989
  }
5991
- }));
5990
+ }).catch(_error => {}));
5992
5991
  },
5993
5992
  unsubscribe: collectionName => {
5994
5993
  if (collectionName) {
5995
- client == null ? void 0 : client.realtime.unsubscribe(collectionName);
5994
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
5996
5995
  } else {
5997
- client == null ? void 0 : client.realtime.unsubscribe();
5996
+ client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
5998
5997
  }
5999
5998
  },
6000
5999
  fetch: async collectionName => {
6001
- const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200));
6000
+ const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200).catch(_error => {}));
6002
6001
  dispatch(setRecords(collectionName, records));
6003
6002
  },
6004
6003
  create: async (collectionName, record) => {
6005
- await (client == null ? void 0 : client.records.create(collectionName, record));
6004
+ await (client == null ? void 0 : client.records.create(collectionName, record).catch(_error => {}));
6006
6005
  },
6007
6006
  update: async (collectionName, recordId, record) => {
6008
- await (client == null ? void 0 : client.records.update(collectionName, recordId, record));
6007
+ await (client == null ? void 0 : client.records.update(collectionName, recordId, record).catch(_error => {}));
6009
6008
  },
6010
6009
  delete: async (collectionName, recordId) => {
6011
- await (client == null ? void 0 : client.records.delete(collectionName, recordId));
6010
+ await (client == null ? void 0 : client.records.delete(collectionName, recordId).catch(_error => {}));
6012
6011
  }
6013
6012
  };
6014
6013
  react.useEffect(() => {
@@ -6168,7 +6167,7 @@
6168
6167
  const actions = {
6169
6168
  subscribe: async () => await (context == null ? void 0 : context.subscribe(collectionName)),
6170
6169
  unsubscribe: () => context == null ? void 0 : context.unsubscribe(collectionName),
6171
- refetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
6170
+ fetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
6172
6171
  create: async record => await (context == null ? void 0 : context.create(collectionName, record)),
6173
6172
  update: async (id, record) => await (context == null ? void 0 : context.update(collectionName, id, record)),
6174
6173
  delete: async id => await (context == null ? void 0 : context.delete(collectionName, id))
@@ -1,4 +1,4 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react-dom"),require("pocketbase")):"function"==typeof define&&define.amd?define(["exports","react-dom","pocketbase"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).PocketbaseReact={},e.reactDom,e.Pocketbase)}(this,(function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(r),i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react-dom"),require("@tobicrain/pocketbase")):"function"==typeof define&&define.amd?define(["exports","react-dom","@tobicrain/pocketbase"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).PocketbaseReact={},e.reactDom,e.PocketBase)}(this,(function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(r),i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}
2
2
  /**
3
3
  * @license React
4
4
  * react.production.min.js
@@ -25,4 +25,4 @@
25
25
  * This source code is licensed under the MIT license found in the
26
26
  * LICENSE file in the root directory of this source tree.
27
27
  */
28
- var Xr,Gr=Symbol.for("react.element"),Yr=Symbol.for("react.portal"),Qr=Symbol.for("react.fragment"),Zr=Symbol.for("react.strict_mode"),en=Symbol.for("react.profiler"),tn=Symbol.for("react.provider"),rn=Symbol.for("react.context"),nn=Symbol.for("react.server_context"),on=Symbol.for("react.forward_ref"),un=Symbol.for("react.suspense"),cn=Symbol.for("react.suspense_list"),an=Symbol.for("react.memo"),fn=Symbol.for("react.lazy"),sn=Symbol.for("react.offscreen");function ln(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Gr:switch(e=e.type){case Qr:case en:case Zr:case un:case cn:return e;default:switch(e=e&&e.$$typeof){case nn:case rn:case on:case fn:case an:case tn:return e;default:return t}}case Yr:return t}}}Xr=Symbol.for("react.module.reference");var pn={ContextConsumer:rn,ContextProvider:tn,Element:Gr,ForwardRef:on,Fragment:Qr,Lazy:fn,Memo:an,Portal:Yr,Profiler:en,StrictMode:Zr,Suspense:un,SuspenseList:cn,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return ln(e)===rn},isContextProvider:function(e){return ln(e)===tn},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Gr},isForwardRef:function(e){return ln(e)===on},isFragment:function(e){return ln(e)===Qr},isLazy:function(e){return ln(e)===fn},isMemo:function(e){return ln(e)===an},isPortal:function(e){return ln(e)===Yr},isProfiler:function(e){return ln(e)===en},isStrictMode:function(e){return ln(e)===Zr},isSuspense:function(e){return ln(e)===un},isSuspenseList:function(e){return ln(e)===cn},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Qr||e===en||e===Zr||e===un||e===cn||e===sn||"object"==typeof e&&null!==e&&(e.$$typeof===fn||e.$$typeof===an||e.$$typeof===tn||e.$$typeof===rn||e.$$typeof===on||e.$$typeof===Xr||void 0!==e.getModuleId)},typeOf:ln};u((function(e){e.exports=pn}));const yn={notify(){},get:()=>[]};function dn(e,t){let r,n=yn;function o(){u.onStateChange&&u.onStateChange()}function i(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=mr();let t=null,r=null;return{clear(){t=null,r=null},notify(){e((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){let e=[],r=t;for(;r;)e.push(r),r=r.next;return e},subscribe(e){let n=!0,o=r={callback:e,next:null,prev:r};return o.prev?o.prev.next=o:t=o,function(){n&&null!==t&&(n=!1,o.next?o.next.prev=o.prev:r=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}const u={addNestedSub:function(e){return i(),n.subscribe(e)},notifyNestedSubs:function(){n.notify()},handleChangeWrapper:o,isSubscribed:function(){return!!r},trySubscribe:i,tryUnsubscribe:function(){r&&(r(),r=void 0,n.clear(),n=yn)},getListeners:()=>n};return u}const bn=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?z.useLayoutEffect:z.useEffect;function vn({store:e,context:t,children:r,serverState:n}){const o=z.useMemo((()=>{const t=dn(e);return{store:e,subscription:t,getServerState:n?()=>n:void 0}}),[e,n]),i=z.useMemo((()=>e.getState()),[e]);bn((()=>{const{subscription:t}=o;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),i!==e.getState()&&t.notifyNestedSubs(),()=>{t.tryUnsubscribe(),t.onStateChange=void 0}}),[o,i]);return z.createElement((t||gr).Provider,{value:o},r)}Sr=vr.useSyncExternalStoreWithSelector,hr=t.unstable_batchedUpdates;var hn=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype};const{hasOwnProperty:mn}=Object.prototype,{propertyIsEnumerable:gn}=Object,On=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Sn=i,wn={concatArrays:!1,ignoreUndefined:!1},Pn=e=>{const t=[];for(const r in e)mn.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)gn.call(e,n)&&t.push(n)}return t};function jn(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return Pn(e).forEach((r=>{On(t,r,jn(e[r]))})),t}(e):hn(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return Pn(e).forEach((r=>{On(t,r,jn(e[r]))})),t}(e):e}const En=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||On(e,r,r in e&&e[r]!==Object.getPrototypeOf(e)?_n(e[r],t[r],n):jn(t[r]))})),e);function _n(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let n=e.slice(0,0),o=0;return[e,t].forEach((t=>{const i=[];for(let r=0;t.length>r;r++)mn.call(t,r)&&(i.push(r+""),On(n,o++,t===e?t[r]:jn(t[r])));n=En(n,t,Pn(t).filter((e=>!i.includes(e))),r)})),n})(e,t,r):hn(t)&&hn(e)?En(e,t,Pn(t),r):jn(t)}const xn=function(...e){const t=_n(jn(wn),this!==Sn&&this||{},wn);let r={_:{}};for(const n of e)if(void 0!==n){if(!hn(n))throw new TypeError("`"+n+"` is not an Option Object");r=_n(r,{_:n},t)}return r._}.bind({concatArrays:!0,ignoreUndefined:!0});function kn(e,t){return new Promise(((r,n)=>{try{const n=e();null==t||t(null,n),r(n)}catch(e){null==t||t(e),n(e)}}))}function Rn(e,t,r){return Promise.all(e).then((e=>{var n;const o=null!==(n=null==r?void 0:r(e))&&void 0!==n?n:null;return null==t||t(null,o),Promise.resolve(o)}),(e=>(null==t||t(e),Promise.reject(e))))}const An={getItem:(e,t)=>kn((()=>window.localStorage.getItem(e)),t),setItem:(e,t,r)=>kn((()=>window.localStorage.setItem(e,t)),r),removeItem:(e,t)=>kn((()=>window.localStorage.removeItem(e)),t),mergeItem:(e,t,r)=>kn((()=>function(e,t){const r=window.localStorage.getItem(e);if(r){const n=JSON.parse(r),o=JSON.parse(t),i=JSON.stringify(xn(n,o));window.localStorage.setItem(e,i)}else window.localStorage.setItem(e,t)}(e,t)),r),clear:e=>kn((()=>window.localStorage.clear()),e),getAllKeys:e=>kn((()=>{const e=window.localStorage.length,t=[];for(let r=0;e>r;r+=1){const e=window.localStorage.key(r)||"";t.push(e)}return t}),e),flushGetRequests:()=>{},multiGet:(e,t)=>Rn(e.map((e=>An.getItem(e))),t,(t=>t.map(((t,r)=>[e[r],t])))),multiSet:(e,t)=>Rn(e.map((e=>An.setItem(e[0],e[1]))),t),multiRemove:(e,t)=>Rn(e.map((e=>An.removeItem(e))),t),multiMerge:(e,t)=>Rn(e.map((e=>An.mergeItem(e[0],e[1]))),t)},Cn={key:"root",storage:{getItem:async(e,...t)=>"undefined"!=typeof document?localStorage.getItem(e):"undefined"!=typeof navigator&&"ReactNative"===navigator.product?await An.getItem(e):void 0,setItem:async(e,t,...r)=>"undefined"!=typeof document?localStorage.setItem(e,t):"undefined"!=typeof navigator&&"ReactNative"===navigator.product?await An.setItem(e,t):void 0,removeItem:async(e,...t)=>"undefined"!=typeof document?localStorage.removeItem(e):"undefined"!=typeof navigator&&"ReactNative"===navigator.product?await An.removeItem(e):void 0}},Dn=ae({reducer:function(e,t){var r=void 0!==e.version?e.version:-1,n=void 0===e.stateReconciler?Ft:e.stateReconciler,o=e.getStoredState||zt,i=void 0!==e.timeout?e.timeout:5e3,u=null,c=!1,a=!0,f=function(e){return e._persist.rehydrated&&u&&!a&&u.update(e),e};return function(s,l){var p=s||{},y=p._persist,d=Jt(p,["_persist"]);if(l.type===Dt){var b=!1,v=function(t,r){b||(l.rehydrate(e.key,t,r),b=!0)};if(i&&setTimeout((function(){!b&&v(void 0,Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))}),i),a=!1,u||(u=Lt(e)),y)return Kt({},t(d,l),{_persist:y});if("function"!=typeof l.rehydrate||"function"!=typeof l.register)throw Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return l.register(e.key),o(e).then((function(t){var n=e.migrate||function(e,t){return Promise.resolve(e)};n(t,r).then((function(e){v(e)}),(function(e){v(void 0,e)}))}),(function(e){v(void 0,e)})),Kt({},t(d,l),{_persist:{version:r,rehydrated:!1}})}if(l.type===$t)return c=!0,l.result(function(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:kt).concat(e.key);return t.removeItem(r,Wt)}(e)),Kt({},t(d,l),{_persist:y});if(l.type===Rt)return l.result(u&&u.flush()),Kt({},t(d,l),{_persist:y});if(l.type===Ct)a=!0;else if(l.type===At){if(c)return Kt({},d,{_persist:Kt({},y,{rehydrated:!0})});if(l.key===e.key){var h=t(d,l),m=l.payload,g=Kt({},!1!==n&&void 0!==m?n(m,s,h,e):h,{_persist:Kt({},y,{rehydrated:!0})});return f(g)}}if(!y)return t(s,l);var O=t(d,l);return O===d?s:f(Kt({},O,{_persist:y}))}}(Cn,he)}),$n=function(e){var t,r=xt(),n=e||{},o=n.reducer,i=void 0===o?void 0:o,u=n.middleware,c=void 0===u?r():u,a=n.devTools,f=void 0===a||a,s=n.preloadedState,l=void 0===s?void 0:s,p=n.enhancers,y=void 0===p?void 0:p;if("function"==typeof i)t=i;else{if(!function(e){if("object"!=typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var r=t;null!==Object.getPrototypeOf(r);)r=Object.getPrototypeOf(r);return t===r}(i))throw Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=ae(i)}var d=c;"function"==typeof d&&(d=d(r));var b=se.apply(void 0,d),v=fe;f&&(v=Et(function(e,t){for(var r in t||(t={}))wt.call(t,r)&&jt(e,r,t[r]);if(St)for(var n=0,o=St(t);o.length>n;n++)Pt.call(t,r=o[n])&&jt(e,r,t[r]);return e}({trace:!1},"object"==typeof f&&f)));var h=[b];return Array.isArray(y)?h=gt([b],y):"function"==typeof y&&(h=y(h)),ce(t,l,v.apply(void 0,h))}({reducer:Dn,middleware:[ht]}),In=$n.dispatch,Tn=jr,Nn=function(e,t,r){var n=r||!1,o=ce(Zt,Qt,t&&t.enhancer?t.enhancer:void 0),i=function(e){o.dispatch({type:It,key:e})},u=function(t,r,i){var u={type:At,payload:r,err:i,key:t};e.dispatch(u),o.dispatch(u),n&&c.getState().bootstrapped&&(n(),n=!1)},c=Gt({},o,{purge:function(){var t=[];return e.dispatch({type:$t,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:Rt,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:Ct})},persist:function(){e.dispatch({type:Dt,register:i,rehydrate:u})}});return t&&t.manualPersist||c.persist(),c}($n),Mn=()=>z.useContext(Un),Fn=z.createContext(null),Ln=e=>{const t=Mn(),r=In,[n,o]=z.useState(e.collections||[]),i={subscribe:async e=>{await(null==t?void 0:t.realtime.subscribe(e,(t=>{switch(t.action){case"create":r(X(e,t.record));break;case"update":r(Y(e,t.record));break;case"delete":r(G(e,t.record))}})))},unsubscribe:e=>{e?null==t||t.realtime.unsubscribe(e):null==t||t.realtime.unsubscribe()},fetch:async e=>{const n=await(null==t?void 0:t.records.getFullList(e,200));r(H(e,n))},create:async(e,r)=>{await(null==t?void 0:t.records.create(e,r))},update:async(e,r,n)=>{await(null==t?void 0:t.records.update(e,r,n))},delete:async(e,r)=>{await(null==t?void 0:t.records.delete(e,r))}};return z.useEffect((()=>(n&&n.forEach((e=>{i.fetch(e),i.subscribe(e)})),()=>i.unsubscribe())),[n]),z.createElement(Fn.Provider,{value:i},e.children)},Un=z.createContext(null),zn=e=>z.createElement(Un.Provider,{value:e.client},e.children);function Vn(e){return Vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vn(e)}function Wn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qn(e,t){for(var r=0;t.length>r;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Kn(e,t){return!t||"object"!==Vn(t)&&"function"!=typeof t?Jn(e):t}function Bn(e){return Bn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Bn(e)}function Jn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Hn(e,t){return Hn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Hn(e,t)}function Xn(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Gn=function(e){function t(){var e,r;Wn(this,t);for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return Xn(Jn(r=Kn(this,(e=Bn(t)).call.apply(e,[this].concat(o)))),"state",{bootstrapped:!1}),Xn(Jn(r),"_unsubscribe",void 0),Xn(Jn(r),"handlePersistorState",(function(){r.props.persistor.getState().bootstrapped&&(r.props.onBeforeLift?Promise.resolve(r.props.onBeforeLift()).finally((function(){return r.setState({bootstrapped:!0})})):r.setState({bootstrapped:!0}),r._unsubscribe&&r._unsubscribe())})),r}var r,n,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Hn(e,t)}(t,e),r=t,(n=[{key:"componentDidMount",value:function(){this._unsubscribe=this.props.persistor.subscribe(this.handlePersistorState),this.handlePersistorState()}},{key:"componentWillUnmount",value:function(){this._unsubscribe&&this._unsubscribe()}},{key:"render",value:function(){return"function"==typeof this.props.children?this.props.children(this.state.bootstrapped):this.state.bootstrapped?this.props.children:this.props.loading}}])&&qn(r.prototype,n),o&&qn(r,o),t}(z.PureComponent);Xn(Gn,"defaultProps",{children:null,loading:null});const Yn=z.createContext(null);e.ADD_RECORD=W,e.ADD_RECORDS=q,e.ClientContext=Un,e.ClientProvider=zn,e.ContentContext=Fn,e.ContentProvider=Ln,e.DELETE_RECORD=B,e.DELETE_RECORDS=J,e.Pocketbase=e=>{const[t,r]=z.useState(null);return z.useEffect((()=>{const t=new o.default(e.serverURL);t.admins.authViaEmail(e.credentials.username,e.credentials.password).then((()=>{r(t)}))}),[e.serverURL]),t?z.createElement(zn,{client:t},z.createElement(vn,{store:$n},z.createElement(Gn,{persistor:Nn},z.createElement(Ln,{collections:e.initialCollections},e.children)))):null},e.PocketbaseContext=Yn,e.SET_RECORDS=V,e.UPDATE_RECORD=K,e.appReducer=he,e.persistConfig=Cn,e.persistor=Nn,e.recordsAction=Q,e.store=$n,e.useAppContent=function(e,t=!1){var r;const n=null!=(r=Tn((t=>t.reducer.records[e])))?r:[],o=z.useContext(Fn);return z.useEffect((()=>{t&&(null==o||o.fetch(e))}),[e,t]),{records:n,actions:{subscribe:async()=>await(null==o?void 0:o.subscribe(e)),unsubscribe:()=>null==o?void 0:o.unsubscribe(e),refetch:async()=>await(null==o?void 0:o.fetch(e)),create:async t=>await(null==o?void 0:o.create(e,t)),update:async(t,r)=>await(null==o?void 0:o.update(e,t,r)),delete:async t=>await(null==o?void 0:o.delete(e,t))}}},e.useAppDispatch=In,e.useAppSelector=Tn,e.useClientContext=Mn,Object.defineProperty(e,"__esModule",{value:!0})}));
28
+ var Xr,Gr=Symbol.for("react.element"),Yr=Symbol.for("react.portal"),Qr=Symbol.for("react.fragment"),Zr=Symbol.for("react.strict_mode"),en=Symbol.for("react.profiler"),tn=Symbol.for("react.provider"),rn=Symbol.for("react.context"),nn=Symbol.for("react.server_context"),on=Symbol.for("react.forward_ref"),un=Symbol.for("react.suspense"),cn=Symbol.for("react.suspense_list"),an=Symbol.for("react.memo"),fn=Symbol.for("react.lazy"),sn=Symbol.for("react.offscreen");function ln(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Gr:switch(e=e.type){case Qr:case en:case Zr:case un:case cn:return e;default:switch(e=e&&e.$$typeof){case nn:case rn:case on:case fn:case an:case tn:return e;default:return t}}case Yr:return t}}}Xr=Symbol.for("react.module.reference");var pn={ContextConsumer:rn,ContextProvider:tn,Element:Gr,ForwardRef:on,Fragment:Qr,Lazy:fn,Memo:an,Portal:Yr,Profiler:en,StrictMode:Zr,Suspense:un,SuspenseList:cn,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return ln(e)===rn},isContextProvider:function(e){return ln(e)===tn},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Gr},isForwardRef:function(e){return ln(e)===on},isFragment:function(e){return ln(e)===Qr},isLazy:function(e){return ln(e)===fn},isMemo:function(e){return ln(e)===an},isPortal:function(e){return ln(e)===Yr},isProfiler:function(e){return ln(e)===en},isStrictMode:function(e){return ln(e)===Zr},isSuspense:function(e){return ln(e)===un},isSuspenseList:function(e){return ln(e)===cn},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Qr||e===en||e===Zr||e===un||e===cn||e===sn||"object"==typeof e&&null!==e&&(e.$$typeof===fn||e.$$typeof===an||e.$$typeof===tn||e.$$typeof===rn||e.$$typeof===on||e.$$typeof===Xr||void 0!==e.getModuleId)},typeOf:ln};u((function(e){e.exports=pn}));const yn={notify(){},get:()=>[]};function dn(e,t){let r,n=yn;function o(){u.onStateChange&&u.onStateChange()}function i(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=mr();let t=null,r=null;return{clear(){t=null,r=null},notify(){e((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){let e=[],r=t;for(;r;)e.push(r),r=r.next;return e},subscribe(e){let n=!0,o=r={callback:e,next:null,prev:r};return o.prev?o.prev.next=o:t=o,function(){n&&null!==t&&(n=!1,o.next?o.next.prev=o.prev:r=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}const u={addNestedSub:function(e){return i(),n.subscribe(e)},notifyNestedSubs:function(){n.notify()},handleChangeWrapper:o,isSubscribed:function(){return!!r},trySubscribe:i,tryUnsubscribe:function(){r&&(r(),r=void 0,n.clear(),n=yn)},getListeners:()=>n};return u}const bn=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?z.useLayoutEffect:z.useEffect;function vn({store:e,context:t,children:r,serverState:n}){const o=z.useMemo((()=>{const t=dn(e);return{store:e,subscription:t,getServerState:n?()=>n:void 0}}),[e,n]),i=z.useMemo((()=>e.getState()),[e]);bn((()=>{const{subscription:t}=o;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),i!==e.getState()&&t.notifyNestedSubs(),()=>{t.tryUnsubscribe(),t.onStateChange=void 0}}),[o,i]);return z.createElement((t||gr).Provider,{value:o},r)}Sr=vr.useSyncExternalStoreWithSelector,hr=t.unstable_batchedUpdates;var hn=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype};const{hasOwnProperty:mn}=Object.prototype,{propertyIsEnumerable:gn}=Object,On=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Sn=i,wn={concatArrays:!1,ignoreUndefined:!1},Pn=e=>{const t=[];for(const r in e)mn.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)gn.call(e,n)&&t.push(n)}return t};function jn(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return Pn(e).forEach((r=>{On(t,r,jn(e[r]))})),t}(e):hn(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return Pn(e).forEach((r=>{On(t,r,jn(e[r]))})),t}(e):e}const En=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||On(e,r,r in e&&e[r]!==Object.getPrototypeOf(e)?_n(e[r],t[r],n):jn(t[r]))})),e);function _n(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let n=e.slice(0,0),o=0;return[e,t].forEach((t=>{const i=[];for(let r=0;t.length>r;r++)mn.call(t,r)&&(i.push(r+""),On(n,o++,t===e?t[r]:jn(t[r])));n=En(n,t,Pn(t).filter((e=>!i.includes(e))),r)})),n})(e,t,r):hn(t)&&hn(e)?En(e,t,Pn(t),r):jn(t)}const xn=function(...e){const t=_n(jn(wn),this!==Sn&&this||{},wn);let r={_:{}};for(const n of e)if(void 0!==n){if(!hn(n))throw new TypeError("`"+n+"` is not an Option Object");r=_n(r,{_:n},t)}return r._}.bind({concatArrays:!0,ignoreUndefined:!0});function kn(e,t){return new Promise(((r,n)=>{try{const n=e();null==t||t(null,n),r(n)}catch(e){null==t||t(e),n(e)}}))}function Rn(e,t,r){return Promise.all(e).then((e=>{var n;const o=null!==(n=null==r?void 0:r(e))&&void 0!==n?n:null;return null==t||t(null,o),Promise.resolve(o)}),(e=>(null==t||t(e),Promise.reject(e))))}const An={getItem:(e,t)=>kn((()=>window.localStorage.getItem(e)),t),setItem:(e,t,r)=>kn((()=>window.localStorage.setItem(e,t)),r),removeItem:(e,t)=>kn((()=>window.localStorage.removeItem(e)),t),mergeItem:(e,t,r)=>kn((()=>function(e,t){const r=window.localStorage.getItem(e);if(r){const n=JSON.parse(r),o=JSON.parse(t),i=JSON.stringify(xn(n,o));window.localStorage.setItem(e,i)}else window.localStorage.setItem(e,t)}(e,t)),r),clear:e=>kn((()=>window.localStorage.clear()),e),getAllKeys:e=>kn((()=>{const e=window.localStorage.length,t=[];for(let r=0;e>r;r+=1){const e=window.localStorage.key(r)||"";t.push(e)}return t}),e),flushGetRequests:()=>{},multiGet:(e,t)=>Rn(e.map((e=>An.getItem(e))),t,(t=>t.map(((t,r)=>[e[r],t])))),multiSet:(e,t)=>Rn(e.map((e=>An.setItem(e[0],e[1]))),t),multiRemove:(e,t)=>Rn(e.map((e=>An.removeItem(e))),t),multiMerge:(e,t)=>Rn(e.map((e=>An.mergeItem(e[0],e[1]))),t)},Cn={key:"root",storage:{getItem:async(e,...t)=>"undefined"!=typeof document?localStorage.getItem(e):"undefined"!=typeof navigator&&"ReactNative"===navigator.product?await An.getItem(e):void 0,setItem:async(e,t,...r)=>"undefined"!=typeof document?localStorage.setItem(e,t):"undefined"!=typeof navigator&&"ReactNative"===navigator.product?await An.setItem(e,t):void 0,removeItem:async(e,...t)=>"undefined"!=typeof document?localStorage.removeItem(e):"undefined"!=typeof navigator&&"ReactNative"===navigator.product?await An.removeItem(e):void 0}},Dn=ae({reducer:function(e,t){var r=void 0!==e.version?e.version:-1,n=void 0===e.stateReconciler?Ft:e.stateReconciler,o=e.getStoredState||zt,i=void 0!==e.timeout?e.timeout:5e3,u=null,c=!1,a=!0,f=function(e){return e._persist.rehydrated&&u&&!a&&u.update(e),e};return function(s,l){var p=s||{},y=p._persist,d=Jt(p,["_persist"]);if(l.type===Dt){var b=!1,v=function(t,r){b||(l.rehydrate(e.key,t,r),b=!0)};if(i&&setTimeout((function(){!b&&v(void 0,Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))}),i),a=!1,u||(u=Lt(e)),y)return Kt({},t(d,l),{_persist:y});if("function"!=typeof l.rehydrate||"function"!=typeof l.register)throw Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return l.register(e.key),o(e).then((function(t){var n=e.migrate||function(e,t){return Promise.resolve(e)};n(t,r).then((function(e){v(e)}),(function(e){v(void 0,e)}))}),(function(e){v(void 0,e)})),Kt({},t(d,l),{_persist:{version:r,rehydrated:!1}})}if(l.type===$t)return c=!0,l.result(function(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:kt).concat(e.key);return t.removeItem(r,Wt)}(e)),Kt({},t(d,l),{_persist:y});if(l.type===Rt)return l.result(u&&u.flush()),Kt({},t(d,l),{_persist:y});if(l.type===Ct)a=!0;else if(l.type===At){if(c)return Kt({},d,{_persist:Kt({},y,{rehydrated:!0})});if(l.key===e.key){var h=t(d,l),m=l.payload,g=Kt({},!1!==n&&void 0!==m?n(m,s,h,e):h,{_persist:Kt({},y,{rehydrated:!0})});return f(g)}}if(!y)return t(s,l);var O=t(d,l);return O===d?s:f(Kt({},O,{_persist:y}))}}(Cn,he)}),$n=function(e){var t,r=xt(),n=e||{},o=n.reducer,i=void 0===o?void 0:o,u=n.middleware,c=void 0===u?r():u,a=n.devTools,f=void 0===a||a,s=n.preloadedState,l=void 0===s?void 0:s,p=n.enhancers,y=void 0===p?void 0:p;if("function"==typeof i)t=i;else{if(!function(e){if("object"!=typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var r=t;null!==Object.getPrototypeOf(r);)r=Object.getPrototypeOf(r);return t===r}(i))throw Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=ae(i)}var d=c;"function"==typeof d&&(d=d(r));var b=se.apply(void 0,d),v=fe;f&&(v=Et(function(e,t){for(var r in t||(t={}))wt.call(t,r)&&jt(e,r,t[r]);if(St)for(var n=0,o=St(t);o.length>n;n++)Pt.call(t,r=o[n])&&jt(e,r,t[r]);return e}({trace:!1},"object"==typeof f&&f)));var h=[b];return Array.isArray(y)?h=gt([b],y):"function"==typeof y&&(h=y(h)),ce(t,l,v.apply(void 0,h))}({reducer:Dn,middleware:[ht]}),In=$n.dispatch,Tn=jr,Nn=function(e,t,r){var n=r||!1,o=ce(Zt,Qt,t&&t.enhancer?t.enhancer:void 0),i=function(e){o.dispatch({type:It,key:e})},u=function(t,r,i){var u={type:At,payload:r,err:i,key:t};e.dispatch(u),o.dispatch(u),n&&c.getState().bootstrapped&&(n(),n=!1)},c=Gt({},o,{purge:function(){var t=[];return e.dispatch({type:$t,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:Rt,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:Ct})},persist:function(){e.dispatch({type:Dt,register:i,rehydrate:u})}});return t&&t.manualPersist||c.persist(),c}($n),Mn=()=>z.useContext(Un),Fn=z.createContext(null),Ln=e=>{const t=Mn(),r=In,[n,o]=z.useState(e.collections||[]),i={subscribe:async e=>{await(null==t?void 0:t.realtime.subscribe(e,(t=>{switch(t.action){case"create":r(X(e,t.record));break;case"update":r(Y(e,t.record));break;case"delete":r(G(e,t.record))}})).catch((e=>{})))},unsubscribe:e=>{e?null==t||t.realtime.unsubscribe(e).catch((e=>{})):null==t||t.realtime.unsubscribe().catch((e=>{}))},fetch:async e=>{const n=await(null==t?void 0:t.records.getFullList(e,200).catch((e=>{})));r(H(e,n))},create:async(e,r)=>{await(null==t?void 0:t.records.create(e,r).catch((e=>{})))},update:async(e,r,n)=>{await(null==t?void 0:t.records.update(e,r,n).catch((e=>{})))},delete:async(e,r)=>{await(null==t?void 0:t.records.delete(e,r).catch((e=>{})))}};return z.useEffect((()=>(n&&n.forEach((e=>{i.fetch(e),i.subscribe(e)})),()=>i.unsubscribe())),[n]),z.createElement(Fn.Provider,{value:i},e.children)},Un=z.createContext(null),zn=e=>z.createElement(Un.Provider,{value:e.client},e.children);function Vn(e){return Vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vn(e)}function Wn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qn(e,t){for(var r=0;t.length>r;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Kn(e,t){return!t||"object"!==Vn(t)&&"function"!=typeof t?Jn(e):t}function Bn(e){return Bn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Bn(e)}function Jn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Hn(e,t){return Hn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Hn(e,t)}function Xn(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Gn=function(e){function t(){var e,r;Wn(this,t);for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return Xn(Jn(r=Kn(this,(e=Bn(t)).call.apply(e,[this].concat(o)))),"state",{bootstrapped:!1}),Xn(Jn(r),"_unsubscribe",void 0),Xn(Jn(r),"handlePersistorState",(function(){r.props.persistor.getState().bootstrapped&&(r.props.onBeforeLift?Promise.resolve(r.props.onBeforeLift()).finally((function(){return r.setState({bootstrapped:!0})})):r.setState({bootstrapped:!0}),r._unsubscribe&&r._unsubscribe())})),r}var r,n,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Hn(e,t)}(t,e),r=t,(n=[{key:"componentDidMount",value:function(){this._unsubscribe=this.props.persistor.subscribe(this.handlePersistorState),this.handlePersistorState()}},{key:"componentWillUnmount",value:function(){this._unsubscribe&&this._unsubscribe()}},{key:"render",value:function(){return"function"==typeof this.props.children?this.props.children(this.state.bootstrapped):this.state.bootstrapped?this.props.children:this.props.loading}}])&&qn(r.prototype,n),o&&qn(r,o),t}(z.PureComponent);Xn(Gn,"defaultProps",{children:null,loading:null});const Yn=z.createContext(null);e.ADD_RECORD=W,e.ADD_RECORDS=q,e.ClientContext=Un,e.ClientProvider=zn,e.ContentContext=Fn,e.ContentProvider=Ln,e.DELETE_RECORD=B,e.DELETE_RECORDS=J,e.Pocketbase=e=>{const[t,r]=z.useState(null);return z.useEffect((()=>{const t=new o.default(e.serverURL);t.admins.authViaEmail(e.credentials.username,e.credentials.password).then((()=>{r(t)}))}),[e.serverURL]),t?z.createElement(zn,{client:t},z.createElement(vn,{store:$n},z.createElement(Gn,{persistor:Nn},z.createElement(Ln,{collections:e.initialCollections},e.children)))):null},e.PocketbaseContext=Yn,e.SET_RECORDS=V,e.UPDATE_RECORD=K,e.appReducer=he,e.persistConfig=Cn,e.persistor=Nn,e.recordsAction=Q,e.store=$n,e.useAppContent=function(e,t=!1){var r;const n=null!=(r=Tn((t=>t.reducer.records[e])))?r:[],o=z.useContext(Fn);return z.useEffect((()=>{t&&(null==o||o.fetch(e))}),[e,t]),{records:n,actions:{subscribe:async()=>await(null==o?void 0:o.subscribe(e)),unsubscribe:()=>null==o?void 0:o.unsubscribe(e),fetch:async()=>await(null==o?void 0:o.fetch(e)),create:async t=>await(null==o?void 0:o.create(e,t)),update:async(t,r)=>await(null==o?void 0:o.update(e,t,r)),delete:async t=>await(null==o?void 0:o.delete(e,t))}}},e.useAppDispatch=In,e.useAppSelector=Tn,e.useClientContext=Mn,Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import PocketBase from 'pocketbase';
2
+ import PocketBase from '@tobicrain/pocketbase';
3
3
  export declare const PocketbaseContext: React.Context<PocketBase | null>;
4
4
  export declare type PocketbaseProviderProps = {
5
5
  children: React.ReactNode;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { createContext, useEffect } from 'react';
3
- import PocketBase from 'pocketbase';
3
+ import PocketBase from '@tobicrain/pocketbase';
4
4
  import { Provider } from 'react-redux';
5
5
  import { PersistGate } from 'redux-persist/integration/react';
6
6
  import * as store from '../store/store';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import PocketBase from 'pocketbase';
2
+ import PocketBase from '@tobicrain/pocketbase';
3
3
  export declare const ClientContext: React.Context<PocketBase | null>;
4
4
  export declare type ClientProviderProps = {
5
5
  children: React.ReactNode;
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
- export declare type SubscribeType = (collectionName: string) => Promise<void>;
3
- export declare type UnsubscribeType = (collectionName?: string) => void;
4
- export declare type FetchType = (collectionName: string) => Promise<void>;
5
- export declare type CreateType = (collectionName: string, record: {}) => Promise<void>;
6
- export declare type UpdateType = (collectionName: string, recordId: string, record: {}) => Promise<void>;
7
- export declare type DeleteType = (collectionName: string, recordId: string) => Promise<void>;
2
+ declare type SubscribeType = (collectionName: string) => Promise<void>;
3
+ declare type UnsubscribeType = (collectionName?: string) => void;
4
+ declare type FetchType = (collectionName: string) => Promise<void>;
5
+ declare type CreateType = (collectionName: string, record: {}) => Promise<void>;
6
+ declare type UpdateType = (collectionName: string, recordId: string, record: {}) => Promise<void>;
7
+ declare type DeleteType = (collectionName: string, recordId: string) => Promise<void>;
8
8
  interface ContentActions {
9
9
  subscribe: SubscribeType;
10
10
  unsubscribe: UnsubscribeType;
@@ -10,7 +10,6 @@ export const ContentProvider = props => {
10
10
  const [collections, _] = React.useState(props.collections || []);
11
11
  const actions = {
12
12
  subscribe: async collectionName => {
13
- // save local that collectionName should be subscribed
14
13
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
15
14
  switch (event.action) {
16
15
  case 'create':
@@ -25,27 +24,29 @@ export const ContentProvider = props => {
25
24
  default:
26
25
  break;
27
26
  }
28
- }));
27
+ }).catch(_error => {}));
29
28
  },
30
29
  unsubscribe: collectionName => {
31
30
  if (collectionName) {
32
- client == null ? void 0 : client.realtime.unsubscribe(collectionName);
31
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
32
+ ;
33
33
  } else {
34
- client == null ? void 0 : client.realtime.unsubscribe();
34
+ client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
35
+ ;
35
36
  }
36
37
  },
37
38
  fetch: async collectionName => {
38
- const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200));
39
+ const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200).catch(_error => {}));
39
40
  dispatch(recordsAction.setRecords(collectionName, records));
40
41
  },
41
42
  create: async (collectionName, record) => {
42
- await (client == null ? void 0 : client.records.create(collectionName, record));
43
+ await (client == null ? void 0 : client.records.create(collectionName, record).catch(_error => {}));
43
44
  },
44
45
  update: async (collectionName, recordId, record) => {
45
- await (client == null ? void 0 : client.records.update(collectionName, recordId, record));
46
+ await (client == null ? void 0 : client.records.update(collectionName, recordId, record).catch(_error => {}));
46
47
  },
47
48
  delete: async (collectionName, recordId) => {
48
- await (client == null ? void 0 : client.records.delete(collectionName, recordId));
49
+ await (client == null ? void 0 : client.records.delete(collectionName, recordId).catch(_error => {}));
49
50
  }
50
51
  };
51
52
  useEffect(() => {
@@ -1,12 +1,19 @@
1
1
  import { Record } from '../interfaces/Record';
2
+ export declare type SubscribeType = () => Promise<void | undefined>;
3
+ export declare type UnsubscribeType = () => void | undefined;
4
+ export declare type FetchType = () => Promise<void | undefined>;
5
+ export declare type CreateType = (record: {}) => Promise<void | undefined>;
6
+ export declare type UpdateType = (id: string, record: {}) => Promise<void | undefined>;
7
+ export declare type DeleteType = (id: string) => Promise<void | undefined>;
8
+ export interface Actions {
9
+ subscribe: SubscribeType;
10
+ unsubscribe: UnsubscribeType;
11
+ fetch: FetchType;
12
+ create: CreateType;
13
+ update: UpdateType;
14
+ delete: DeleteType;
15
+ }
2
16
  export declare function useAppContent<T extends Record>(collectionName: string, initialFetch?: boolean): {
3
17
  records: T[];
4
- actions: {
5
- subscribe: () => Promise<void | undefined>;
6
- unsubscribe: () => void | undefined;
7
- refetch: () => Promise<void | undefined>;
8
- create: (record: {}) => Promise<void | undefined>;
9
- update: (id: string, record: {}) => Promise<void | undefined>;
10
- delete: (id: string) => Promise<void | undefined>;
11
- };
18
+ actions: Actions;
12
19
  };
@@ -13,7 +13,7 @@ export function useAppContent(collectionName, initialFetch = false) {
13
13
  const actions = {
14
14
  subscribe: async () => await (context == null ? void 0 : context.subscribe(collectionName)),
15
15
  unsubscribe: () => context == null ? void 0 : context.unsubscribe(collectionName),
16
- refetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
16
+ fetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
17
17
  create: async record => await (context == null ? void 0 : context.create(collectionName, record)),
18
18
  update: async (id, record) => await (context == null ? void 0 : context.update(collectionName, id, record)),
19
19
  delete: async id => await (context == null ? void 0 : context.delete(collectionName, id))
@@ -1,2 +1,2 @@
1
- declare const useClientContext: () => import("pocketbase").default | null;
1
+ declare const useClientContext: () => import("@tobicrain/pocketbase").default | null;
2
2
  export { useClientContext };
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  exports.__esModule = true;
5
5
  exports.PocketbaseContext = exports.Pocketbase = void 0;
6
6
  var React = _interopRequireWildcard(require("react"));
7
- var _pocketbase = _interopRequireDefault(require("pocketbase"));
7
+ var _pocketbase = _interopRequireDefault(require("@tobicrain/pocketbase"));
8
8
  var _reactRedux = require("react-redux");
9
9
  var _react2 = require("redux-persist/integration/react");
10
10
  var store = _interopRequireWildcard(require("../store/store"));
@@ -16,7 +16,6 @@ const ContentProvider = props => {
16
16
  const [collections, _] = React.useState(props.collections || []);
17
17
  const actions = {
18
18
  subscribe: async collectionName => {
19
- // save local that collectionName should be subscribed
20
19
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
21
20
  switch (event.action) {
22
21
  case 'create':
@@ -31,27 +30,29 @@ const ContentProvider = props => {
31
30
  default:
32
31
  break;
33
32
  }
34
- }));
33
+ }).catch(_error => {}));
35
34
  },
36
35
  unsubscribe: collectionName => {
37
36
  if (collectionName) {
38
- client == null ? void 0 : client.realtime.unsubscribe(collectionName);
37
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
38
+ ;
39
39
  } else {
40
- client == null ? void 0 : client.realtime.unsubscribe();
40
+ client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
41
+ ;
41
42
  }
42
43
  },
43
44
  fetch: async collectionName => {
44
- const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200));
45
+ const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200).catch(_error => {}));
45
46
  dispatch(_actions.recordsAction.setRecords(collectionName, records));
46
47
  },
47
48
  create: async (collectionName, record) => {
48
- await (client == null ? void 0 : client.records.create(collectionName, record));
49
+ await (client == null ? void 0 : client.records.create(collectionName, record).catch(_error => {}));
49
50
  },
50
51
  update: async (collectionName, recordId, record) => {
51
- await (client == null ? void 0 : client.records.update(collectionName, recordId, record));
52
+ await (client == null ? void 0 : client.records.update(collectionName, recordId, record).catch(_error => {}));
52
53
  },
53
54
  delete: async (collectionName, recordId) => {
54
- await (client == null ? void 0 : client.records.delete(collectionName, recordId));
55
+ await (client == null ? void 0 : client.records.delete(collectionName, recordId).catch(_error => {}));
55
56
  }
56
57
  };
57
58
  (0, React.useEffect)(() => {
@@ -19,7 +19,7 @@ function useAppContent(collectionName, initialFetch = false) {
19
19
  const actions = {
20
20
  subscribe: async () => await (context == null ? void 0 : context.subscribe(collectionName)),
21
21
  unsubscribe: () => context == null ? void 0 : context.unsubscribe(collectionName),
22
- refetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
22
+ fetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
23
23
  create: async record => await (context == null ? void 0 : context.create(collectionName, record)),
24
24
  update: async (id, record) => await (context == null ? void 0 : context.update(collectionName, id, record)),
25
25
  delete: async id => await (context == null ? void 0 : context.delete(collectionName, id))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pocketbase-react",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Unofficial React SDK (React, React Native, Expo) for interacting with the PocketBase JS SDK",
5
5
  "keywords": [
6
6
  "pocketbase",
@@ -45,7 +45,7 @@
45
45
  "prepublishOnly": "npm run build"
46
46
  },
47
47
  "peerDependencies": {
48
- "pocketbase": "^0.7.3"
48
+ "@tobicrain/pocketbase": "^0.7.3"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@babel/cli": "^7.12.1",
@@ -68,7 +68,7 @@
68
68
  "dependencies": {
69
69
  "@react-native-async-storage/async-storage": "^1.17.10",
70
70
  "@reduxjs/toolkit": "^1.8.5",
71
- "pocketbase": "^0.7.3",
71
+ "@tobicrain/pocketbase": "^0.7.3",
72
72
  "react-redux": "^8.0.4",
73
73
  "redux": "^4.2.0",
74
74
  "redux-persist": "^6.0.0"
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { createContext, useEffect } from 'react';
3
- import PocketBase from 'pocketbase';
3
+ import PocketBase from '@tobicrain/pocketbase';
4
4
  import { Provider } from 'react-redux';
5
5
  import { PersistGate } from 'redux-persist/integration/react';
6
6
  import * as store from '../store/store';
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { createContext } from 'react';
3
- import PocketBase from 'pocketbase';
3
+ import PocketBase from '@tobicrain/pocketbase';
4
4
 
5
5
  export const ClientContext = createContext<PocketBase | null>(null);
6
6
 
@@ -5,12 +5,12 @@ import { useClientContext } from '../hooks/useClientContext';
5
5
  import { Record } from '../interfaces/Record';
6
6
  import { recordsAction } from '../store/actions';
7
7
 
8
- export type SubscribeType = (collectionName: string) => Promise<void>;
9
- export type UnsubscribeType = (collectionName?: string) => void;
10
- export type FetchType = (collectionName: string) => Promise<void>;
11
- export type CreateType = (collectionName: string, record: {}) => Promise<void>;
12
- export type UpdateType = (collectionName: string, recordId: string, record: {}) => Promise<void>;
13
- export type DeleteType = (collectionName: string, recordId: string) => Promise<void>;
8
+ type SubscribeType = (collectionName: string) => Promise<void>;
9
+ type UnsubscribeType = (collectionName?: string) => void;
10
+ type FetchType = (collectionName: string) => Promise<void>;
11
+ type CreateType = (collectionName: string, record: {}) => Promise<void>;
12
+ type UpdateType = (collectionName: string, recordId: string, record: {}) => Promise<void>;
13
+ type DeleteType = (collectionName: string, recordId: string) => Promise<void>;
14
14
 
15
15
  interface ContentActions {
16
16
  subscribe: SubscribeType;
@@ -40,7 +40,6 @@ export const ContentProvider = (props: ContentProviderProps) => {
40
40
 
41
41
  const actions: ContentActions = {
42
42
  subscribe: async (collectionName: string) => {
43
- // save local that collectionName should be subscribed
44
43
  await client?.realtime.subscribe(collectionName, (event: MessageData) => {
45
44
  switch (event.action) {
46
45
  case 'create':
@@ -55,27 +54,27 @@ export const ContentProvider = (props: ContentProviderProps) => {
55
54
  default:
56
55
  break;
57
56
  }
58
- });
57
+ }).catch((_error) => {});
59
58
  },
60
59
  unsubscribe: (collectionName?: string) => {
61
60
  if (collectionName) {
62
- client?.realtime.unsubscribe(collectionName);
61
+ client?.realtime.unsubscribe(collectionName).catch((_error) => {});;
63
62
  } else {
64
- client?.realtime.unsubscribe();
63
+ client?.realtime.unsubscribe().catch((_error) => {});;
65
64
  }
66
65
  },
67
66
  fetch: async (collectionName: string) => {
68
- const records = await client?.records.getFullList(collectionName, 200);
67
+ const records = await client?.records.getFullList(collectionName, 200).catch((_error) => {});
69
68
  dispatch(recordsAction.setRecords(collectionName, records as Record[]));
70
69
  },
71
70
  create: async (collectionName: string, record: {}) => {
72
- await client?.records.create(collectionName, record);
71
+ await client?.records.create(collectionName, record).catch((_error) => {});
73
72
  },
74
73
  update: async (collectionName: string, recordId: string, record: {}) => {
75
- await client?.records.update(collectionName, recordId, record);
74
+ await client?.records.update(collectionName, recordId, record).catch((_error) => {});
76
75
  },
77
76
  delete: async (collectionName: string, recordId: string) => {
78
- await client?.records.delete(collectionName, recordId);
77
+ await client?.records.delete(collectionName, recordId).catch((_error) => {});
79
78
  },
80
79
  };
81
80
 
@@ -3,10 +3,26 @@ import * as store from '../store';
3
3
  import { ContentContext } from '../context';
4
4
  import { Record } from '../interfaces/Record';
5
5
 
6
+ export type SubscribeType = () => Promise<void | undefined>
7
+ export type UnsubscribeType = () => void | undefined;
8
+ export type FetchType = () => Promise<void | undefined>
9
+ export type CreateType = (record: {}) => Promise<void | undefined>
10
+ export type UpdateType = (id: string, record: {}) => Promise<void | undefined>
11
+ export type DeleteType = (id: string) => Promise<void | undefined>
12
+
13
+ export interface Actions {
14
+ subscribe: SubscribeType;
15
+ unsubscribe: UnsubscribeType;
16
+ fetch: FetchType;
17
+ create: CreateType;
18
+ update: UpdateType;
19
+ delete: DeleteType;
20
+ }
21
+
6
22
  export function useAppContent<T extends Record>(
7
23
  collectionName: string,
8
24
  initialFetch: boolean = false
9
- ) {
25
+ ): {records: T[], actions: Actions} {
10
26
  const records = (store.useAppSelector((state) => state.reducer.records[collectionName]) ?? []) as T[];
11
27
  const context = useContext(ContentContext);
12
28
 
@@ -16,10 +32,10 @@ export function useAppContent<T extends Record>(
16
32
  }
17
33
  }, [collectionName, initialFetch]);
18
34
 
19
- const actions = {
35
+ const actions: Actions = {
20
36
  subscribe: async () => await context?.subscribe(collectionName),
21
37
  unsubscribe: () => context?.unsubscribe(collectionName),
22
- refetch: async () => await context?.fetch(collectionName),
38
+ fetch: async () => await context?.fetch(collectionName),
23
39
  create: async (record: {}) => await context?.create(collectionName, record),
24
40
  update: async (id: string, record: {}) => await context?.update(collectionName, id, record),
25
41
  delete: async (id: string) => await context?.delete(collectionName, id),