1616
1717import React , { Fragment , useState } from "react" ;
1818import { Grid , InputBox } from "mds" ;
19- import { ErrorResponseHandler } from "../../../../common/types" ;
2019import { useAppDispatch } from "../../../../store" ;
2120import { setErrorSnackMessage } from "../../../../systemSlice" ;
22- import useApi from "../../Common/Hooks/useApi" ;
2321import ConfirmDialog from "../../Common/ModalWrapper/ConfirmDialog" ;
2422import KMSHelpBox from "../../KMS/KMSHelpbox" ;
23+ import { api } from "api" ;
24+ import { ApiError , HttpResponse } from "api/consoleApi" ;
25+ import { errorToHandler } from "api/errors" ;
2526
2627interface IAddKeyModalProps {
2728 closeAddModalAndRefresh : ( refresh : boolean ) => void ;
@@ -33,30 +34,36 @@ const AddKeyModal = ({
3334 addOpen,
3435} : IAddKeyModalProps ) => {
3536 const dispatch = useAppDispatch ( ) ;
36- const onAddSuccess = ( ) => closeAddModalAndRefresh ( true ) ;
37- const onAddError = ( err : ErrorResponseHandler ) => {
38- closeAddModalAndRefresh ( false ) ;
39- dispatch ( setErrorSnackMessage ( err ) ) ;
40- } ;
4137 const onClose = ( ) => closeAddModalAndRefresh ( false ) ;
4238
43- const [ addLoading , invokeAddApi ] = useApi ( onAddSuccess , onAddError ) ;
39+ const [ loadingAdd , setLoadingAdd ] = useState < boolean > ( false ) ;
4440 const [ keyName , setKeyName ] = useState < string > ( "" ) ;
4541
4642 const onConfirmAdd = ( ) => {
47- invokeAddApi ( "POST" , "/api/v1/kms/keys/" , { key : keyName } ) ;
43+ setLoadingAdd ( true ) ;
44+ api . kms
45+ . kmsCreateKey ( { key : keyName } )
46+ . then ( ( _ ) => {
47+ closeAddModalAndRefresh ( true ) ;
48+ } )
49+ . catch ( async ( res : HttpResponse < void , ApiError > ) => {
50+ const err = ( await res . json ( ) ) as ApiError ;
51+ dispatch ( setErrorSnackMessage ( errorToHandler ( err ) ) ) ;
52+ closeAddModalAndRefresh ( false ) ;
53+ } )
54+ . finally ( ( ) => setLoadingAdd ( false ) ) ;
4855 } ;
4956
5057 return (
5158 < ConfirmDialog
5259 title = { "" }
5360 confirmText = { "Create" }
5461 isOpen = { addOpen }
55- isLoading = { addLoading }
62+ isLoading = { loadingAdd }
5663 onConfirm = { onConfirmAdd }
5764 onClose = { onClose }
5865 confirmButtonProps = { {
59- disabled : keyName . indexOf ( " " ) !== - 1 || keyName === "" || addLoading ,
66+ disabled : keyName . indexOf ( " " ) !== - 1 || keyName === "" || loadingAdd ,
6067 variant : "callAction" ,
6168 } }
6269 confirmationContent = {
0 commit comments