1
- import { Badge , Box , Button , useColorMode } from "@chakra-ui/react"
1
+ import { Badge , Button , useColorMode , useToast } from "@chakra-ui/react"
2
2
import { ApiKey } from "@common/types"
3
3
import { deleteKey } from "api/keys"
4
4
import EmptyView from "components/utils/EmptyView"
@@ -7,6 +7,7 @@ import _ from "lodash"
7
7
import { DateTime } from "luxon"
8
8
import { useState } from "react"
9
9
import DataTable , { TableColumn } from "react-data-table-component"
10
+ import { makeToast } from "utils"
10
11
11
12
interface ListKeysInterface {
12
13
keys : Array < ApiKey >
@@ -16,14 +17,25 @@ interface ListKeysInterface {
16
17
const ListKeys : React . FC < ListKeysInterface > = ( { keys, setKeys } ) => {
17
18
const colorMode = useColorMode ( )
18
19
const [ isDeleting , setIsDeleting ] = useState < Array < string > > ( [ ] )
20
+ const toast = useToast ( )
19
21
20
22
const onDeletePress = async ( key_name : string ) => {
21
23
let _keys = [ ...isDeleting ]
22
24
_keys . push ( key_name )
23
25
setIsDeleting ( _keys )
24
- await deleteKey ( key_name )
25
- setIsDeleting ( [ ...isDeleting ] . filter ( v => v != key_name ) )
26
- setKeys ( keys . filter ( v => v . name != key_name ) )
26
+ try {
27
+ await deleteKey ( key_name )
28
+ setIsDeleting ( [ ...isDeleting ] . filter ( v => v != key_name ) )
29
+ setKeys ( keys . filter ( v => v . name != key_name ) )
30
+ } catch ( err ) {
31
+ toast ( makeToast ( {
32
+ title : "Deleting Key failed" ,
33
+ status : "error" ,
34
+ description : err . response ?. data ,
35
+ } , err . response ?. status ) )
36
+ } finally {
37
+ setIsDeleting ( [ ...isDeleting ] . filter ( v => v != key_name ) )
38
+ }
27
39
}
28
40
29
41
let columns : Array < TableColumn < ApiKey > > = [
0 commit comments