department-of-veterans-affairs/vets-website

View on GitHub
src/platform/user/authentication/hooks/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import { useEffect, useState, useCallback } from 'react';
import { updateStateAndVerifier } from 'platform/utilities/oauth/utilities';
import { signupOrVerify } from '../utilities';

export function onVerifyClick({ useOAuth, policy }) {
  if (useOAuth) {
    updateStateAndVerifier(policy);
  }
}
/**
 *
 * @param {String} policy - Value can be either `logingov` or `idme`
 * @param {Boolean} useOAuth - Value should come from `isAuthenticatedWithOAuth` authentication selector
 * @returns {Object} Returns an object of the `href` and `onClick`
 */
export function useIdentityVerificationURL({ policy, useOAuth }) {
  const [href, setHref] = useState('');

  useEffect(
    () => {
      async function generateURL() {
        const url = await signupOrVerify({
          policy,
          allowVerification: true,
          isSignup: false,
          isLink: true,
          useOAuth,
        });
        setHref(url);
      }
      generateURL();
    },
    [policy, useOAuth],
  );

  const onClick = useCallback(onVerifyClick, [useOAuth, policy]);
  return { href, onClick };
}