Skip to content

Commit 7b28443

Browse files
committed
#RI-3366 - add primary node statistics table
1 parent c6586d2 commit 7b28443

File tree

20 files changed

+734
-24
lines changed

20 files changed

+734
-24
lines changed
Lines changed: 25 additions & 0 deletions
Loading
Lines changed: 17 additions & 0 deletions
Loading
Lines changed: 17 additions & 0 deletions
Loading
Lines changed: 20 additions & 0 deletions
Loading
Lines changed: 25 additions & 0 deletions
Loading
Lines changed: 17 additions & 0 deletions
Loading
Lines changed: 17 additions & 0 deletions
Loading

redisinsight/ui/src/components/action-bar/styles.module.scss

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@
22
.euiPopoverTitle {
33
text-transform: none !important;
44
}
5-
6-
.euiButton {
7-
min-width: 93px !important;
8-
9-
&:focus {
10-
text-decoration: none !important;
11-
}
12-
}
135
}
146

157
.container {

redisinsight/ui/src/components/database-overview/components/icons.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,37 @@
11
import KeyDarkIcon from 'uiSrc/assets/img/overview/key_dark.svg'
22
import KeyTipIcon from 'uiSrc/assets/img/overview/key_tip.svg'
33
import KeyLightIcon from 'uiSrc/assets/img/overview/key_light.svg'
4+
import { ReactComponent as KeyIconSvg } from 'uiSrc/assets/img/overview/key.svg'
5+
46
import MemoryDarkIcon from 'uiSrc/assets/img/overview/memory_dark.svg'
57
import MemoryLightIcon from 'uiSrc/assets/img/overview/memory_light.svg'
68
import MemoryTipIcon from 'uiSrc/assets/img/overview/memory_tip.svg'
9+
import { ReactComponent as MemoryIconSvg } from 'uiSrc/assets/img/overview/memory.svg'
10+
711
import MeasureLightIcon from 'uiSrc/assets/img/overview/measure_light.svg'
812
import MeasureDarkIcon from 'uiSrc/assets/img/overview/measure_dark.svg'
913
import MeasureTipIcon from 'uiSrc/assets/img/overview/measure_tip.svg'
14+
import { ReactComponent as MeasureIconSvg } from 'uiSrc/assets/img/overview/measure.svg'
15+
1016
import TimeLightIcon from 'uiSrc/assets/img/overview/time_light.svg'
1117
import TimeDarkIcon from 'uiSrc/assets/img/overview/time_dark.svg'
1218
import TimeTipIcon from 'uiSrc/assets/img/overview/time_tip.svg'
19+
import { ReactComponent as TimeIconSvg } from 'uiSrc/assets/img/overview/time.svg'
20+
1321
import UserDarkIcon from 'uiSrc/assets/img/overview/user_dark.svg'
1422
import UserLightIcon from 'uiSrc/assets/img/overview/user_light.svg'
1523
import UserTipIcon from 'uiSrc/assets/img/overview/user_tip.svg'
24+
import { ReactComponent as UserIconSvg } from 'uiSrc/assets/img/overview/user.svg'
25+
1626
import InputTipIcon from 'uiSrc/assets/img/overview/input_tip.svg'
1727
import InputLightIcon from 'uiSrc/assets/img/overview/input_light.svg'
1828
import InputDarkIcon from 'uiSrc/assets/img/overview/input_dark.svg'
29+
import { ReactComponent as InputIconSvg } from 'uiSrc/assets/img/overview/input.svg'
30+
1931
import OutputTipIcon from 'uiSrc/assets/img/overview/output_tip.svg'
2032
import OutputLightIcon from 'uiSrc/assets/img/overview/output_light.svg'
2133
import OutputDarkIcon from 'uiSrc/assets/img/overview/output_dark.svg'
34+
import { ReactComponent as OutputIconSvg } from 'uiSrc/assets/img/overview/output.svg'
2235

2336
export {
2437
KeyDarkIcon,
@@ -42,4 +55,11 @@ export {
4255
OutputTipIcon,
4356
OutputLightIcon,
4457
OutputDarkIcon,
58+
KeyIconSvg,
59+
MemoryIconSvg,
60+
MeasureIconSvg,
61+
TimeIconSvg,
62+
UserIconSvg,
63+
InputIconSvg,
64+
OutputIconSvg,
4565
}

redisinsight/ui/src/pages/clusterDetails/ClusterDetailsPage.tsx

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
1+
import { orderBy } from 'lodash'
12
import React, { useEffect, useState } from 'react'
23
import { useSelector, useDispatch } from 'react-redux'
34
import { useParams } from 'react-router-dom'
5+
import { ClusterNodeDetails } from 'src/modules/cluster-monitor/models'
46

57
import InstanceHeader from 'uiSrc/components/instance-header'
8+
import ClusterNodesTable from 'uiSrc/pages/clusterDetails/components/cluser-nodes-table'
69
import { clusterDetailsSelector, fetchClusterDetailsAction } from 'uiSrc/slices/analytics/clusterDetails'
710
import { analyticsSettingsSelector, setAnalyticsViewTab } from 'uiSrc/slices/analytics/settings'
811
import { appAnalyticsInfoSelector } from 'uiSrc/slices/app/info'
912
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
1013
import { AnalyticsViewTab } from 'uiSrc/slices/interfaces/analytics'
1114
import { sendPageViewTelemetry, TelemetryPageView } from 'uiSrc/telemetry'
12-
import { formatLongName, getDbIndex, setTitle, } from 'uiSrc/utils'
15+
import { formatLongName, getDbIndex, getLetterByIndex, Nullable, setTitle, } from 'uiSrc/utils'
1316

1417
import ClusterDetailsHeader from './components/cluster-details-header'
1518
import styles from './styles.module.scss'
1619

20+
export interface ModifiedClusterNodes extends ClusterNodeDetails {
21+
letter: string
22+
index: number
23+
}
24+
1725
const POLLING_INTERVAL = 5_000
1826

1927
const ClusterDetailsPage = () => {
@@ -25,9 +33,10 @@ const ClusterDetailsPage = () => {
2533
} = useSelector(connectedInstanceSelector)
2634
const { viewTab } = useSelector(analyticsSettingsSelector)
2735
const { identified: analyticsIdentified } = useSelector(appAnalyticsInfoSelector)
28-
const { loading } = useSelector(clusterDetailsSelector)
36+
const { loading, data } = useSelector(clusterDetailsSelector)
2937

3038
const [isPageViewSent, setIsPageViewSent] = useState(false)
39+
const [nodes, setNodes] = useState<Nullable<ModifiedClusterNodes[]>>(null)
3140

3241
const dispatch = useDispatch()
3342

@@ -61,6 +70,14 @@ const ClusterDetailsPage = () => {
6170
return () => clearInterval(interval)
6271
}, [instanceId, loading])
6372

73+
useEffect(() => {
74+
if (data) {
75+
const nodes = orderBy(data.nodes, ['asc', 'host'])
76+
const modifiedNodes = nodes.map((d, index) => ({ ...d, letter: getLetterByIndex(index), index }))
77+
setNodes(modifiedNodes)
78+
}
79+
}, [data])
80+
6481
useEffect(() => {
6582
if (connectedInstanceName && !isPageViewSent && analyticsIdentified) {
6683
sendPageView(instanceId)
@@ -80,6 +97,7 @@ const ClusterDetailsPage = () => {
8097
<InstanceHeader />
8198
<div className={styles.main} data-testid="cluster-details-page">
8299
<ClusterDetailsHeader />
100+
<ClusterNodesTable nodes={nodes} loading={loading} />
83101
</div>
84102
</>
85103
)

0 commit comments

Comments
 (0)