@gaagul/react-auth-kit
Version:
A flexible authentication package for React.
3 lines (2 loc) • 1.48 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");const o=({useFedcm:o=!0,onSuccess:t=()=>{},onError:n=()=>{},clientId:r=""}={})=>{const[c,l]=e.useState(!1),i=e.useRef(null),u=e.useRef(null),d=e.useCallback((e=>{e&&e.credential?t&&"function"==typeof t&&t(e):n&&"function"==typeof n&&n(new Error("Invalid credential response"))}),[t,n]);e.useEffect((()=>{if(!u.current){const e=document.createElement("div");e.style.display="none",document.body.appendChild(e),u.current=e}const e=document.createElement("script");return e.src="https://accounts.google.com/gsi/client",e.async=!0,e.defer=!0,document.body.appendChild(e),window.onGoogleLibraryLoad=()=>{var e;window.google?(window.google.accounts.id.initialize({client_id:r,callback:d,use_fedcm_for_prompt:o,use_fedcm_for_button:o}),window.google.accounts.id.renderButton(u.current,{type:"standard",shape:"rectangular",theme:"outline",text:"continue_with",size:"large",logo_alignment:"left"}),window.google.accounts.id.prompt(),i.current=null===(e=u.current)||void 0===e?void 0:e.querySelector("div[role='button']"),l(!0)):console.error("Google library failed to load")},()=>{document.body.removeChild(e),u.current&&document.body.removeChild(u.current)}}),[r,d,o]);return{signIn:e.useCallback((()=>{i.current?i.current.click():console.error("Google Sign-In button not initialized yet")}),[]),isGoogleReady:c}};exports.default=o,exports.useGoogleLogin=o;
//# sourceMappingURL=index.cjs.js.map