UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 6.07 kB
function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n,a=arguments[t];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}import React from"react";import apiReq from"@tycoonsystems/tycoon-modules/utility/api/apiReq";import{useRouter}from"next/router";import{checkSignedIn,attemptThirdPartySignIn}from"@tycoonsystems/tycoon-modules/utility/onboarding/SignIn";import{setStripeSecretData}from"@tycoonsystems/tycoon-modules/utility/payment/index";import{fetchPost}from"@tycoonsystems/tycoon-modules/utility/fetch";import{debounce}from"@tycoonsystems/tycoon-modules/util";import{handleLookupUsernameRequest}from"./tools";import dynamic from"next/dynamic";const SignInOnboard=dynamic(()=>import("/layout/onboarding").then(e=>e.SignInOnboard),{ssr:!1,loading:()=>React.createElement("p",null)}),RegisterOnboard=dynamic(()=>import("/layout/onboarding").then(e=>e.RegisterOnboard),{ssr:!1,loading:()=>React.createElement("p",null)}),Module=o=>{const t=useRouter(),n=t["asPath"];let r=React.useRef();const[e,a]=React.useState(!1),[i,s]=React.useState(!1);let[,l]=React.useState(!1),[c,d]=React.useState(!1),[u,g]=React.useState(!1);const[m,h]=React.useState(!1),[p,R]=React.useState(!1),[y,f]=React.useState(null),[S,v]=React.useState({});let[_,I]=React.useState(null);const E=React.useRef(),b=React.useRef(),w=React.useRef(),A=(React.useEffect(()=>{a(!0)},[e]),o._LocalEventEmitter.unsubscribe("showSignIn"),o._LocalEventEmitter.subscribe("showSignIn",e=>{g(!1),h(!1),L(500)}),o._LocalEventEmitter.unsubscribe("checkAdminAuth"),o._LocalEventEmitter.subscribe("checkAdminAuth",e=>{O(!0)}),React.useEffect(()=>{document.addEventListener("mute-login-error",()=>{I(null)},{once:!0})},[]),async e=>{e=await attemptThirdPartySignIn(e,o.apiUrl,o.domainKey,o._LocalEventEmitter,o._setAdminAuth,I);e?.data&&e?.data.hasOwnProperty("username")&&(e.data.username||l(!0)),"error"!=typeof e&&(setStripeSecretData(o.apiUrl,o.domainKey,e,o._setStripeSecret),o._setLoggedIn(e.data),console.log(o.redirectOnAuth,e.username),"/admin"===n&&setTimeout(()=>{o._LocalEventEmitter.dispatch("checkAdminAuth",{})},1e3),o.redirectOnAuth&&e?.data?.username&&n!==o.redirectOnAuth?t.push(o.redirectOnAuth):o.redirectOnAuth&&e?.data?.username&&n===o.redirectOnAuth&&t.reload(o.redirectOnAuth),setTimeout(()=>{I(null)},2e4),setTimeout(()=>{g(!0),h(!0)}))}),L=(e,t,n=0)=>{try{if(!c||t){const a={theme:"outline",size:"medium",logo_alignment:"center"};setTimeout(()=>{try{var e=checkSignedIn();e?o._setLoggedIn(e):(google.accounts.id.renderButton(r.current,a),d(!0),google.accounts.id.prompt(e=>{console.log("on prompt notification",e)}))}catch(e){setTimeout(()=>{try{var e=checkSignedIn();e?o._setLoggedIn(e):(google.accounts.id.renderButton(r.current,a),d(!0),google.accounts.id.prompt(e=>{console.log("on prompt notification",e)}))}catch(e){console.log(e)}},1e4)}},e)}else n<5&&setTimeout(()=>{L(e,t,n+1)},e)}catch(e){console.log(e)}},O=(React.useEffect(()=>{document.removeEventListener("thirdparty-signin",A),document.addEventListener("thirdparty-signin",A),L(500)},[]),async e=>{(o?.path.match(/\/admin/)&&!i||e)&&(console.log(o),o?._loggedIn?.identifier)&&o?._loggedIn?.hash&&o?.domainKey&&!o._adminAuth&&o?._setAdminAuth&&(s(!0),(e=await(async(e,t,n,a)=>{if(t)return!!(e=await fetchPost(e+"/m/checkadminauth",null,null,{identifier:t,hash:n,domainKey:a}))&&(e.hasOwnProperty("status")?"disauthenticated"==e.status?(logout(),"disauthenticated"):"failed"!=e.status&&("success"==e.status?e:void 0):void 0)})(o.apiUrl,o._loggedIn.identifier,o._loggedIn.hash,o.domainKey))?.admin)&&o._setAdminAuth(e.admin)});React.useEffect(()=>{o?._loggedIn?.identifier&&o?._adminAuth?.userid&&o._loggedIn.identifier!==o._adminAuth.userid&&o._setAdminAuth(null)},[o._loggedIn,o._adminAuth]),O();var k=React.useCallback(e=>{(async()=>{E?.current?.value&&await apiReq("/onboarding/signinunregistered",{email:E?.current?.value,password:b?.current?.value,signIn:!0,props:o,setPageError:I})})()}),C=React.useCallback(e=>{(async()=>{E?.current?.value&&await apiReq("/onboarding/signinunregistered",{email:E?.current?.value,password:b?.current?.value,username:w?.current?.value,register:!0,props:o,setPageError:I})})()}),P=()=>{if(d(!1),L(500,!0),p)return R(!1),!1;R(!0)},T=(()=>{try{var e=document.getElementsByClassName("google-sign-in-btn");return e&&e[0]&&0<e[0].children.length&&e[0].children[0]?!0:!1}catch(e){return!1}})(),x=React.useCallback(e=>{I(null)}),U=u&&m||o?._loggedIn;const q=React.useCallback(debounce(async e=>{e=await handleLookupUsernameRequest(e?.target?.value);e?.data&&f(e)},1500),[]);var K=React.useCallback(async e=>{f(null),q(e)},[]),j=React.useCallback(e=>{f(null)}),D=React.useCallback(e=>{if(E?.current?.value){var t=E.current.value;if(S[t]&&S[t]>(new Date).getTime()-12e4)return!1;var n=S,n=(n[t]=(new Date).getTime(),v(n),{event:"reset_password",data:{email:t}});o?._LocalEventEmitter&&o._LocalEventEmitter.dispatch("global_event",n);try{window.dispatchEvent(new CustomEvent("global_event",{detail:Object.assign({},n)}))}catch(e){}}},[o?._LocalEventEmitter]);return React.createElement("div",{className:`${o.className} ${o._loggedIn||!T?"":o.classNameOnLoaded} SignIn_Container `+(o.noStyle?"":"SignIn_ContainerOn"),style:{width:o?.width??null,maxWidth:o?.width??null,margin:"0 auto"}}," ",o?._loggedIn?null:o?.loadRegister||p?React.createElement(RegisterOnboard,_extends({},o,{emailRef:E,passwordRef:b,usernameRef:w,handleRegisterManual:C,hideSignIn:m,allhidden:U,hideGoogleSignIn:u,googleSignInIsLoaded:T,googleSignInRendered:c,googleSignIn:r,handleSetLoadRegister:P,pageError:_,handleClearPageError:x,availableUsername:y,handleLookupUsername:K,handleClearUsername:j})):React.createElement(SignInOnboard,_extends({},o,{emailRef:E,passwordRef:b,handleSignInManual:k,hideSignIn:m,allhidden:U,hideGoogleSignIn:u,googleSignInIsLoaded:T,googleSignInRendered:c,googleSignIn:r,handleSetLoadRegister:P,pageError:_,handleClearPageError:x,handleSetResetPassword:D})))};export default Module;