Skip to content

Commit dc8a080

Browse files
authored
Merge pull request #417 from RedisInsight/bugfix/RI-2589
#RI-2589 - fix sorting of modules for overview tooltip
2 parents 5e1f69a + 9931a36 commit dc8a080

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

redisinsight/ui/src/components/database-overview/DatabaseOverview.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiToolTip } from '@elastic/eui'
44
import MoreInfoPopover from 'uiSrc/components/database-overview/components/MoreInfoPopover'
55
import { Theme } from 'uiSrc/constants'
66
import { ThemeContext } from 'uiSrc/contexts/themeContext'
7+
import { sortModulesByName } from 'uiSrc/utils/modules'
78

89
import RediStackDark from 'uiSrc/assets/img/modules/redistack/RediStackDark.svg'
910
import RediStackDarkLogo from 'uiSrc/assets/img/modules/redistack/RediStackDark-min.svg'
@@ -21,7 +22,7 @@ interface Props {
2122
windowDimensions: number
2223
metrics?: Array<IMetric>
2324
modules?: Array<RedisModuleDto>
24-
isRediStack: boolean
25+
isRediStack?: boolean
2526
}
2627

2728
interface IState<T> {
@@ -56,9 +57,11 @@ const DatabaseOverview = (props: Props) => {
5657
}
5758
})
5859
setMetrics(metricsState)
60+
61+
const sortedModules = sortModulesByName(modulesProps)
5962
setModules({
60-
visible: modulesProps.slice(0, resolutionLimits.modules),
61-
hidden: modulesProps.slice(resolutionLimits.modules)
63+
visible: sortedModules.slice(0, resolutionLimits.modules),
64+
hidden: sortedModules.slice(resolutionLimits.modules)
6265
})
6366
}, [windowDimensions, metricsProps, modulesProps])
6467

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { DATABASE_LIST_MODULES_TEXT, RedisDefaultModules } from 'uiSrc/slices/interfaces'
2+
import { RedisModuleDto } from 'apiSrc/modules/instances/dto/database-instance.dto'
23

34
export interface IDatabaseModule {
45
abbreviation: string
@@ -8,16 +9,19 @@ export interface IDatabaseModule {
89
[key: string]: any
910
}
1011

11-
const PREDEFINED_MODULES_ORDER = [
12-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.Search],
13-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.ReJSON],
14-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.Graph],
15-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.TimeSeries],
16-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.Bloom],
17-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.Gears],
18-
DATABASE_LIST_MODULES_TEXT[RedisDefaultModules.AI]
12+
const PREDEFINED_MODULE_NAMES_ORDER: string[] = [
13+
RedisDefaultModules.Search,
14+
RedisDefaultModules.ReJSON,
15+
RedisDefaultModules.Graph,
16+
RedisDefaultModules.TimeSeries,
17+
RedisDefaultModules.Bloom,
18+
RedisDefaultModules.Gears,
19+
RedisDefaultModules.AI
1920
]
2021

22+
// @ts-ignore
23+
const PREDEFINED_MODULES_ORDER = PREDEFINED_MODULE_NAMES_ORDER.map(module => DATABASE_LIST_MODULES_TEXT[module])
24+
2125
export const sortModules = (modules: IDatabaseModule[]) => {
2226
return modules.sort((a, b) => {
2327
if (!a.moduleName && !a.abbreviation) return 1
@@ -27,3 +31,11 @@ export const sortModules = (modules: IDatabaseModule[]) => {
2731
return PREDEFINED_MODULES_ORDER.indexOf(a.moduleName) - PREDEFINED_MODULES_ORDER.indexOf(b.moduleName)
2832
})
2933
}
34+
35+
export const sortModulesByName = (modules: RedisModuleDto[]) => {
36+
return [...modules].sort((a, b) => {
37+
if (PREDEFINED_MODULE_NAMES_ORDER.indexOf(a.name) === -1) return 1
38+
if (PREDEFINED_MODULE_NAMES_ORDER.indexOf(b.name) === -1) return -1
39+
return PREDEFINED_MODULE_NAMES_ORDER.indexOf(a.name) - PREDEFINED_MODULE_NAMES_ORDER.indexOf(b.name)
40+
})
41+
}

0 commit comments

Comments
 (0)