11import { IconSearch } from "@tabler/icons-react" ;
2+ import { useQueryClient } from "@tanstack/react-query" ;
23import { useState } from "react" ;
34import Alert from "react-bootstrap/Alert" ;
5+ import { deleteDeadHost , toggleDeadHost } from "src/api/backend" ;
46import { Button , LoadingPage } from "src/components" ;
57import { useDeadHosts } from "src/hooks" ;
68import { intl } from "src/locale" ;
@@ -9,6 +11,7 @@ import { showSuccess } from "src/notifications";
911import Table from "./Table" ;
1012
1113export default function TableWrapper ( ) {
14+ const queryClient = useQueryClient ( ) ;
1215 const [ deleteId , setDeleteId ] = useState ( 0 ) ;
1316 const [ editId , setEditId ] = useState ( 0 as number | "new" ) ;
1417 const { isFetching, isLoading, isError, error, data } = useDeadHosts ( [ "owner" , "certificate" ] ) ;
@@ -22,10 +25,17 @@ export default function TableWrapper() {
2225 }
2326
2427 const handleDelete = async ( ) => {
25- // await deleteUser (deleteId);
28+ await deleteDeadHost ( deleteId ) ;
2629 showSuccess ( intl . formatMessage ( { id : "notification.host-deleted" } ) ) ;
2730 } ;
2831
32+ const handleDisableToggle = async ( id : number , enabled : boolean ) => {
33+ await toggleDeadHost ( id , enabled ) ;
34+ queryClient . invalidateQueries ( { queryKey : [ "dead-hosts" ] } ) ;
35+ queryClient . invalidateQueries ( { queryKey : [ "dead-host" , id ] } ) ;
36+ showSuccess ( intl . formatMessage ( { id : enabled ? "notification.host-enabled" : "notification.host-disabled" } ) ) ;
37+ } ;
38+
2939 return (
3040 < div className = "card mt-4" >
3141 < div className = "card-status-top bg-red" />
@@ -60,17 +70,18 @@ export default function TableWrapper() {
6070 isFetching = { isFetching }
6171 onEdit = { ( id : number ) => setEditId ( id ) }
6272 onDelete = { ( id : number ) => setDeleteId ( id ) }
73+ onDisableToggle = { handleDisableToggle }
6374 onNew = { ( ) => setEditId ( "new" ) }
6475 />
6576 { editId ? < DeadHostModal id = { editId } onClose = { ( ) => setEditId ( 0 ) } /> : null }
6677 { deleteId ? (
6778 < DeleteConfirmModal
68- title = { intl . formatMessage ( { id : "user .delete.title" } ) }
79+ title = { intl . formatMessage ( { id : "dead-host .delete.title" } ) }
6980 onConfirm = { handleDelete }
7081 onClose = { ( ) => setDeleteId ( 0 ) }
7182 invalidations = { [ [ "dead-hosts" ] , [ "dead-host" , deleteId ] ] }
7283 >
73- { intl . formatMessage ( { id : "user .delete.content" } ) }
84+ { intl . formatMessage ( { id : "dead-host .delete.content" } ) }
7485 </ DeleteConfirmModal >
7586 ) : null }
7687 </ div >
0 commit comments