@@ -14,59 +14,20 @@ import KebabDropdown from '../kebab-dropdown';
1414import { useTranslation } from 'react-i18next' ;
1515import {
1616 getAlertUrl ,
17- getLegacyObserveState ,
1817 getNewSilenceAlertUrl ,
1918 getRuleUrl ,
2019 usePerspective ,
2120} from '../hooks/usePerspective' ;
2221import { OutlinedQuestionCircleIcon } from '@patternfly/react-icons' ;
2322import './incidents-styles.css' ;
2423import { SeverityBadge } from '../alerting/AlertUtils' ;
25- import { useAlertsPoller } from '../hooks/useAlertsPoller' ;
26- import { useSelector } from 'react-redux' ;
27- import isEqual from 'lodash/isEqual' ;
28- import { MonitoringState } from 'src/reducers/observe' ;
29-
30- function useDeepCompareMemoize ( value ) {
31- const ref = React . useRef ( ) ;
32-
33- if ( ! isEqual ( value , ref . current ) ) {
34- ref . current = value ;
35- }
36-
37- return ref . current ;
38- }
3924
4025const IncidentsDetailsRowTable = ( { alerts } ) => {
4126 const history = useHistory ( ) ;
4227 const [ namespace ] = useActiveNamespace ( ) ;
43- useAlertsPoller ( ) ;
44- const { perspective, alertsKey } = usePerspective ( ) ;
45- const [ alertsWithMatchedData , setAlertsWithMatchedData ] = React . useState ( [ ] ) ;
28+ const { perspective } = usePerspective ( ) ;
4629 const { t } = useTranslation ( process . env . I18N_NAMESPACE ) ;
4730
48- const alertsWithLabels = useSelector ( ( state : MonitoringState ) =>
49- getLegacyObserveState ( perspective , state ) ?. get ( alertsKey ) ,
50- ) ;
51-
52- function findMatchingAlertsWithId ( alertsArray , rulesArray ) {
53- return alertsArray . map ( ( alert ) => {
54- if ( ! Array . isArray ( rulesArray ?. data ) ) {
55- return alert ;
56- }
57- const match = rulesArray . data . find ( ( rule ) => alert . alertname === rule . labels . alertname ) ;
58- if ( match ) {
59- return { ...alert , rule : match } ;
60- }
61- return alert ;
62- } ) ;
63- }
64- const memoizedAlerts = useDeepCompareMemoize ( alerts ) ;
65-
66- React . useEffect ( ( ) => {
67- setAlertsWithMatchedData ( findMatchingAlertsWithId ( memoizedAlerts , alertsWithLabels ) ) ;
68- } , [ memoizedAlerts , alertsWithLabels ] ) ;
69-
7031 return (
7132 < Table borders = { false } variant = "compact" >
7233 < Thead >
@@ -80,31 +41,26 @@ const IncidentsDetailsRowTable = ({ alerts }) => {
8041 </ Tr >
8142 </ Thead >
8243 < Tbody >
83- { ! alertsWithMatchedData ? (
44+ { ! alerts ? (
8445 < Bullseye >
8546 < Spinner aria-label = "incidents-chart-spinner" />
8647 </ Bullseye >
8748 ) : (
88- alertsWithMatchedData ?. map ( ( alertDetails , rowIndex ) => {
49+ alerts ?. map ( ( alertDetails , rowIndex ) => {
8950 return (
9051 < Tr key = { rowIndex } >
9152 < Td dataLabel = "expanded-details-alertname" >
9253 < ResourceIcon kind = { AlertResource . kind } />
9354 < Link
9455 to = {
95- alertDetails ? .rule
56+ alertDetails . rule . state === 'firing'
9657 ? getAlertUrl (
9758 perspective ,
9859 alertDetails ,
99- alertDetails ?. rule ?. rule . id ,
100- namespace ,
60+ alertDetails ?. rule ?. id ,
61+ alertDetails ?. labels ?. namespace || namespace ,
10162 )
102- : '#'
103- }
104- style = {
105- ! alertDetails ?. rule || alertDetails . resolved
106- ? { pointerEvents : 'none' , color : 'inherit' , textDecoration : 'inherit' }
107- : { }
63+ : getRuleUrl ( perspective , alertDetails ?. rule , namespace )
10864 }
10965 >
11066 { alertDetails . alertname }
@@ -162,7 +118,7 @@ const IncidentsDetailsRowTable = ({ alerts }) => {
162118 isDisabled = { alertDetails ?. alertstate === 'resolved' ? true : false }
163119 >
164120 < Link
165- to = { getRuleUrl ( perspective , alertDetails ?. rule ?. rule ) }
121+ to = { getRuleUrl ( perspective , alertDetails ?. rule ) }
166122 style = { { color : 'inherit' , textDecoration : 'inherit' } }
167123 >
168124 { t ( 'View alerting rule' ) }
0 commit comments