UNPKG

react-gapi

Version:
35 lines (30 loc) 1.08 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var GoogleApiContext = require('./GoogleApiContext.js'); function useGoogleApi(options = {}) { const { gapi , configure } = React.useContext(GoogleApiContext.GoogleApiContext) ?? {}; const [configureState, setConfigureState] = React.useState(); const mounted = React.useRef(true); React.useEffect(()=>{ mounted.current = true; return ()=>{ mounted.current = false; }; }); const [, rerender] = React.useState(); const auth = gapi?.auth2?.getAuthInstance(); React.useEffect(()=>{ if (auth) { auth.isSignedIn.listen(()=>mounted.current && rerender({}) ); auth.currentUser.listen(()=>mounted.current && rerender({}) ); } }, [ auth ]); return configure ? configure(options, (newState)=>mounted.current && newState !== configureState && setConfigureState(newState) ) : undefined; } exports.useGoogleApi = useGoogleApi;