pocketbase-react 0.1.16 → 0.1.18
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.
- package/dist/pocketbase-react.js +16 -7
- package/dist/pocketbase-react.min.js +1 -1
- package/es/context/auth.d.ts +1 -7
- package/es/context/auth.js +1 -6
- package/es/hooks/useAuth.d.ts +7 -1
- package/es/hooks/useAuth.js +17 -2
- package/lib/context/auth.js +1 -6
- package/lib/hooks/useAuth.js +16 -1
- package/package.json +1 -1
- package/src/context/auth.tsx +2 -16
- package/src/hooks/useAuth.ts +27 -3
package/dist/pocketbase-react.js
CHANGED
|
@@ -6109,7 +6109,6 @@
|
|
|
6109
6109
|
|
|
6110
6110
|
const AuthContext = react.createContext({});
|
|
6111
6111
|
const AuthProvider = props => {
|
|
6112
|
-
var _client$authStore$mod;
|
|
6113
6112
|
const client = useClientContext();
|
|
6114
6113
|
const [authProviders, setAuthProviders] = react.useState();
|
|
6115
6114
|
const actions = {
|
|
@@ -6168,11 +6167,7 @@
|
|
|
6168
6167
|
})();
|
|
6169
6168
|
}, [props.webRedirectUrl, props.mobileRedirectUrl]);
|
|
6170
6169
|
return /*#__PURE__*/react.createElement(AuthContext.Provider, {
|
|
6171
|
-
value:
|
|
6172
|
-
actions: actions,
|
|
6173
|
-
isSignedIn: (client == null ? void 0 : client.authStore.isValid) || false,
|
|
6174
|
-
user: (_client$authStore$mod = client == null ? void 0 : client.authStore.model) != null ? _client$authStore$mod : null
|
|
6175
|
-
}
|
|
6170
|
+
value: actions
|
|
6176
6171
|
}, props.children);
|
|
6177
6172
|
};
|
|
6178
6173
|
|
|
@@ -6328,7 +6323,21 @@
|
|
|
6328
6323
|
}
|
|
6329
6324
|
|
|
6330
6325
|
function useAuth() {
|
|
6331
|
-
|
|
6326
|
+
const client = useClientContext();
|
|
6327
|
+
const actions = react.useContext(AuthContext);
|
|
6328
|
+
const [isSignedIn, setIsSignedIn] = react.useState(false);
|
|
6329
|
+
const [user, setUser] = react.useState(null);
|
|
6330
|
+
react.useEffect(() => {
|
|
6331
|
+
client == null ? void 0 : client.authStore.onChange(() => {
|
|
6332
|
+
setIsSignedIn((client == null ? void 0 : client.authStore.token) !== '');
|
|
6333
|
+
setUser(client == null ? void 0 : client.authStore.model);
|
|
6334
|
+
});
|
|
6335
|
+
}, []);
|
|
6336
|
+
return {
|
|
6337
|
+
actions: actions,
|
|
6338
|
+
isSignedIn: isSignedIn,
|
|
6339
|
+
user: user
|
|
6340
|
+
};
|
|
6332
6341
|
}
|
|
6333
6342
|
|
|
6334
6343
|
exports.ADD_RECORD = ADD_RECORD;
|
|
@@ -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 on,un=Symbol.for("react.element"),cn=Symbol.for("react.portal"),an=Symbol.for("react.fragment"),sn=Symbol.for("react.strict_mode"),fn=Symbol.for("react.profiler"),ln=Symbol.for("react.provider"),pn=Symbol.for("react.context"),yn=Symbol.for("react.server_context"),dn=Symbol.for("react.forward_ref"),bn=Symbol.for("react.suspense"),vn=Symbol.for("react.suspense_list"),hn=Symbol.for("react.memo"),mn=Symbol.for("react.lazy"),gn=Symbol.for("react.offscreen");function On(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case un:switch(e=e.type){case an:case fn:case sn:case bn:case vn:return e;default:switch(e=e&&e.$$typeof){case yn:case pn:case dn:case mn:case hn:case ln:return e;default:return t}}case cn:return t}}}on=Symbol.for("react.module.reference");var Sn={ContextConsumer:pn,ContextProvider:ln,Element:un,ForwardRef:dn,Fragment:an,Lazy:mn,Memo:hn,Portal:cn,Profiler:fn,StrictMode:sn,Suspense:bn,SuspenseList:vn,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return On(e)===pn},isContextProvider:function(e){return On(e)===ln},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===un},isForwardRef:function(e){return On(e)===dn},isFragment:function(e){return On(e)===an},isLazy:function(e){return On(e)===mn},isMemo:function(e){return On(e)===hn},isPortal:function(e){return On(e)===cn},isProfiler:function(e){return On(e)===fn},isStrictMode:function(e){return On(e)===sn},isSuspense:function(e){return On(e)===bn},isSuspenseList:function(e){return On(e)===vn},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===an||e===fn||e===sn||e===bn||e===vn||e===gn||"object"==typeof e&&null!==e&&(e.$$typeof===mn||e.$$typeof===hn||e.$$typeof===ln||e.$$typeof===pn||e.$$typeof===dn||e.$$typeof===on||void 0!==e.getModuleId)},typeOf:On};u((function(e){e.exports=Sn}));const wn={notify(){},get:()=>[]};function Pn(e,t){let r,n=wn;function o(){u.onStateChange&&u.onStateChange()}function i(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=Rr();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=wn)},getListeners:()=>n};return u}const En=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?z.useLayoutEffect:z.useEffect;function jn({store:e,context:t,children:r,serverState:n}){const o=z.useMemo((()=>{const t=Pn(e);return{store:e,subscription:t,getServerState:n?()=>n:void 0}}),[e,n]),i=z.useMemo((()=>e.getState()),[e]);En((()=>{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||xr).Provider,{value:o},r)}Cr=jr.useSyncExternalStoreWithSelector,_r=t.unstable_batchedUpdates;var _n=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype};const{hasOwnProperty:Rn}=Object.prototype,{propertyIsEnumerable:xn}=Object,kn=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Cn=i,An={concatArrays:!1,ignoreUndefined:!1},Dn=e=>{const t=[];for(const r in e)Rn.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)xn.call(e,n)&&t.push(n)}return t};function In(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return Dn(e).forEach((r=>{kn(t,r,In(e[r]))})),t}(e):_n(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return Dn(e).forEach((r=>{kn(t,r,In(e[r]))})),t}(e):e}const $n=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||kn(e,r,r in e&&e[r]!==Object.getPrototypeOf(e)?Tn(e[r],t[r],n):In(t[r]))})),e);function Tn(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++)Rn.call(t,r)&&(i.push(r+""),kn(n,o++,t===e?t[r]:In(t[r])));n=$n(n,t,Dn(t).filter((e=>!i.includes(e))),r)})),n})(e,t,r):_n(t)&&_n(e)?$n(e,t,Dn(t),r):In(t)}const Un=function(...e){const t=Tn(In(An),this!==Cn&&this||{},An);let r={_:{}};for(const n of e)if(void 0!==n){if(!_n(n))throw new TypeError("`"+n+"` is not an Option Object");r=Tn(r,{_:n},t)}return r._}.bind({concatArrays:!0,ignoreUndefined:!0});function Nn(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 Mn(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 Ln={getItem:(e,t)=>Nn((()=>window.localStorage.getItem(e)),t),setItem:(e,t,r)=>Nn((()=>window.localStorage.setItem(e,t)),r),removeItem:(e,t)=>Nn((()=>window.localStorage.removeItem(e)),t),mergeItem:(e,t,r)=>Nn((()=>function(e,t){const r=window.localStorage.getItem(e);if(r){const n=JSON.parse(r),o=JSON.parse(t),i=JSON.stringify(Un(n,o));window.localStorage.setItem(e,i)}else window.localStorage.setItem(e,t)}(e,t)),r),clear:e=>Nn((()=>window.localStorage.clear()),e),getAllKeys:e=>Nn((()=>{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)=>Mn(e.map((e=>Ln.getItem(e))),t,(t=>t.map(((t,r)=>[e[r],t])))),multiSet:(e,t)=>Mn(e.map((e=>Ln.setItem(e[0],e[1]))),t),multiRemove:(e,t)=>Mn(e.map((e=>Ln.removeItem(e))),t),multiMerge:(e,t)=>Mn(e.map((e=>Ln.mergeItem(e[0],e[1]))),t)};class Fn{static async get(e){return"undefined"!=typeof document?localStorage.getItem(e):await Ln.getItem(e)}static async set(e,t){return"undefined"!=typeof document?localStorage.setItem(e,t):await Ln.setItem(e,t)}static async remove(e){return"undefined"!=typeof document?localStorage.removeItem(e):await Ln.removeItem(e)}}Fn.Constants={SUBSCRIBED:"subscribed"};const zn={key:"root",storage:{getItem:async(e,...t)=>await Fn.get(e),setItem:async(e,t,...r)=>await Fn.set(e,t),removeItem:async(e,...t)=>await Fn.remove(e)}},Vn=be({reducer:function(e,t){var r=void 0!==e.version?e.version:-1,n=void 0===e.stateReconciler?Jt:e.stateReconciler,o=e.getStoredState||Gt,i=void 0!==e.timeout?e.timeout:5e3,u=null,c=!1,a=!0,s=function(e){return e._persist.rehydrated&&u&&!a&&u.update(e),e};return function(f,l){var p=f||{},y=p._persist,d=rr(p,["_persist"]);if(l.type===zt){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=Ht(e)),y)return er({},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)})),er({},t(d,l),{_persist:{version:r,rehydrated:!1}})}if(l.type===Vt)return c=!0,l.result(function(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:Nt).concat(e.key);return t.removeItem(r,Qt)}(e)),er({},t(d,l),{_persist:y});if(l.type===Mt)return l.result(u&&u.flush()),er({},t(d,l),{_persist:y});if(l.type===Ft)a=!0;else if(l.type===Lt){if(c)return er({},d,{_persist:er({},y,{rehydrated:!0})});if(l.key===e.key){var h=t(d,l),m=l.payload,g=er({},!1!==n&&void 0!==m?n(m,f,h,e):h,{_persist:er({},y,{rehydrated:!0})});return s(g)}}if(!y)return t(f,l);var O=t(d,l);return O===d?f:s(er({},O,{_persist:y}))}}(zn,_e)}),Bn=function(e){var t,r=Ut(),n=e||{},o=n.reducer,i=void 0===o?void 0:o,u=n.middleware,c=void 0===u?r():u,a=n.devTools,s=void 0===a||a,f=n.preloadedState,l=void 0===f?void 0:f,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=be(i)}var d=c;"function"==typeof d&&(d=d(r));var b=he.apply(void 0,d),v=ve;s&&(v=$t(function(e,t){for(var r in t||(t={}))At.call(t,r)&&It(e,r,t[r]);if(Ct)for(var n=0,o=Ct(t);o.length>n;n++)Dt.call(t,r=o[n])&&It(e,r,t[r]);return e}({trace:!1},"object"==typeof s&&s)));var h=[b];return Array.isArray(y)?h=xt([b],y):"function"==typeof y&&(h=y(h)),de(t,l,v.apply(void 0,h))}({reducer:Vn,middleware:[_t]}),Wn=Bn.dispatch,qn=Ir,Kn=function(e,t,r){var n=r||!1,o=de(ar,cr,t&&t.enhancer?t.enhancer:void 0),i=function(e){o.dispatch({type:Bt,key:e})},u=function(t,r,i){var u={type:Lt,payload:r,err:i,key:t};e.dispatch(u),o.dispatch(u),n&&c.getState().bootstrapped&&(n(),n=!1)},c=ir({},o,{purge:function(){var t=[];return e.dispatch({type:Vt,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:Mt,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:Ft})},persist:function(){e.dispatch({type:zt,register:i,rehydrate:u})}});return t&&t.manualPersist||c.persist(),c}(Bn),Jn=()=>z.useContext(Gn),Hn=z.createContext({}),Xn=e=>{const t=Jn(),r=Wn,n={subscribe:async e=>{await(null==t?void 0:t.realtime.subscribe(e,(t=>{switch(t.action){case"create":r(Q(e,t.record));break;case"update":r(ee(e,t.record));break;case"delete":r(Z(e,t.record))}})).then((()=>{r(ne(e))})).catch((t=>{r(oe(e))})))},unsubscribe:async e=>{e?await(null==t?void 0:t.realtime.unsubscribe(e).then((()=>{r(oe(e))})).catch((e=>{}))):await(null==t?void 0:t.realtime.unsubscribe().then((()=>{r(re([]))})).catch((e=>{})))},fetch:async e=>{const n=await(null==t?void 0:t.records.getFullList(e,200).catch((e=>{})));r(Y(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((()=>(e.collections&&e.collections.forEach((async e=>{await n.fetch(e),await n.subscribe(e)})),()=>{(async()=>{await n.unsubscribe()})()})),[e.collections]),z.createElement(Hn.Provider,{value:n},e.children)},Gn=z.createContext(null),Yn=e=>z.createElement(Gn.Provider,{value:e.client},e.children),Qn=z.createContext({}),Zn=e=>{var t;const r=Jn(),[n,o]=z.useState(),i={registerWithEmail:async(e,t)=>{await(null==r?void 0:r.users.create({email:e,password:t,passwordConfirm:t}))},signInWithEmail:async(e,t)=>{await(null==r?void 0:r.users.authViaEmail(e,t))},signInWithProvider:async t=>{const r=null==n?void 0:n.find((e=>e.name===t)),o=(null==r?void 0:r.authUrl)+typeof document!="undefined"?e.webRedirectUrl:e.mobileRedirectUrl;await e.openURL(o),await Fn.set("provider",JSON.stringify(n))},submitProviderResult:async t=>{const n=new URLSearchParams(t.split("?")[1]),o=n.get("code"),i=n.get("state"),u=await Fn.get("provider");if(u){const t=JSON.parse(u),n=null==t?void 0:t.find((e=>e.state===i));n&&o&&await(null==r?void 0:r.users.authViaOAuth2(n.name,o,n.codeVerifier,"undefined"!=typeof document?e.webRedirectUrl:e.mobileRedirectUrl))}},signOut:()=>{null==r||r.authStore.clear()},sendPasswordResetEmail:async e=>{await(null==r?void 0:r.users.requestPasswordReset(e))},sendEmailVerification:async e=>{await(null==r?void 0:r.users.requestVerification(e))},updateProfile:async(e,t)=>{await(null==r?void 0:r.records.update("profiles",e,t))},updateEmail:async e=>{await(null==r?void 0:r.users.requestEmailChange(e))},deleteUser:async e=>{await(null==r?void 0:r.users.delete(e))}};return z.useEffect((()=>{(async()=>{const e=await(null==r?void 0:r.users.listAuthMethods());o(null==e?void 0:e.authProviders)})()}),[e.webRedirectUrl,e.mobileRedirectUrl]),z.createElement(Qn.Provider,{value:{actions:i,isSignedIn:(null==r?void 0:r.authStore.isValid)||!1,user:null!=(t=null==r?void 0:r.authStore.model)?t:null}},e.children)};function eo(e){return eo="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},eo(e)}function to(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ro(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 no(e,t){return!t||"object"!==eo(t)&&"function"!=typeof t?io(e):t}function oo(e){return oo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},oo(e)}function io(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function uo(e,t){return uo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},uo(e,t)}function co(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ao=function(e){function t(){var e,r;to(this,t);for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return co(io(r=no(this,(e=oo(t)).call.apply(e,[this].concat(o)))),"state",{bootstrapped:!1}),co(io(r),"_unsubscribe",void 0),co(io(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&&uo(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}}])&&ro(r.prototype,n),o&&ro(r,o),t}(z.PureComponent);co(ao,"defaultProps",{children:null,loading:null});const so=z.createContext(null);e.ADD_RECORD=B,e.ADD_RECORDS=W,e.ADD_SUBSCRIPTION=X,e.AuthContext=Qn,e.AuthProvider=Zn,e.ClientContext=Gn,e.ClientProvider=Yn,e.ContentContext=Hn,e.ContentProvider=Xn,e.DELETE_RECORD=K,e.DELETE_RECORDS=J,e.DELETE_SUBSCRIPTION=G,e.Pocketbase=e=>{const t=new o.default(e.serverURL);return t?z.createElement(Yn,{client:t},z.createElement(jn,{store:Bn},z.createElement(ao,{persistor:Kn},z.createElement(Zn,{webRedirectUrl:e.webRedirectUrl,mobileRedirectUrl:e.mobileRedirectUrl,openURL:e.openURL},z.createElement(Xn,{collections:e.initialCollections},e.children))))):null},e.PocketbaseContext=so,e.SET_RECORDS=V,e.SET_SUBSCRIPTIONS=H,e.UPDATE_RECORD=q,e.appReducer=_e,e.persistConfig=zn,e.persistor=Kn,e.recordsAction=te,e.store=Bn,e.subscriptionsAction=ie,e.useAppContent=function(e,t=!1){var r;const n=null!=(r=qn((t=>t.reducer.records[e])))?r:[],o=qn((e=>e.reducer.subscriptions)).subscriptions,i=z.useContext(Hn);z.useEffect((()=>{t&&i.fetch(e)}),[e,t]);const[u,c]=z.useState(!1);return z.useEffect((()=>{c(o.includes(e))}),[o]),{records:n,actions:{subscribe:async()=>await i.subscribe(e),unsubscribe:async()=>await i.unsubscribe(e),fetch:async()=>await i.fetch(e),create:async t=>await i.create(e,t),update:async(t,r)=>await i.update(e,t,r),delete:async t=>await i.delete(e,t)},isSubscribed:u}},e.useAppDispatch=Wn,e.useAppSelector=qn,e.useAuth=function(){return z.useContext(Qn)},e.useClientContext=Jn,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
28
|
+
var on,un=Symbol.for("react.element"),cn=Symbol.for("react.portal"),an=Symbol.for("react.fragment"),sn=Symbol.for("react.strict_mode"),fn=Symbol.for("react.profiler"),ln=Symbol.for("react.provider"),pn=Symbol.for("react.context"),yn=Symbol.for("react.server_context"),dn=Symbol.for("react.forward_ref"),bn=Symbol.for("react.suspense"),vn=Symbol.for("react.suspense_list"),hn=Symbol.for("react.memo"),mn=Symbol.for("react.lazy"),gn=Symbol.for("react.offscreen");function On(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case un:switch(e=e.type){case an:case fn:case sn:case bn:case vn:return e;default:switch(e=e&&e.$$typeof){case yn:case pn:case dn:case mn:case hn:case ln:return e;default:return t}}case cn:return t}}}on=Symbol.for("react.module.reference");var Sn={ContextConsumer:pn,ContextProvider:ln,Element:un,ForwardRef:dn,Fragment:an,Lazy:mn,Memo:hn,Portal:cn,Profiler:fn,StrictMode:sn,Suspense:bn,SuspenseList:vn,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return On(e)===pn},isContextProvider:function(e){return On(e)===ln},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===un},isForwardRef:function(e){return On(e)===dn},isFragment:function(e){return On(e)===an},isLazy:function(e){return On(e)===mn},isMemo:function(e){return On(e)===hn},isPortal:function(e){return On(e)===cn},isProfiler:function(e){return On(e)===fn},isStrictMode:function(e){return On(e)===sn},isSuspense:function(e){return On(e)===bn},isSuspenseList:function(e){return On(e)===vn},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===an||e===fn||e===sn||e===bn||e===vn||e===gn||"object"==typeof e&&null!==e&&(e.$$typeof===mn||e.$$typeof===hn||e.$$typeof===ln||e.$$typeof===pn||e.$$typeof===dn||e.$$typeof===on||void 0!==e.getModuleId)},typeOf:On};u((function(e){e.exports=Sn}));const wn={notify(){},get:()=>[]};function Pn(e,t){let r,n=wn;function o(){u.onStateChange&&u.onStateChange()}function i(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=Rr();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=wn)},getListeners:()=>n};return u}const En=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?z.useLayoutEffect:z.useEffect;function jn({store:e,context:t,children:r,serverState:n}){const o=z.useMemo((()=>{const t=Pn(e);return{store:e,subscription:t,getServerState:n?()=>n:void 0}}),[e,n]),i=z.useMemo((()=>e.getState()),[e]);En((()=>{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||xr).Provider,{value:o},r)}Cr=jr.useSyncExternalStoreWithSelector,_r=t.unstable_batchedUpdates;var _n=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype};const{hasOwnProperty:Rn}=Object.prototype,{propertyIsEnumerable:xn}=Object,kn=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Cn=i,An={concatArrays:!1,ignoreUndefined:!1},Dn=e=>{const t=[];for(const r in e)Rn.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)xn.call(e,n)&&t.push(n)}return t};function In(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return Dn(e).forEach((r=>{kn(t,r,In(e[r]))})),t}(e):_n(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return Dn(e).forEach((r=>{kn(t,r,In(e[r]))})),t}(e):e}const $n=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||kn(e,r,r in e&&e[r]!==Object.getPrototypeOf(e)?Tn(e[r],t[r],n):In(t[r]))})),e);function Tn(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++)Rn.call(t,r)&&(i.push(r+""),kn(n,o++,t===e?t[r]:In(t[r])));n=$n(n,t,Dn(t).filter((e=>!i.includes(e))),r)})),n})(e,t,r):_n(t)&&_n(e)?$n(e,t,Dn(t),r):In(t)}const Un=function(...e){const t=Tn(In(An),this!==Cn&&this||{},An);let r={_:{}};for(const n of e)if(void 0!==n){if(!_n(n))throw new TypeError("`"+n+"` is not an Option Object");r=Tn(r,{_:n},t)}return r._}.bind({concatArrays:!0,ignoreUndefined:!0});function Nn(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 Mn(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 Ln={getItem:(e,t)=>Nn((()=>window.localStorage.getItem(e)),t),setItem:(e,t,r)=>Nn((()=>window.localStorage.setItem(e,t)),r),removeItem:(e,t)=>Nn((()=>window.localStorage.removeItem(e)),t),mergeItem:(e,t,r)=>Nn((()=>function(e,t){const r=window.localStorage.getItem(e);if(r){const n=JSON.parse(r),o=JSON.parse(t),i=JSON.stringify(Un(n,o));window.localStorage.setItem(e,i)}else window.localStorage.setItem(e,t)}(e,t)),r),clear:e=>Nn((()=>window.localStorage.clear()),e),getAllKeys:e=>Nn((()=>{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)=>Mn(e.map((e=>Ln.getItem(e))),t,(t=>t.map(((t,r)=>[e[r],t])))),multiSet:(e,t)=>Mn(e.map((e=>Ln.setItem(e[0],e[1]))),t),multiRemove:(e,t)=>Mn(e.map((e=>Ln.removeItem(e))),t),multiMerge:(e,t)=>Mn(e.map((e=>Ln.mergeItem(e[0],e[1]))),t)};class Fn{static async get(e){return"undefined"!=typeof document?localStorage.getItem(e):await Ln.getItem(e)}static async set(e,t){return"undefined"!=typeof document?localStorage.setItem(e,t):await Ln.setItem(e,t)}static async remove(e){return"undefined"!=typeof document?localStorage.removeItem(e):await Ln.removeItem(e)}}Fn.Constants={SUBSCRIBED:"subscribed"};const zn={key:"root",storage:{getItem:async(e,...t)=>await Fn.get(e),setItem:async(e,t,...r)=>await Fn.set(e,t),removeItem:async(e,...t)=>await Fn.remove(e)}},Vn=be({reducer:function(e,t){var r=void 0!==e.version?e.version:-1,n=void 0===e.stateReconciler?Jt:e.stateReconciler,o=e.getStoredState||Gt,i=void 0!==e.timeout?e.timeout:5e3,u=null,c=!1,a=!0,s=function(e){return e._persist.rehydrated&&u&&!a&&u.update(e),e};return function(f,l){var p=f||{},y=p._persist,d=rr(p,["_persist"]);if(l.type===zt){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=Ht(e)),y)return er({},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)})),er({},t(d,l),{_persist:{version:r,rehydrated:!1}})}if(l.type===Vt)return c=!0,l.result(function(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:Nt).concat(e.key);return t.removeItem(r,Qt)}(e)),er({},t(d,l),{_persist:y});if(l.type===Mt)return l.result(u&&u.flush()),er({},t(d,l),{_persist:y});if(l.type===Ft)a=!0;else if(l.type===Lt){if(c)return er({},d,{_persist:er({},y,{rehydrated:!0})});if(l.key===e.key){var h=t(d,l),m=l.payload,g=er({},!1!==n&&void 0!==m?n(m,f,h,e):h,{_persist:er({},y,{rehydrated:!0})});return s(g)}}if(!y)return t(f,l);var O=t(d,l);return O===d?f:s(er({},O,{_persist:y}))}}(zn,_e)}),Bn=function(e){var t,r=Ut(),n=e||{},o=n.reducer,i=void 0===o?void 0:o,u=n.middleware,c=void 0===u?r():u,a=n.devTools,s=void 0===a||a,f=n.preloadedState,l=void 0===f?void 0:f,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=be(i)}var d=c;"function"==typeof d&&(d=d(r));var b=he.apply(void 0,d),v=ve;s&&(v=$t(function(e,t){for(var r in t||(t={}))At.call(t,r)&&It(e,r,t[r]);if(Ct)for(var n=0,o=Ct(t);o.length>n;n++)Dt.call(t,r=o[n])&&It(e,r,t[r]);return e}({trace:!1},"object"==typeof s&&s)));var h=[b];return Array.isArray(y)?h=xt([b],y):"function"==typeof y&&(h=y(h)),de(t,l,v.apply(void 0,h))}({reducer:Vn,middleware:[_t]}),Wn=Bn.dispatch,qn=Ir,Kn=function(e,t,r){var n=r||!1,o=de(ar,cr,t&&t.enhancer?t.enhancer:void 0),i=function(e){o.dispatch({type:Bt,key:e})},u=function(t,r,i){var u={type:Lt,payload:r,err:i,key:t};e.dispatch(u),o.dispatch(u),n&&c.getState().bootstrapped&&(n(),n=!1)},c=ir({},o,{purge:function(){var t=[];return e.dispatch({type:Vt,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:Mt,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:Ft})},persist:function(){e.dispatch({type:zt,register:i,rehydrate:u})}});return t&&t.manualPersist||c.persist(),c}(Bn),Jn=()=>z.useContext(Gn),Hn=z.createContext({}),Xn=e=>{const t=Jn(),r=Wn,n={subscribe:async e=>{await(null==t?void 0:t.realtime.subscribe(e,(t=>{switch(t.action){case"create":r(Q(e,t.record));break;case"update":r(ee(e,t.record));break;case"delete":r(Z(e,t.record))}})).then((()=>{r(ne(e))})).catch((t=>{r(oe(e))})))},unsubscribe:async e=>{e?await(null==t?void 0:t.realtime.unsubscribe(e).then((()=>{r(oe(e))})).catch((e=>{}))):await(null==t?void 0:t.realtime.unsubscribe().then((()=>{r(re([]))})).catch((e=>{})))},fetch:async e=>{const n=await(null==t?void 0:t.records.getFullList(e,200).catch((e=>{})));r(Y(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((()=>(e.collections&&e.collections.forEach((async e=>{await n.fetch(e),await n.subscribe(e)})),()=>{(async()=>{await n.unsubscribe()})()})),[e.collections]),z.createElement(Hn.Provider,{value:n},e.children)},Gn=z.createContext(null),Yn=e=>z.createElement(Gn.Provider,{value:e.client},e.children),Qn=z.createContext({}),Zn=e=>{const t=Jn(),[r,n]=z.useState(),o={registerWithEmail:async(e,r)=>{await(null==t?void 0:t.users.create({email:e,password:r,passwordConfirm:r}))},signInWithEmail:async(e,r)=>{await(null==t?void 0:t.users.authViaEmail(e,r))},signInWithProvider:async t=>{const n=null==r?void 0:r.find((e=>e.name===t)),o=(null==n?void 0:n.authUrl)+typeof document!="undefined"?e.webRedirectUrl:e.mobileRedirectUrl;await e.openURL(o),await Fn.set("provider",JSON.stringify(r))},submitProviderResult:async r=>{const n=new URLSearchParams(r.split("?")[1]),o=n.get("code"),i=n.get("state"),u=await Fn.get("provider");if(u){const r=JSON.parse(u),n=null==r?void 0:r.find((e=>e.state===i));n&&o&&await(null==t?void 0:t.users.authViaOAuth2(n.name,o,n.codeVerifier,"undefined"!=typeof document?e.webRedirectUrl:e.mobileRedirectUrl))}},signOut:()=>{null==t||t.authStore.clear()},sendPasswordResetEmail:async e=>{await(null==t?void 0:t.users.requestPasswordReset(e))},sendEmailVerification:async e=>{await(null==t?void 0:t.users.requestVerification(e))},updateProfile:async(e,r)=>{await(null==t?void 0:t.records.update("profiles",e,r))},updateEmail:async e=>{await(null==t?void 0:t.users.requestEmailChange(e))},deleteUser:async e=>{await(null==t?void 0:t.users.delete(e))}};return z.useEffect((()=>{(async()=>{const e=await(null==t?void 0:t.users.listAuthMethods());n(null==e?void 0:e.authProviders)})()}),[e.webRedirectUrl,e.mobileRedirectUrl]),z.createElement(Qn.Provider,{value:o},e.children)};function eo(e){return eo="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},eo(e)}function to(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ro(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 no(e,t){return!t||"object"!==eo(t)&&"function"!=typeof t?io(e):t}function oo(e){return oo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},oo(e)}function io(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function uo(e,t){return uo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},uo(e,t)}function co(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ao=function(e){function t(){var e,r;to(this,t);for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return co(io(r=no(this,(e=oo(t)).call.apply(e,[this].concat(o)))),"state",{bootstrapped:!1}),co(io(r),"_unsubscribe",void 0),co(io(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&&uo(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}}])&&ro(r.prototype,n),o&&ro(r,o),t}(z.PureComponent);co(ao,"defaultProps",{children:null,loading:null});const so=z.createContext(null);e.ADD_RECORD=B,e.ADD_RECORDS=W,e.ADD_SUBSCRIPTION=X,e.AuthContext=Qn,e.AuthProvider=Zn,e.ClientContext=Gn,e.ClientProvider=Yn,e.ContentContext=Hn,e.ContentProvider=Xn,e.DELETE_RECORD=K,e.DELETE_RECORDS=J,e.DELETE_SUBSCRIPTION=G,e.Pocketbase=e=>{const t=new o.default(e.serverURL);return t?z.createElement(Yn,{client:t},z.createElement(jn,{store:Bn},z.createElement(ao,{persistor:Kn},z.createElement(Zn,{webRedirectUrl:e.webRedirectUrl,mobileRedirectUrl:e.mobileRedirectUrl,openURL:e.openURL},z.createElement(Xn,{collections:e.initialCollections},e.children))))):null},e.PocketbaseContext=so,e.SET_RECORDS=V,e.SET_SUBSCRIPTIONS=H,e.UPDATE_RECORD=q,e.appReducer=_e,e.persistConfig=zn,e.persistor=Kn,e.recordsAction=te,e.store=Bn,e.subscriptionsAction=ie,e.useAppContent=function(e,t=!1){var r;const n=null!=(r=qn((t=>t.reducer.records[e])))?r:[],o=qn((e=>e.reducer.subscriptions)).subscriptions,i=z.useContext(Hn);z.useEffect((()=>{t&&i.fetch(e)}),[e,t]);const[u,c]=z.useState(!1);return z.useEffect((()=>{c(o.includes(e))}),[o]),{records:n,actions:{subscribe:async()=>await i.subscribe(e),unsubscribe:async()=>await i.unsubscribe(e),fetch:async()=>await i.fetch(e),create:async t=>await i.create(e,t),update:async(t,r)=>await i.update(e,t,r),delete:async t=>await i.delete(e,t)},isSubscribed:u}},e.useAppDispatch=Wn,e.useAppSelector=qn,e.useAuth=function(){const e=Jn(),t=z.useContext(Qn),[r,n]=z.useState(!1),[o,i]=z.useState(null);return z.useEffect((()=>{null==e||e.authStore.onChange((()=>{n(""!==(null==e?void 0:e.authStore.token)),i(null==e?void 0:e.authStore.model)}))}),[]),{actions:t,isSignedIn:r,user:o}},e.useClientContext=Jn,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/es/context/auth.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Admin, User } from '@tobicrain/pocketbase';
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
export declare type AuthProviderInfo = {
|
|
4
3
|
name: string;
|
|
@@ -30,12 +29,7 @@ export interface AuthActions {
|
|
|
30
29
|
updateEmail: UpdateEmailType;
|
|
31
30
|
deleteUser: DeleteUserType;
|
|
32
31
|
}
|
|
33
|
-
export
|
|
34
|
-
actions: AuthActions;
|
|
35
|
-
isSignedIn: boolean;
|
|
36
|
-
user: User | Admin | null;
|
|
37
|
-
}
|
|
38
|
-
export declare const AuthContext: React.Context<AuthContextInterface>;
|
|
32
|
+
export declare const AuthContext: React.Context<AuthActions>;
|
|
39
33
|
export declare type AuthProviderProps = {
|
|
40
34
|
children: React.ReactNode;
|
|
41
35
|
webRedirectUrl: string;
|
package/es/context/auth.js
CHANGED
|
@@ -4,7 +4,6 @@ import { useClientContext } from '../hooks/useClientContext';
|
|
|
4
4
|
import { StorageService } from '../service/Storage';
|
|
5
5
|
export const AuthContext = createContext({});
|
|
6
6
|
export const AuthProvider = props => {
|
|
7
|
-
var _client$authStore$mod;
|
|
8
7
|
const client = useClientContext();
|
|
9
8
|
const [authProviders, setAuthProviders] = React.useState();
|
|
10
9
|
const actions = {
|
|
@@ -63,10 +62,6 @@ export const AuthProvider = props => {
|
|
|
63
62
|
})();
|
|
64
63
|
}, [props.webRedirectUrl, props.mobileRedirectUrl]);
|
|
65
64
|
return /*#__PURE__*/React.createElement(AuthContext.Provider, {
|
|
66
|
-
value:
|
|
67
|
-
actions: actions,
|
|
68
|
-
isSignedIn: (client == null ? void 0 : client.authStore.isValid) || false,
|
|
69
|
-
user: (_client$authStore$mod = client == null ? void 0 : client.authStore.model) != null ? _client$authStore$mod : null
|
|
70
|
-
}
|
|
65
|
+
value: actions
|
|
71
66
|
}, props.children);
|
|
72
67
|
};
|
package/es/hooks/useAuth.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Admin, User } from '@tobicrain/pocketbase';
|
|
2
|
+
import { AuthActions } from '../context/auth';
|
|
3
|
+
export interface AuthContextInterface {
|
|
4
|
+
actions: AuthActions;
|
|
5
|
+
isSignedIn: boolean;
|
|
6
|
+
user: User | Admin | null;
|
|
7
|
+
}
|
|
2
8
|
export declare function useAuth(): AuthContextInterface;
|
package/es/hooks/useAuth.js
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
|
-
import { useContext } from 'react';
|
|
1
|
+
import { useContext, useEffect, useState } from 'react';
|
|
2
2
|
import { AuthContext } from '../context/auth';
|
|
3
|
+
import { useClientContext } from './useClientContext';
|
|
3
4
|
export function useAuth() {
|
|
4
|
-
|
|
5
|
+
const client = useClientContext();
|
|
6
|
+
const actions = useContext(AuthContext);
|
|
7
|
+
const [isSignedIn, setIsSignedIn] = useState(false);
|
|
8
|
+
const [user, setUser] = useState(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
client == null ? void 0 : client.authStore.onChange(() => {
|
|
11
|
+
setIsSignedIn((client == null ? void 0 : client.authStore.token) !== '');
|
|
12
|
+
setUser(client == null ? void 0 : client.authStore.model);
|
|
13
|
+
});
|
|
14
|
+
}, []);
|
|
15
|
+
return {
|
|
16
|
+
actions: actions,
|
|
17
|
+
isSignedIn: isSignedIn,
|
|
18
|
+
user: user
|
|
19
|
+
};
|
|
5
20
|
}
|
package/lib/context/auth.js
CHANGED
|
@@ -10,7 +10,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
10
10
|
const AuthContext = (0, React.createContext)({});
|
|
11
11
|
exports.AuthContext = AuthContext;
|
|
12
12
|
const AuthProvider = props => {
|
|
13
|
-
var _client$authStore$mod;
|
|
14
13
|
const client = (0, _useClientContext.useClientContext)();
|
|
15
14
|
const [authProviders, setAuthProviders] = React.useState();
|
|
16
15
|
const actions = {
|
|
@@ -69,11 +68,7 @@ const AuthProvider = props => {
|
|
|
69
68
|
})();
|
|
70
69
|
}, [props.webRedirectUrl, props.mobileRedirectUrl]);
|
|
71
70
|
return /*#__PURE__*/React.createElement(AuthContext.Provider, {
|
|
72
|
-
value:
|
|
73
|
-
actions: actions,
|
|
74
|
-
isSignedIn: (client == null ? void 0 : client.authStore.isValid) || false,
|
|
75
|
-
user: (_client$authStore$mod = client == null ? void 0 : client.authStore.model) != null ? _client$authStore$mod : null
|
|
76
|
-
}
|
|
71
|
+
value: actions
|
|
77
72
|
}, props.children);
|
|
78
73
|
};
|
|
79
74
|
exports.AuthProvider = AuthProvider;
|
package/lib/hooks/useAuth.js
CHANGED
|
@@ -4,6 +4,21 @@ exports.__esModule = true;
|
|
|
4
4
|
exports.useAuth = useAuth;
|
|
5
5
|
var _react = require("react");
|
|
6
6
|
var _auth = require("../context/auth");
|
|
7
|
+
var _useClientContext = require("./useClientContext");
|
|
7
8
|
function useAuth() {
|
|
8
|
-
|
|
9
|
+
const client = (0, _useClientContext.useClientContext)();
|
|
10
|
+
const actions = (0, _react.useContext)(_auth.AuthContext);
|
|
11
|
+
const [isSignedIn, setIsSignedIn] = (0, _react.useState)(false);
|
|
12
|
+
const [user, setUser] = (0, _react.useState)(null);
|
|
13
|
+
(0, _react.useEffect)(() => {
|
|
14
|
+
client == null ? void 0 : client.authStore.onChange(() => {
|
|
15
|
+
setIsSignedIn((client == null ? void 0 : client.authStore.token) !== '');
|
|
16
|
+
setUser(client == null ? void 0 : client.authStore.model);
|
|
17
|
+
});
|
|
18
|
+
}, []);
|
|
19
|
+
return {
|
|
20
|
+
actions: actions,
|
|
21
|
+
isSignedIn: isSignedIn,
|
|
22
|
+
user: user
|
|
23
|
+
};
|
|
9
24
|
}
|
package/package.json
CHANGED
package/src/context/auth.tsx
CHANGED
|
@@ -37,13 +37,8 @@ export interface AuthActions {
|
|
|
37
37
|
updateEmail: UpdateEmailType;
|
|
38
38
|
deleteUser: DeleteUserType;
|
|
39
39
|
}
|
|
40
|
-
export interface AuthContextInterface {
|
|
41
|
-
actions: AuthActions;
|
|
42
|
-
isSignedIn: boolean;
|
|
43
|
-
user: User | Admin | null;
|
|
44
|
-
}
|
|
45
40
|
|
|
46
|
-
export const AuthContext = createContext<
|
|
41
|
+
export const AuthContext = createContext<AuthActions>({} as AuthActions);
|
|
47
42
|
|
|
48
43
|
export type AuthProviderProps = {
|
|
49
44
|
children: React.ReactNode;
|
|
@@ -121,14 +116,5 @@ export const AuthProvider = (props: AuthProviderProps) => {
|
|
|
121
116
|
})();
|
|
122
117
|
}, [props.webRedirectUrl, props.mobileRedirectUrl]);
|
|
123
118
|
|
|
124
|
-
return
|
|
125
|
-
<AuthContext.Provider
|
|
126
|
-
value={{
|
|
127
|
-
actions: actions,
|
|
128
|
-
isSignedIn: client?.authStore.isValid || false,
|
|
129
|
-
user: client?.authStore.model ?? null,
|
|
130
|
-
}}>
|
|
131
|
-
{props.children}
|
|
132
|
-
</AuthContext.Provider>
|
|
133
|
-
);
|
|
119
|
+
return <AuthContext.Provider value={actions}>{props.children}</AuthContext.Provider>;
|
|
134
120
|
};
|
package/src/hooks/useAuth.ts
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Admin, User } from '@tobicrain/pocketbase';
|
|
2
|
+
import { useContext, useEffect, useState } from 'react';
|
|
3
|
+
import { AuthActions, AuthContext } from '../context/auth';
|
|
4
|
+
import { useClientContext } from './useClientContext';
|
|
5
|
+
|
|
6
|
+
export interface AuthContextInterface {
|
|
7
|
+
actions: AuthActions;
|
|
8
|
+
isSignedIn: boolean;
|
|
9
|
+
user: User | Admin | null;
|
|
10
|
+
}
|
|
3
11
|
|
|
4
12
|
export function useAuth(): AuthContextInterface {
|
|
5
|
-
|
|
13
|
+
const client = useClientContext();
|
|
14
|
+
const actions = useContext(AuthContext);
|
|
15
|
+
const [isSignedIn, setIsSignedIn] = useState(false);
|
|
16
|
+
const [user, setUser] = useState<User | Admin | null>(null);
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
client?.authStore.onChange(() => {
|
|
20
|
+
setIsSignedIn(client?.authStore.token !== '');
|
|
21
|
+
setUser(client?.authStore.model);
|
|
22
|
+
});
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
actions: actions,
|
|
27
|
+
isSignedIn: isSignedIn,
|
|
28
|
+
user: user,
|
|
29
|
+
};
|
|
6
30
|
}
|