Skip to content

Commit edaa4e8

Browse files
authored
Use swagger api for delete group (#3196)
1 parent 76c596c commit edaa4e8

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

web-app/src/screens/Console/Groups/DeleteGroup.tsx

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@
1414
// You should have received a copy of the GNU Affero General Public License
1515
// along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

17-
import React, { Fragment } from "react";
18-
import { ErrorResponseHandler } from "../../../common/types";
17+
import React, { Fragment, useState } from "react";
1918
import { ConfirmDeleteIcon } from "mds";
2019
import { encodeURLString } from "../../../common/utils";
2120
import { setErrorSnackMessage } from "../../../systemSlice";
2221
import { useAppDispatch } from "../../../store";
2322
import ConfirmDialog from "../Common/ModalWrapper/ConfirmDialog";
24-
import useApi from "../Common/Hooks/useApi";
23+
import { api } from "api";
24+
import { errorToHandler } from "api/errors";
25+
import { ApiError, HttpResponse } from "api/consoleApi";
2526

2627
interface IDeleteGroup {
2728
selectedGroups: string[];
@@ -35,21 +36,26 @@ const DeleteGroup = ({
3536
closeDeleteModalAndRefresh,
3637
}: IDeleteGroup) => {
3738
const dispatch = useAppDispatch();
38-
const onDelSuccess = () => closeDeleteModalAndRefresh(true);
39-
const onDelError = (err: ErrorResponseHandler) => {
40-
dispatch(setErrorSnackMessage(err));
41-
closeDeleteModalAndRefresh(false);
42-
};
4339
const onClose = () => closeDeleteModalAndRefresh(false);
44-
45-
const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);
40+
const [loadingDelete, setLoadingDelete] = useState<boolean>(false);
4641

4742
if (!selectedGroups) {
4843
return null;
4944
}
5045
const onDeleteGroups = () => {
5146
for (let group of selectedGroups) {
52-
invokeDeleteApi("DELETE", `/api/v1/group/${encodeURLString(group)}`);
47+
setLoadingDelete(true);
48+
api.group
49+
.removeGroup(encodeURLString(group))
50+
.then((_) => {
51+
closeDeleteModalAndRefresh(true);
52+
})
53+
.catch(async (res: HttpResponse<void, ApiError>) => {
54+
const err = (await res.json()) as ApiError;
55+
dispatch(setErrorSnackMessage(errorToHandler(err)));
56+
closeDeleteModalAndRefresh(false);
57+
})
58+
.finally(() => setLoadingDelete(false));
5359
}
5460
};
5561

@@ -65,7 +71,7 @@ const DeleteGroup = ({
6571
confirmText={"Delete"}
6672
isOpen={deleteOpen}
6773
titleIcon={<ConfirmDeleteIcon />}
68-
isLoading={deleteLoading}
74+
isLoading={loadingDelete}
6975
onConfirm={onDeleteGroups}
7076
onClose={onClose}
7177
confirmationContent={

0 commit comments

Comments
 (0)