react-gapi
Version:
Google API per React hook
35 lines (30 loc) • 1.08 kB
JavaScript
;
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;