{"version":3,"sources":["../../../src/lib/reset-mfa-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\nimport { type ReactNode } from \"react\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { useDeleteTotpFactors } from \"../api/endpoint.js\";\nimport { useSecuritySettings } from \"./use-security-settings.js\";\nimport { ElevatedAccess } from \"./elevated-access.js\";\nimport { SaveButton } from \"./save-button.js\";\nimport { useDialogClose } from \"./use-dialog-close.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface ResetMfaDialogProps extends AlertDialog.RootProps {\n  children?: ReactNode;\n  isPasswordSet: boolean;\n}\n\nexport function ResetMfaDialog({\n  children,\n  isPasswordSet,\n  ...props\n}: ResetMfaDialogProps) {\n  const [open, setOpen] = React.useState(false);\n\n  const handleClose = React.useCallback(() => {\n    setOpen(false);\n  }, []);\n\n  return (\n    <AlertDialog.Root {...props} open={open} onOpenChange={setOpen}>\n      <AlertDialog.Trigger>{children}</AlertDialog.Trigger>\n\n      <AlertDialog.Content maxWidth=\"480px\">\n        <ElevatedAccess type=\"alert\">\n          <Content onClose={handleClose} isPasswordSet={isPasswordSet} />\n        </ElevatedAccess>\n      </AlertDialog.Content>\n    </AlertDialog.Root>\n  );\n}\n\nfunction Content({\n  onClose,\n  isPasswordSet,\n}: {\n  onClose: () => void;\n  isPasswordSet: boolean;\n}) {\n  const securitySettings = useSecuritySettings();\n  const resetMfa = useDeleteTotpFactors();\n\n  const onSubmitForm = () => {\n    resetMfa.mutate();\n  };\n\n  useDialogClose(resetMfa.isSuccess, () => {\n    securitySettings.update(\"Mfa\", false);\n  });\n\n  return (\n    <>\n      <AlertDialog.Title>\n        <Translation\n          defaultMessage=\"Disable multi-factor authentication?\"\n          id=\"a4wDlZ\"\n          description=\"Dialog title asking to confirm disabling MFA\"\n        />\n      </AlertDialog.Title>\n      <AlertDialog.Description>\n        <Translation\n          defaultMessage=\"Turning off MFA will remove the additional layer of security on your account.\"\n          id=\"24huc/\"\n          description=\"Warning that disabling MFA reduces security\"\n          trailingSpace\n        />\n        {isPasswordSet ? (\n          <Translation\n            defaultMessage=\"We will only ask for your password during sign-in.\"\n            id=\"Z6coCJ\"\n            description=\"Explanation when password is set but MFA will be disabled\"\n          />\n        ) : (\n          <Translation\n            defaultMessage=\"We will not ask for additional verification during sign-in.\"\n            id=\"4SH+qg\"\n            description=\"Explanation when no password set and MFA will be disabled\"\n          />\n        )}\n      </AlertDialog.Description>\n\n      <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n        <form\n          onSubmit={(event) => {\n            event.preventDefault();\n            onSubmitForm();\n          }}\n        >\n          <AlertDialog.Cancel>\n            <Button\n              variant=\"secondary\"\n              disabled={resetMfa.isPending || resetMfa.isSuccess}\n            >\n              <Translation\n                defaultMessage=\"Cancel\"\n                id=\"OdCEs1\"\n                description=\"Button to cancel disabling MFA\"\n              />\n            </Button>\n          </AlertDialog.Cancel>\n\n          <SaveButton\n            type=\"submit\"\n            loading={resetMfa.isPending}\n            done={resetMfa.isSuccess}\n            onDone={onClose}\n            variant=\"destructive\"\n          >\n            <Translation\n              defaultMessage=\"Disable\"\n              id=\"uvxVJM\"\n              description=\"Button to confirm disabling MFA\"\n            />\n          </SaveButton>\n        </form>\n      </Flex>\n    </>\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BI;AA5BJ,YAAuB;AACvB,oBAAqB;AAErB,sBAAoC;AACpC,sBAAqC;AACrC,mCAAoC;AACpC,6BAA+B;AAC/B,yBAA2B;AAC3B,8BAA+B;AAC/B,yBAA4B;AAOrB,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAE5C,QAAM,cAAc,MAAM,YAAY,MAAM;AAC1C,YAAQ,KAAK;AAAA,EACf,GAAG,CAAC,CAAC;AAEL,SACE,6CAAC,4BAAY,MAAZ,EAAkB,GAAG,OAAO,MAAY,cAAc,SACrD;AAAA,gDAAC,4BAAY,SAAZ,EAAqB,UAAS;AAAA,IAE/B,4CAAC,4BAAY,SAAZ,EAAoB,UAAS,SAC5B,sDAAC,yCAAe,MAAK,SACnB,sDAAC,WAAQ,SAAS,aAAa,eAA8B,GAC/D,GACF;AAAA,KACF;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf;AAAA,EACA;AACF,GAGG;AACD,QAAM,uBAAmB,kDAAoB;AAC7C,QAAM,eAAW,sCAAqB;AAEtC,QAAM,eAAe,MAAM;AACzB,aAAS,OAAO;AAAA,EAClB;AAEA,8CAAe,SAAS,WAAW,MAAM;AACvC,qBAAiB,OAAO,OAAO,KAAK;AAAA,EACtC,CAAC;AAED,SACE,4EACE;AAAA,gDAAC,4BAAY,OAAZ,EACC;AAAA,MAAC;AAAA;AAAA,QACC,gBAAe;AAAA,QACf,IAAG;AAAA,QACH,aAAY;AAAA;AAAA,IACd,GACF;AAAA,IACA,6CAAC,4BAAY,aAAZ,EACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,eAAa;AAAA;AAAA,MACf;AAAA,MACC,gBACC;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd,IAEA;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd;AAAA,OAEJ;AAAA,IAEA,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAAI,SAAO,MACxC;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,CAAC,UAAU;AACnB,gBAAM,eAAe;AACrB,uBAAa;AAAA,QACf;AAAA,QAEA;AAAA,sDAAC,4BAAY,QAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,UAAU,SAAS,aAAa,SAAS;AAAA,cAEzC;AAAA,gBAAC;AAAA;AAAA,kBACC,gBAAe;AAAA,kBACf,IAAG;AAAA,kBACH,aAAY;AAAA;AAAA,cACd;AAAA;AAAA,UACF,GACF;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS,SAAS;AAAA,cAClB,MAAM,SAAS;AAAA,cACf,QAAQ;AAAA,cACR,SAAQ;AAAA,cAER;AAAA,gBAAC;AAAA;AAAA,kBACC,gBAAe;AAAA,kBACf,IAAG;AAAA,kBACH,aAAY;AAAA;AAAA,cACd;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ;","names":[]}