UNPKG

react-grecaptcha-v3

Version:

Google Recaptcha V3 for React.js based application. Keep website performance high while prioritizing security.

31 lines (30 loc) 1.05 kB
import { useCallback } from 'react'; import subscribeEvent from './subscribeEvent'; const useHandleNextInQueue = (siteKey, queueRef) => { return useCallback(() => { if (!siteKey) { return; } let item; while ((item = queueRef.current.shift())) { const { action, onComplete, onError } = item; subscribeEvent(() => { if (window.grecaptcha?.execute) { window.grecaptcha .execute(siteKey, { action }) .then(onComplete) .catch((err) => { if (err instanceof Error) { onError(err); return; } onError(new Error('Unexpected error')); }); return; } onError(new Error('Bad execute().')); }); } }, [queueRef, siteKey]); }; export default useHandleNextInQueue;