import * as React from "react";

/**
 * useSupport returns the Support secret that the server requires for Support
 * actions... if the user has it set. For most users, this returns nothing!
 *
 * Specifically, we return an object of:
 *   - isSupportUser: true iff the `supportSecret` is set
 *   - supportSecret: the secret saved to this device, or null if not set
 *
 * To become a Support user, you visit /?supportSecret=..., which saves the
 * secret to your device.
 *
 * Note that this hook doesn't check that the secret is *correct*, so it's
 * possible that it will return an invalid secret. That's okay, because
 * the server checks the provided secret for each Support request.
 */
function useSupport() {
  const supportSecret = React.useMemo(
    () =>
      typeof localStorage !== "undefined"
        ? localStorage.getItem("supportSecret")
        : null,
    [],
  );

  const isSupportUser = supportSecret != null;

  return { isSupportUser, supportSecret };
}

export default useSupport;