diff --git a/web-app/src/screens/Console/KMS/AddKey.tsx b/web-app/src/screens/Console/KMS/AddKey.tsx
index 6a8b5e700..38f7cae9c 100644
--- a/web-app/src/screens/Console/KMS/AddKey.tsx
+++ b/web-app/src/screens/Console/KMS/AddKey.tsx
@@ -18,22 +18,16 @@ import React, { Fragment, useEffect } from "react";
import { BackLink, Grid } from "mds";
import { useNavigate } from "react-router-dom";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
-import { ErrorResponseHandler } from "../../../common/types";
-import { setErrorSnackMessage, setHelpName } from "../../../systemSlice";
import { useAppDispatch } from "../../../store";
import AddKeyForm from "./AddKeyForm";
import PageHeaderWrapper from "../Common/PageHeaderWrapper/PageHeaderWrapper";
import HelpMenu from "../HelpMenu";
+import { setHelpName } from "systemSlice";
const AddKey = () => {
const dispatch = useAppDispatch();
const navigate = useNavigate();
- const onSuccess = () => navigate(`${IAM_PAGES.KMS_KEYS}`);
-
- const onError = (err: ErrorResponseHandler) =>
- dispatch(setErrorSnackMessage(err));
-
useEffect(() => {
dispatch(setHelpName("add_key"));
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -51,7 +45,7 @@ const AddKey = () => {
}
actions={}
/>
-
+
);
diff --git a/web-app/src/screens/Console/KMS/AddKeyForm.tsx b/web-app/src/screens/Console/KMS/AddKeyForm.tsx
index d29c54c0d..234a45815 100644
--- a/web-app/src/screens/Console/KMS/AddKeyForm.tsx
+++ b/web-app/src/screens/Console/KMS/AddKeyForm.tsx
@@ -23,23 +23,36 @@ import {
Grid,
InputBox,
} from "mds";
-import { ErrorResponseHandler } from "../../../common/types";
import { modalStyleUtils } from "../Common/FormComponents/common/styleLibrary";
-import useApi from "../Common/Hooks/useApi";
import KMSHelpBox from "./KMSHelpbox";
+import { api } from "api";
+import { useAppDispatch } from "store";
+import { useNavigate } from "react-router-dom";
+import { ApiError, HttpResponse } from "api/consoleApi";
+import { setErrorSnackMessage } from "systemSlice";
+import { errorToHandler } from "api/errors";
+import { IAM_PAGES } from "common/SecureComponent/permissions";
-interface IAddKeyFormProps {
- onSuccess: () => void;
- onError: (err: ErrorResponseHandler) => void;
-}
+const AddKeyForm = () => {
+ const dispatch = useAppDispatch();
+ const navigate = useNavigate();
-const AddKeyForm = ({ onSuccess, onError }: IAddKeyFormProps) => {
- const [loading, invokeApi] = useApi(onSuccess, onError);
const [keyName, setKeyName] = useState("");
+ const [loadingCreate, setLoadingCreate] = useState(false);
const addRecord = (event: React.FormEvent) => {
event.preventDefault();
- invokeApi("POST", "/api/v1/kms/keys/", { key: keyName });
+ setLoadingCreate(true);
+ api.kms
+ .kmsCreateKey({ key: keyName })
+ .then((_) => {
+ navigate(`${IAM_PAGES.KMS_KEYS}`);
+ })
+ .catch(async (res: HttpResponse) => {
+ const err = (await res.json()) as ApiError;
+ dispatch(setErrorSnackMessage(errorToHandler(err)));
+ })
+ .finally(() => setLoadingCreate(false));
};
const resetForm = () => {
@@ -103,7 +116,7 @@ const AddKeyForm = ({ onSuccess, onError }: IAddKeyFormProps) => {
type="submit"
variant="callAction"
color="primary"
- disabled={loading || !validSave}
+ disabled={loadingCreate || !validSave}
label={"Save"}
/>