Skip to content

Commit fc83c35

Browse files
committed
add error handling to settings
1 parent d43900a commit fc83c35

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

frontend/src/components/Keys/list.tsx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Badge, Box, Button, useColorMode } from "@chakra-ui/react"
1+
import { Badge, Button, useColorMode, useToast } from "@chakra-ui/react"
22
import { ApiKey } from "@common/types"
33
import { deleteKey } from "api/keys"
44
import EmptyView from "components/utils/EmptyView"
@@ -7,6 +7,7 @@ import _ from "lodash"
77
import { DateTime } from "luxon"
88
import { useState } from "react"
99
import DataTable, { TableColumn } from "react-data-table-component"
10+
import { makeToast } from "utils"
1011

1112
interface ListKeysInterface {
1213
keys: Array<ApiKey>
@@ -16,14 +17,25 @@ interface ListKeysInterface {
1617
const ListKeys: React.FC<ListKeysInterface> = ({ keys, setKeys }) => {
1718
const colorMode = useColorMode()
1819
const [isDeleting, setIsDeleting] = useState<Array<string>>([])
20+
const toast = useToast()
1921

2022
const onDeletePress = async (key_name: string) => {
2123
let _keys = [...isDeleting]
2224
_keys.push(key_name)
2325
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+
}
2739
}
2840

2941
let columns: Array<TableColumn<ApiKey>> = [

frontend/src/pages/settings.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
Heading,
55
HStack,
66
useDisclosure,
7+
useToast,
78
VStack,
89
} from "@chakra-ui/react"
910
import { ApiKey } from "@common/types"
@@ -17,6 +18,7 @@ import { ContentContainer } from "components/utils/ContentContainer"
1718
import { GetServerSideProps } from "next"
1819
import { useState } from "react"
1920
import superjson from "superjson"
21+
import { makeToast } from "utils"
2022

2123
export const getServerSideProps: GetServerSideProps = async context => {
2224
const apiKeys = await getKeys()
@@ -41,6 +43,7 @@ const Keys = ({ keys: _keysString }) => {
4143
onClose: onNewKeyClose,
4244
} = useDisclosure()
4345
const [isAddingKey, setIsAddingKey] = useState(false)
46+
const toast = useToast()
4447

4548
const addKey = async (key_name: string) => {
4649
setIsAddingKey(true)
@@ -58,6 +61,12 @@ const Keys = ({ keys: _keysString }) => {
5861
setKeys(new_keys)
5962
setNewKeyValue([resp.apiKey, resp.name])
6063
onNewKeyOpen()
64+
} catch (err) {
65+
toast(makeToast({
66+
title: "Adding new key failed",
67+
status: "error",
68+
description: err.response?.data
69+
}, err.response?.status))
6170
} finally {
6271
setIsAddingKey(false)
6372
onClose()

0 commit comments

Comments
 (0)