"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const ui = require("@contember/ui");
const react = require("react");
const reactIdentity = require("@contember/react-identity");
const disableOtp = require("../../mutations/otp/disableOtp.cjs");
const reactRouting = require("@contember/react-routing");
const useForm = require("../../lib/useForm.cjs");
const initialValues = {};
const DisableOtpForm = ({ redirectOnSuccess }) => {
  const redirect = reactRouting.useRedirect();
  const addToast = ui.useShowToast();
  const disableOtp$1 = disableOtp.useDisableOtp();
  const { refreshIdentity } = reactIdentity.useIdentityMethods();
  const { isSubmitting, onSubmit } = useForm.useForm(
    initialValues,
    react.useCallback(
      async () => {
        if (!confirm("Are you sure?")) {
          return;
        }
        const response = await disableOtp$1({});
        if (response.ok) {
          addToast({
            type: "success",
            message: `Two-factor authentication has been disabled`,
            dismiss: true
          });
          refreshIdentity();
          redirectOnSuccess && redirect(redirectOnSuccess);
        } else {
          switch (response.error.code) {
            case "OTP_NOT_ACTIVE":
              return addToast({ message: `Two factor is not active`, type: "error" });
          }
        }
      },
      [addToast, disableOtp$1, redirect, redirectOnSuccess, refreshIdentity]
    )
  );
  return /* @__PURE__ */ jsxRuntime.jsx("form", { onSubmit, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { intent: "danger", type: "submit", disabled: isSubmitting, children: "Disable two-factor" }) });
};
exports.DisableOtpForm = DisableOtpForm;
//# sourceMappingURL=DisableOtpForm.cjs.map
