UNPKG

@particle-network/authkit

Version:

Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.

79 lines (78 loc) 4.59 kB
"use client"; import{a as S}from"./chunk-37ISZE7G.mjs";import{b as N}from"./chunk-GKIRU5P2.mjs";import{a as C}from"./chunk-CHA6AH7V.mjs";import{A as b,C as L,H as A,pa as d,sa as P,va as E,z as T}from"./chunk-45SUOK7A.mjs";import"./chunk-2FKLQE76.mjs";import{isConnected as w,isSocialAuthType as X}from"@particle-network/auth-core";import{message as Y}from"antd";import k from"base64url";import z from"qs";import p,{useEffect as Z,useState as $}from"react";import o from"react";var O=`.social-loading-content { text-align: center; display: flex; flex-direction: column; height: 100%; width: 100%; padding: 0; padding-bottom: 40px; } .social-loading-content .wrap { flex: 1; display: flex; justify-content: center; align-items: center; flex-direction: column; } .social-loading-content .wrap .social-logo-content { width: 105px; height: 105px; border-radius: 100%; position: relative; } .social-loading-content .wrap .social-logo-content.failed { cursor: pointer; } .social-loading-content .wrap .social-logo-content .logo { width: 100%; height: 100%; } .social-loading-content .wrap .social-logo-content .logo img { width: 100%; height: auto; } .social-loading-content .wrap .social-logo-content .spin { position: absolute; top: 0; left: 0; width: 100%; height: 100%; animation: social-loading-spin 1.4s linear infinite; } .social-loading-content .wrap .social-logo-content .spin img { width: 100%; height: 100%; } .social-loading-content .wrap .social-logo-content .refresh-btn { font-size: 19px; position: absolute; bottom: 10px; right: 27px; } .social-loading-content .wrap .title { margin-top: 10px; margin-bottom: 10px; } .social-loading-content .wrap .desc { width: 70%; line-height: 1.2; color: var(--secondary-text-color); } @keyframes social-loading-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `;var K=({authType:a,isFailed:e=!0})=>{let{t:n}=E(),[i,g]=o.useState(!e),{socialAuthLogin:m}=L(),{modalOptions:s}=d();return o.createElement("div",{className:"social-loading-content"},o.createElement("style",null,O),o.createElement("div",{className:"wrap"},o.createElement("div",{className:`social-logo-content ${e?"failed":""}`,onClick:()=>{!e||i||(g(!0),m({socialType:a}))}},o.createElement("div",{className:"logo"},o.createElement("img",{src:b(s.themeType)[a]||"",alt:"logo"})),i&&o.createElement("div",{className:"spin"},o.createElement("img",{src:S,alt:"loading"})),e&&!i&&o.createElement("div",{className:"refresh-btn"},o.createElement(N,{className:"refresh-icon",name:"refresh_icon"}))),o.createElement("div",{className:"title"},n(e?"login.request_failed":"login.logging_you_in")),e&&o.createElement("div",{className:"desc"},n("login.something_wrong"))),o.createElement(C,{className:"footer-box-v2"}))},_=K;var j=`.index-container { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; color: var(--text-color); } `;var R=()=>{let{connect:a}=A(),e=P(),{setConnectionStatus:n,socialConnectCallback:i,setAuthCoreModal:g}=d(),[m,s]=p.useState(!1),[I,J]=$(""),[M,V]=$(!1),q=l=>{var t,r;(t=window.particle)!=null&&t.ethereum&&(window.particle.ethereum.isSocialConnecting=!1),(r=window.particle)!=null&&r.solana&&(window.particle.solana.isSocialConnecting=!1),window.dispatchEvent(new CustomEvent("particle:socialConnectCompleted",{detail:l}))},G=async()=>{var l;try{let t=z.parse(T()?"":window.location.search,{ignoreQueryPrefix:!0}),r=t==null?void 0:t.particleThirdpartyParams;if(!r){w()||n("disconnected");return}delete t.particleThirdpartyParams;let y=(window.location.origin+window.location.pathname+"?"+z.stringify(t)).replace(/\?$/,"");window.history.replaceState({},document.title,y),document.title=document.title||y;let Q=JSON.parse(k.decode(r)),{code:v,nonce:f,appState:x,error:u}=Q,U=x?JSON.parse(k.decode(x)):{},{authorization:B,chain:D,purpose:h,verifyToken:F}=U;if(u){w()||n("disconnected"),h?Y.error(u):(l=i==null?void 0:i.onError)==null||l.call(i,new Error(u)),h!=="bindLoginAccount"&&V(!0);return}let c=f.split("@")[0];J(c),h==="bindLoginAccount"?e("/login-account/bind-loading",{state:{authType:c,verifyToken:F,code:v,nonce:f},replace:!0}):(X(c)&&(s(!0),g({particleModalVisible:!0})),await a({socialType:c,code:v,nonce:f,authorization:B,chain:D}))}catch(t){w()||n("disconnected"),q({result:Object.freeze(t)})}s(!1)};return Z(()=>{G()},[]),p.createElement("div",{className:"index-container"},p.createElement("style",null,j),m&&p.createElement(_,{authType:I,isFailed:M}))},To=R;export{To as default};