1- import { useConfigInsightsQuery } from "@flanksource-ui/api/query-hooks/useConfigAnalysisQuery " ;
1+ import useFetchConfigInsights from "@flanksource-ui/api/query-hooks/useFetchConfigInsights " ;
22import { ConfigAnalysis } from "@flanksource-ui/api/types/configs" ;
3- import { DataTable , PaginationOptions } from "@flanksource-ui/ui/DataTable" ;
4- import useReactTableSortState from "@flanksource-ui/ui/DataTable/Hooks/useReactTableSortState" ;
5- import { useMemo , useState } from "react" ;
3+ import MRTDataTable from "@flanksource-ui/ui/MRTDataTable/MRTDataTable" ;
4+ import { useEffect , useState } from "react" ;
65import { useSearchParams } from "react-router-dom" ;
76import { InfoMessage } from "../../InfoMessage" ;
87import ConfigInsightsDetailsModal from "./ConfigAnalysisLink/ConfigInsightsDetailsModal" ;
@@ -21,47 +20,18 @@ export default function ConfigInsightsList({
2120 configId,
2221 columnsToHide = [ ]
2322} : Props ) {
24- const [ params , setParams ] = useSearchParams ( ) ;
23+ const [ params ] = useSearchParams ( ) ;
2524 const [ clickedInsightItem , setClickedInsightItem ] =
2625 useState < ConfigAnalysis > ( ) ;
2726 const [ isInsightDetailsModalOpen , setIsInsightDetailsModalOpen ] =
2827 useState ( false ) ;
2928
30- const status = params . get ( "status" ) ?? undefined ;
31- const severity = params . get ( "severity" ) ?? undefined ;
32- const type = params . get ( "type" ) ?? undefined ;
33- const configType = params . get ( "configType" ) ?? undefined ;
34- const analyzer = params . get ( "analyzer" ) ?? undefined ;
35- const component = params . get ( "component" ) ?? undefined ;
3629 const pageSize = + ( params . get ( "pageSize" ) ?? 50 ) ;
37- const pageIndex = + ( params . get ( "pageIndex" ) ?? 0 ) ;
3830
3931 const { data, isLoading, refetch, isRefetching, error } =
40- useConfigInsightsQuery (
41- {
42- status,
43- severity : severity ?. toLowerCase ( ) ,
44- type,
45- analyzer,
46- component,
47- configId,
48- configType
49- } ,
50- {
51- sortBy : params . get ( "sortBy" ) ?? undefined ,
52- sortOrder : params . get ( "sortOrder" ) as "asc" | "desc" | undefined
53- } ,
54- {
55- pageIndex,
56- pageSize
57- } ,
58- {
59- keepPreviousData : true ,
60- onSuccess : ( ) => setIsLoading ( false )
61- }
62- ) ;
32+ useFetchConfigInsights ( setIsLoading , configId ) ;
6333
64- useMemo ( ( ) => {
34+ useEffect ( ( ) => {
6535 setIsLoading ( true ) ;
6636 refetch ( ) ;
6737 // we only want to trigger this effect when the triggerRefresh changes and
@@ -71,63 +41,27 @@ export default function ConfigInsightsList({
7141
7242 const configInsights = data ?. data ?? [ ] ;
7343
74- const totalEntries = ( data as any ) ?. totalEntries ;
44+ const totalEntries = data ?. totalEntries ;
7545 const pageCount = totalEntries ? Math . ceil ( totalEntries / pageSize ) : - 1 ;
7646
77- const [ sortBy , updateSortBy ] = useReactTableSortState ( ) ;
78-
79- const pagination = useMemo ( ( ) => {
80- const pagination : PaginationOptions = {
81- setPagination : ( updater ) => {
82- const newParams =
83- typeof updater === "function"
84- ? updater ( {
85- pageIndex,
86- pageSize
87- } )
88- : updater ;
89- params . set ( "pageIndex" , newParams . pageIndex . toString ( ) ) ;
90- params . set ( "pageSize" , newParams . pageSize . toString ( ) ) ;
91- setParams ( params ) ;
92- } ,
93- pageIndex,
94- pageSize,
95- pageCount,
96- remote : true ,
97- enable : true ,
98- loading : isLoading || isRefetching
99- } ;
100- return pagination ;
101- } , [
102- pageIndex ,
103- pageSize ,
104- pageCount ,
105- isLoading ,
106- isRefetching ,
107- params ,
108- setParams
109- ] ) ;
110-
11147 return (
11248 // eslint-disable-next-line react/jsx-no-useless-fragment
11349 < >
11450 { error ? (
11551 < InfoMessage message = { error . message } />
11652 ) : (
117- < DataTable
118- columns = { configInsightsColumns }
53+ < MRTDataTable
11954 data = { configInsights }
120- isLoading = { isLoading }
121- stickyHead
122- pagination = { pagination }
55+ isLoading = { isLoading || isRefetching }
12356 hiddenColumns = { columnsToHide }
124- handleRowClick = { ( row ) => {
125- setClickedInsightItem ( row . original ) ;
57+ onRowClick = { ( row ) => {
58+ setClickedInsightItem ( row ) ;
12659 setIsInsightDetailsModalOpen ( true ) ;
12760 } }
12861 enableServerSideSorting
129- tableSortByState = { sortBy }
130- onTableSortByChanged = { updateSortBy }
62+ totalRowCount = { totalEntries }
63+ manualPageCount = { pageCount }
64+ columns = { configInsightsColumns }
13165 />
13266 ) }
13367
0 commit comments