Skip to content

Commit c9c3f63

Browse files
author
Roman.Sergeenko
committed
#RI-985 - add modules
1 parent 005f1fe commit c9c3f63

File tree

2 files changed

+62
-3
lines changed

2 files changed

+62
-3
lines changed

redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
EuiButton,
33
EuiButtonIcon,
4+
EuiIcon,
45
EuiPopover,
56
EuiTableFieldDataColumnType,
67
EuiText,
@@ -9,7 +10,7 @@ import {
910
} from '@elastic/eui'
1011
import { formatDistanceToNow } from 'date-fns'
1112
import { capitalize } from 'lodash'
12-
import React, { useEffect, useState } from 'react'
13+
import React, { useContext, useEffect, useState } from 'react'
1314
import { useDispatch, useSelector } from 'react-redux'
1415
import { useHistory, useLocation } from 'react-router-dom'
1516
import cx from 'classnames'
@@ -26,11 +27,14 @@ import {
2627
Instance,
2728
} from 'uiSrc/slices/interfaces'
2829
import { resetKeys } from 'uiSrc/slices/keys'
29-
import { PageNames, Pages } from 'uiSrc/constants'
30+
import { PageNames, Pages, Theme } from 'uiSrc/constants'
3031
import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
31-
import { formatLongName, getDbIndex, Nullable, replaceSpaces } from 'uiSrc/utils'
32+
import { ThemeContext } from 'uiSrc/contexts/themeContext'
33+
import { formatLongName, getDbIndex, getModule, Nullable, replaceSpaces, truncateText } from 'uiSrc/utils'
3234
import { appContextSelector, setAppContextInitialState } from 'uiSrc/slices/app/context'
3335
import { resetCliHelperSettings, resetCliSettingsAction } from 'uiSrc/slices/cli/cli-settings'
36+
import { modulesDefaultInit } from 'uiSrc/components/database-list-modules/DatabaseListModules'
37+
import { RedisModuleDto } from 'apiSrc/modules/instances/dto/database-instance.dto'
3438
import DatabasesList from './DatabasesList/DatabasesList'
3539

3640
import styles from './styles.module.scss'
@@ -52,6 +56,7 @@ const DatabasesListWrapper = ({
5256
const dispatch = useDispatch()
5357
const history = useHistory()
5458
const { search } = useLocation()
59+
const { theme } = useContext(ThemeContext)
5560

5661
const { contextInstanceId, lastPage } = useSelector(appContextSelector)
5762
const instances = useSelector(instancesSelector)
@@ -250,6 +255,56 @@ const DatabasesListWrapper = ({
250255
render: (cellData: ConnectionType) =>
251256
CONNECTION_TYPE_DISPLAY[cellData] || capitalize(cellData),
252257
},
258+
{
259+
field: 'modules',
260+
className: 'column_modules',
261+
name: 'Modules',
262+
width: '14%',
263+
dataType: 'string',
264+
render: (a: RedisModuleDto[] = []) => {
265+
const modules = [{ name: 'custom' }, { name: 'another custom' }, ...a]
266+
267+
return (
268+
<div className="modules" data-testid="modules">
269+
{modules?.map((module) => {
270+
const moduleName = modulesDefaultInit[module.name]?.text || module.name
271+
272+
console.log(moduleName)
273+
274+
const { abbreviation = '', name = moduleName } = getModule(moduleName)
275+
276+
console.log(abbreviation)
277+
278+
const moduleAlias = truncateText(name, 50)
279+
// eslint-disable-next-line sonarjs/no-nested-template-literals
280+
const content = `${moduleAlias}${module.semanticVersion || module.version ? ` v. ${module.semanticVersion || module.version}` : ''}`
281+
const icon = modulesDefaultInit[module.name]?.[theme === Theme.Dark ? 'iconDark' : 'iconLight']
282+
283+
return (
284+
<span key={moduleName}>
285+
{icon ? (
286+
<EuiIcon
287+
type={icon}
288+
className={cx(styles.icon)}
289+
data-testid={`${module.name}_module`}
290+
aria-labelledby={`${module.name}_module`}
291+
/>
292+
) : (
293+
<span
294+
className={cx(styles.icon)}
295+
data-testid={`${module.name}_module`}
296+
aria-labelledby={`${module.name}_module`}
297+
>
298+
{abbreviation}
299+
</span>
300+
)}
301+
</span>
302+
)
303+
})}
304+
</div>
305+
)
306+
},
307+
},
253308
{
254309
field: 'host',
255310
className: 'column_host',

redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,7 @@ $breakpoint-l: 1400px;
9393
font-size: 13px !important;
9494
}
9595
}
96+
97+
.icon {
98+
margin-right: 5px;
99+
}

0 commit comments

Comments
 (0)