From c9c3f632101d2dff24871e5602f643ad32547c3a Mon Sep 17 00:00:00 2001 From: "Roman.Sergeenko" Date: Fri, 4 Mar 2022 14:27:17 +0300 Subject: [PATCH 1/4] #RI-985 - add modules --- .../DatabasesListWrapper.tsx | 61 ++++++++++++++++++- .../DatabasesListComponent/styles.module.scss | 4 ++ 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx index 3691cd5ebe..03e69959a7 100644 --- a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx +++ b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx @@ -1,6 +1,7 @@ import { EuiButton, EuiButtonIcon, + EuiIcon, EuiPopover, EuiTableFieldDataColumnType, EuiText, @@ -9,7 +10,7 @@ import { } from '@elastic/eui' import { formatDistanceToNow } from 'date-fns' import { capitalize } from 'lodash' -import React, { useEffect, useState } from 'react' +import React, { useContext, useEffect, useState } from 'react' import { useDispatch, useSelector } from 'react-redux' import { useHistory, useLocation } from 'react-router-dom' import cx from 'classnames' @@ -26,11 +27,14 @@ import { Instance, } from 'uiSrc/slices/interfaces' import { resetKeys } from 'uiSrc/slices/keys' -import { PageNames, Pages } from 'uiSrc/constants' +import { PageNames, Pages, Theme } from 'uiSrc/constants' import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry' -import { formatLongName, getDbIndex, Nullable, replaceSpaces } from 'uiSrc/utils' +import { ThemeContext } from 'uiSrc/contexts/themeContext' +import { formatLongName, getDbIndex, getModule, Nullable, replaceSpaces, truncateText } from 'uiSrc/utils' import { appContextSelector, setAppContextInitialState } from 'uiSrc/slices/app/context' import { resetCliHelperSettings, resetCliSettingsAction } from 'uiSrc/slices/cli/cli-settings' +import { modulesDefaultInit } from 'uiSrc/components/database-list-modules/DatabaseListModules' +import { RedisModuleDto } from 'apiSrc/modules/instances/dto/database-instance.dto' import DatabasesList from './DatabasesList/DatabasesList' import styles from './styles.module.scss' @@ -52,6 +56,7 @@ const DatabasesListWrapper = ({ const dispatch = useDispatch() const history = useHistory() const { search } = useLocation() + const { theme } = useContext(ThemeContext) const { contextInstanceId, lastPage } = useSelector(appContextSelector) const instances = useSelector(instancesSelector) @@ -250,6 +255,56 @@ const DatabasesListWrapper = ({ render: (cellData: ConnectionType) => CONNECTION_TYPE_DISPLAY[cellData] || capitalize(cellData), }, + { + field: 'modules', + className: 'column_modules', + name: 'Modules', + width: '14%', + dataType: 'string', + render: (a: RedisModuleDto[] = []) => { + const modules = [{ name: 'custom' }, { name: 'another custom' }, ...a] + + return ( +
+ {modules?.map((module) => { + const moduleName = modulesDefaultInit[module.name]?.text || module.name + + console.log(moduleName) + + const { abbreviation = '', name = moduleName } = getModule(moduleName) + + console.log(abbreviation) + + const moduleAlias = truncateText(name, 50) + // eslint-disable-next-line sonarjs/no-nested-template-literals + const content = `${moduleAlias}${module.semanticVersion || module.version ? ` v. ${module.semanticVersion || module.version}` : ''}` + const icon = modulesDefaultInit[module.name]?.[theme === Theme.Dark ? 'iconDark' : 'iconLight'] + + return ( + + {icon ? ( + + ) : ( + + {abbreviation} + + )} + + ) + })} +
+ ) + }, + }, { field: 'host', className: 'column_host', diff --git a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss index 85477c2184..93ab3c95fa 100644 --- a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss +++ b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss @@ -93,3 +93,7 @@ $breakpoint-l: 1400px; font-size: 13px !important; } } + +.icon { + margin-right: 5px; +} From 549a04223aefc2ee5cd18860b155d06a2a2f44ab Mon Sep 17 00:00:00 2001 From: Zalenski Egor <63463140+zalenskiSofteq@users.noreply.github.com> Date: Sat, 5 Mar 2022 00:38:45 +0300 Subject: [PATCH 2/4] #RI-985 - Display the list of modules per database #RI-2460 - Highlight Redis Stack databases in the list of databases --- .../DatabaseListModules.tsx | 137 +++++++++++------- .../database-list-modules/styles.module.scss | 70 ++++++--- .../DatabasesListWrapper.tsx | 109 ++++++-------- .../DatabasesListComponent/styles.module.scss | 9 ++ redisinsight/ui/src/slices/instances.ts | 9 +- .../ui/src/slices/interfaces/instances.ts | 1 + .../ui/src/slices/tests/instances.spec.ts | 3 +- redisinsight/ui/src/utils/index.ts | 1 + 8 files changed, 192 insertions(+), 147 deletions(-) diff --git a/redisinsight/ui/src/components/database-list-modules/DatabaseListModules.tsx b/redisinsight/ui/src/components/database-list-modules/DatabaseListModules.tsx index 0313568ab8..6ddcf5e44e 100644 --- a/redisinsight/ui/src/components/database-list-modules/DatabaseListModules.tsx +++ b/redisinsight/ui/src/components/database-list-modules/DatabaseListModules.tsx @@ -1,5 +1,6 @@ +/* eslint-disable sonarjs/no-nested-template-literals */ import React, { useContext } from 'react' -import { EuiButton, EuiButtonIcon, EuiToolTip } from '@elastic/eui' +import { EuiButtonIcon, EuiIcon, EuiTextColor, EuiToolTip } from '@elastic/eui' import cx from 'classnames' import { @@ -31,16 +32,14 @@ import { RedisModuleDto } from 'apiSrc/modules/instances/dto/database-instance.d import styles from './styles.module.scss' export interface Props { - modules: RedisModuleDto[]; - inCircle?: boolean; - dark?: boolean; + modules: RedisModuleDto[] + inCircle?: boolean + dark?: boolean + highlight?: boolean + maxViewModules?: number + tooltipTitle?: React.ReactNode } -interface ITooltipProps { - icon: any; - content: any; - abbreviation?: string; -} export const modulesDefaultInit = { [RedisDefaultModules.AI]: { iconDark: RedisAIDark, @@ -79,68 +78,104 @@ export const modulesDefaultInit = { }, } -const DatabaseListModules = React.memo(({ modules, inCircle }: Props) => { +const DatabaseListModules = React.memo(({ modules, inCircle, highlight, tooltipTitle, maxViewModules }: Props) => { const { theme } = useContext(ThemeContext) + const mainContent = [] + const handleCopy = (text = '') => { navigator?.clipboard?.writeText(text) } - const Tooltip = ({ icon, content, abbreviation }: ITooltipProps) => ( - <> - - {icon ? ( - handleCopy(content)} - data-testid={`${content}_module`} - aria-labelledby={`${content}_module`} - /> - ) : ( - handleCopy(content)} - data-testid={`${content}_module`} - aria-labelledby={`${content}_module`} - > - {abbreviation} - - )} - - - ) - - const modulesRender = modules?.map(({ name: propName, semanticVersion = '', version = '' }) => { + const newModules = modules?.map(({ name: propName, semanticVersion = '', version = '' }) => { const moduleName = modulesDefaultInit[propName]?.text || propName const { abbreviation = '', name = moduleName } = getModule(moduleName) const moduleAlias = truncateText(name, 50) // eslint-disable-next-line sonarjs/no-nested-template-literals - const content = `${moduleAlias}${semanticVersion || version ? ` v. ${semanticVersion || version}` : ''}` let icon = modulesDefaultInit[propName]?.[theme === Theme.Dark ? 'iconDark' : 'iconLight'] + const content = `${moduleAlias}${semanticVersion || version ? ` v. ${semanticVersion || version}` : ''}` if (!icon && !abbreviation) { icon = theme === Theme.Dark ? UnknownDark : UnknownLight } - return ( - - ) + mainContent.push({ icon, content, abbreviation }) + + return { + moduleName, + icon, + abbreviation, + content + } }) - return <>{modulesRender} + // set count of hidden modules + if (maxViewModules && newModules.length > maxViewModules) { + newModules.length = maxViewModules + newModules.push({ + icon: null, + content: '', + moduleName: '', + abbreviation: `+${modules.length - maxViewModules}` + }) + } + + const Content = mainContent.map(({ icon, content, abbreviation = '' }) => ( +
+ {!!icon && ()} + {!icon && ( + + {abbreviation} + + )} + {!!content && ({content})} +
+
+ )) + + return ( +
+ + <> + {newModules.map(({ icon, content, abbreviation, moduleName }) => ( + icon ? ( + handleCopy(content)} + data-testid={`${content}_module`} + aria-labelledby={`${content}_module`} + key={moduleName} + /> + ) : ( + handleCopy(content)} + data-testid={`${content}_module`} + aria-labelledby={`${content}_module`} + key={moduleName} + > + {abbreviation} + + )))} + + +
+ ) }) export default DatabaseListModules diff --git a/redisinsight/ui/src/components/database-list-modules/styles.module.scss b/redisinsight/ui/src/components/database-list-modules/styles.module.scss index 121d09db64..4f6e65759c 100644 --- a/redisinsight/ui/src/components/database-list-modules/styles.module.scss +++ b/redisinsight/ui/src/components/database-list-modules/styles.module.scss @@ -1,30 +1,54 @@ -.circle { - background-color: var(--moduleBackgroundColor); - border: none !important; - width: 28px !important; - height: 28px !important; - border-radius: 14px !important; - - &:hover, - &:focus, - &:focus-within { - background-color: var(--moduleBackgroundColor) !important; +.container { + height: 24px; + line-height: 20px; + + &.highlight { + background-color: var(--hoverInListColorLight); + border-radius: 12px; + padding-left: 6px; + padding-right: 6px; } -} -button.icon { - width: 28px !important; - min-width: 28px !important; - max-width: 28px !important; - height: 28px !important; - * { - padding: 0 !important; + &.containerCircle { + height: 28px; } - :global(.euiButton__text) { - font-size: 13px !important; + + .circle { + background-color: var(--moduleBackgroundColor); + border: none !important; + width: 28px !important; + max-width: 28px !important; + height: 27px !important; + border-radius: 50% !important; + margin-right: 14px; + padding: 4px; + + &:hover, + &:focus, + &:focus-within { + background-color: var(--moduleBackgroundColor) !important; + } } } -.anchorCircleIcon { - margin-right: 14px; +.icon { + margin-right: 4px; +} + +.icon img { + width: 18px !important; + max-width: 18px !important; + height: 16px !important; +} + +.tooltipItem:not(:last-of-type) { + padding-bottom: 6px; +} + +.tooltipItemText { + vertical-align: text-top; +} + +.abbr { + vertical-align: text-top; } diff --git a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx index 03e69959a7..15af4a70aa 100644 --- a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx +++ b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/DatabasesListWrapper.tsx @@ -27,13 +27,14 @@ import { Instance, } from 'uiSrc/slices/interfaces' import { resetKeys } from 'uiSrc/slices/keys' -import { PageNames, Pages, Theme } from 'uiSrc/constants' +import { PageNames, Pages } from 'uiSrc/constants' import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry' import { ThemeContext } from 'uiSrc/contexts/themeContext' -import { formatLongName, getDbIndex, getModule, Nullable, replaceSpaces, truncateText } from 'uiSrc/utils' +import { formatLongName, getDbIndex, Nullable, replaceSpaces } from 'uiSrc/utils' import { appContextSelector, setAppContextInitialState } from 'uiSrc/slices/app/context' import { resetCliHelperSettings, resetCliSettingsAction } from 'uiSrc/slices/cli/cli-settings' -import { modulesDefaultInit } from 'uiSrc/components/database-list-modules/DatabaseListModules' +import DatabaseListModules, { ModulesListType } from 'uiSrc/components/database-list-modules/DatabaseListModules' +import RediStackSVG from 'uiSrc/assets/img/modules/RediStack.svg' import { RedisModuleDto } from 'apiSrc/modules/instances/dto/database-instance.dto' import DatabasesList from './DatabasesList/DatabasesList' @@ -213,7 +214,7 @@ const DatabasesListWrapper = ({ truncateText: true, 'data-test-subj': 'database-alias-column', sortable: ({ name }) => name?.toLowerCase(), - width: '50%', + width: '30%', render: function InstanceCell(name: string = '', { id, db }: Instance) { const cellContent = replaceSpaces(name.substring(0, 200)) return ( @@ -243,73 +244,11 @@ const DatabasesListWrapper = ({ ) }, }, - { - field: 'connectionType', - className: 'column_type', - name: 'Connection Type', - dataType: 'string', - sortable: true, - width: '180px', - truncateText: true, - hideForMobile: true, - render: (cellData: ConnectionType) => - CONNECTION_TYPE_DISPLAY[cellData] || capitalize(cellData), - }, - { - field: 'modules', - className: 'column_modules', - name: 'Modules', - width: '14%', - dataType: 'string', - render: (a: RedisModuleDto[] = []) => { - const modules = [{ name: 'custom' }, { name: 'another custom' }, ...a] - - return ( -
- {modules?.map((module) => { - const moduleName = modulesDefaultInit[module.name]?.text || module.name - - console.log(moduleName) - - const { abbreviation = '', name = moduleName } = getModule(moduleName) - - console.log(abbreviation) - - const moduleAlias = truncateText(name, 50) - // eslint-disable-next-line sonarjs/no-nested-template-literals - const content = `${moduleAlias}${module.semanticVersion || module.version ? ` v. ${module.semanticVersion || module.version}` : ''}` - const icon = modulesDefaultInit[module.name]?.[theme === Theme.Dark ? 'iconDark' : 'iconLight'] - - return ( - - {icon ? ( - - ) : ( - - {abbreviation} - - )} - - ) - })} -
- ) - }, - }, { field: 'host', className: 'column_host', name: 'Host:Port', - width: '18%', + width: '35%', dataType: 'string', truncateText: true, sortable: ({ host, port }) => `${host}:${port}`, @@ -334,6 +273,40 @@ const DatabasesListWrapper = ({ ) }, }, + { + field: 'connectionType', + className: 'column_type', + name: 'Connection Type', + dataType: 'string', + sortable: true, + width: '180px', + truncateText: true, + hideForMobile: true, + render: (cellData: ConnectionType) => + CONNECTION_TYPE_DISPLAY[cellData] || capitalize(cellData), + }, + { + field: 'modules', + className: 'column_modules', + name: 'Modules', + width: '150px', + dataType: 'string', + render: (cellData, { modules = [], port, isRediStack }: Instance) => { + return ( + + + Redis Stack + + ) : ''} + /> + ) + }, + }, { field: 'lastConnection', className: 'column_lastConnection', @@ -371,7 +344,7 @@ const DatabasesListWrapper = ({ ] const columnsHideForTablet = ['connectionType'] - const columnsHideForEditing = ['connectionType'] + const columnsHideForEditing = ['connectionType', 'modules'] const columnsTablet = columnsFull.filter( ({ field = '' }) => columnsHideForTablet.indexOf(field) === -1 ) diff --git a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss index 93ab3c95fa..e071efe577 100644 --- a/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss +++ b/redisinsight/ui/src/pages/home/components/DatabasesListComponent/styles.module.scss @@ -97,3 +97,12 @@ $breakpoint-l: 1400px; .icon { margin-right: 5px; } + +.redistackIcon { + width: 22px !important; + max-width: 22px !important; + height: 22px !important; + margin-left: -3px; + margin-right: 6px; + vertical-align: bottom; +} diff --git a/redisinsight/ui/src/slices/instances.ts b/redisinsight/ui/src/slices/instances.ts index d740c7045c..a7c9633d86 100644 --- a/redisinsight/ui/src/slices/instances.ts +++ b/redisinsight/ui/src/slices/instances.ts @@ -7,7 +7,7 @@ import { apiService, localStorageService } from 'uiSrc/services' import { ApiEndpoints, BrowserStorageItem } from 'uiSrc/constants' import { setAppContextInitialState } from 'uiSrc/slices/app/context' import successMessages from 'uiSrc/components/notifications/success-messages' -import { getApiErrorMessage, isStatusSuccessful, Nullable } from 'uiSrc/utils' +import { checkRediStack, getApiErrorMessage, isStatusSuccessful, Nullable } from 'uiSrc/utils' import { DatabaseInstanceResponse } from 'apiSrc/modules/instances/dto/database-instance.dto' import { AppDispatch, RootState } from './store' @@ -31,7 +31,8 @@ export const initialState: InitialStateInstances = { nameFromProvider: '', lastConnection: new Date(), connectionType: ConnectionType.Standalone, - modules: [] + isRediStack: false, + modules: [], }, instanceOverview: { version: '', @@ -48,8 +49,8 @@ const instancesSlice = createSlice({ state.loading = true state.error = '' }, - loadInstancesSuccess: (state, { payload }) => { - state.data = payload + loadInstancesSuccess: (state, { payload }: { payload: Instance[] }) => { + state.data = checkRediStack(payload) state.loading = false }, loadInstancesFailure: (state, { payload }) => { diff --git a/redisinsight/ui/src/slices/interfaces/instances.ts b/redisinsight/ui/src/slices/interfaces/instances.ts index e467899ec0..72dcb46c82 100644 --- a/redisinsight/ui/src/slices/interfaces/instances.ts +++ b/redisinsight/ui/src/slices/interfaces/instances.ts @@ -36,6 +36,7 @@ export interface Instance extends DatabaseInstanceResponse { isDeleting?: boolean; sentinelMaster?: SentinelMasterDto; modules: RedisModuleDto[]; + isRediStack: boolean; } export enum ConnectionType { diff --git a/redisinsight/ui/src/slices/tests/instances.spec.ts b/redisinsight/ui/src/slices/tests/instances.spec.ts index e443a2a6ca..f5d848075e 100644 --- a/redisinsight/ui/src/slices/tests/instances.spec.ts +++ b/redisinsight/ui/src/slices/tests/instances.spec.ts @@ -9,6 +9,7 @@ import { import { apiErrors } from 'uiSrc/constants' import { apiService } from 'uiSrc/services' import successMessages from 'uiSrc/components/notifications/success-messages' +import { checkRediStack } from 'uiSrc/utils' import reducer, { initialState, @@ -241,7 +242,7 @@ describe('instances slice', () => { const state = { ...initialState, loading: false, - data: instances, + data: checkRediStack(instances), } // Act diff --git a/redisinsight/ui/src/utils/index.ts b/redisinsight/ui/src/utils/index.ts index a39f554bde..79d5c91ab1 100644 --- a/redisinsight/ui/src/utils/index.ts +++ b/redisinsight/ui/src/utils/index.ts @@ -35,6 +35,7 @@ export * from './monacoDecorations' export * from './monitorUtils' export * from './handlePlatforms' export * from './plugins' +export * from './redistack' export { Maybe, From 878a25b9f47085312ab8715ba44af8f733f341bb Mon Sep 17 00:00:00 2001 From: Zalenski Egor <63463140+zalenskiSofteq@users.noreply.github.com> Date: Sat, 5 Mar 2022 00:41:30 +0300 Subject: [PATCH 3/4] added files --- .../ui/src/assets/img/modules/RediStack.svg | 8 +++++ redisinsight/ui/src/utils/redistack.ts | 30 +++++++++++++++++++ .../ui/src/utils/tests/redistack.spec.ts | 24 +++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 redisinsight/ui/src/assets/img/modules/RediStack.svg create mode 100644 redisinsight/ui/src/utils/redistack.ts create mode 100644 redisinsight/ui/src/utils/tests/redistack.spec.ts diff --git a/redisinsight/ui/src/assets/img/modules/RediStack.svg b/redisinsight/ui/src/assets/img/modules/RediStack.svg new file mode 100644 index 0000000000..829fdb03c6 --- /dev/null +++ b/redisinsight/ui/src/assets/img/modules/RediStack.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/redisinsight/ui/src/utils/redistack.ts b/redisinsight/ui/src/utils/redistack.ts new file mode 100644 index 0000000000..bd183a3a24 --- /dev/null +++ b/redisinsight/ui/src/utils/redistack.ts @@ -0,0 +1,30 @@ +import { map, isEqual } from 'lodash' +import { Instance } from 'uiSrc/slices/interfaces' + +export const REDISTACK_PORT = 6379 +export const REDISTACK_MODULES = ['ReJSON', 'graph', 'timeseries', 'search', 'bf'].sort() + +const checkRediStack = (instances: Instance[]): Instance[] => { + let isRediStack = false + + let newInstances = instances.map((instance) => { + isRediStack = instance.port === REDISTACK_PORT && isEqual(map(instance.modules, 'name').sort(), REDISTACK_MODULES) + return { + ...instance, + isRediStack + } + }) + + if (!isRediStack) { + newInstances = newInstances.map((instance) => ({ + ...instance, + isRediStack: isEqual(map(instance.modules, 'name').sort(), REDISTACK_MODULES) + })) + } + + console.log(instances, newInstances) + + return newInstances +} + +export { checkRediStack } diff --git a/redisinsight/ui/src/utils/tests/redistack.spec.ts b/redisinsight/ui/src/utils/tests/redistack.spec.ts new file mode 100644 index 0000000000..74b8fb6b49 --- /dev/null +++ b/redisinsight/ui/src/utils/tests/redistack.spec.ts @@ -0,0 +1,24 @@ +import { checkRediStack, REDISTACK_MODULES, REDISTACK_PORT } from 'uiSrc/utils' + +const unmapWithName = (arr: any[]) => arr.map((item) => ({ name: item })) + +const REDISTACK_MODULE_DEFAULT = unmapWithName(REDISTACK_MODULES) + +const getOutputCheckRediStackTests: any[] = [ + [[{ port: REDISTACK_PORT, modules: REDISTACK_MODULE_DEFAULT }], + [{ port: REDISTACK_PORT, modules: REDISTACK_MODULE_DEFAULT, isRediStack: true }]], + [[{ port: REDISTACK_PORT, modules: unmapWithName(['']) }], [{ port: REDISTACK_PORT, modules: unmapWithName(['']), isRediStack: false }]], + [[{ port: REDISTACK_PORT, modules: unmapWithName(['search']) }], [{ port: REDISTACK_PORT, modules: unmapWithName(['search']), isRediStack: false }]], + [[{ port: REDISTACK_PORT, modules: unmapWithName(['bf', 'search', 'timeseries']) }], [{ port: REDISTACK_PORT, modules: unmapWithName(['bf', 'search', 'timeseries']), isRediStack: false }]], + [[{ port: 12000, modules: REDISTACK_MODULE_DEFAULT }], + [{ port: 12000, modules: REDISTACK_MODULE_DEFAULT, isRediStack: true }]], + [[{ port: 12000, modules: unmapWithName(['search']) }], [{ port: 12000, modules: unmapWithName(['search']), isRediStack: false }]], +] + +describe('checkRediStack', () => { + it.each(getOutputCheckRediStackTests)('for input: %s (reply), should be output: %s', + (reply, expected) => { + const result = checkRediStack(reply) + expect(result).toStrictEqual(expected) + }) +}) From 7ea30806f227d7e54e9a8b3bc5c3f4396e840aca Mon Sep 17 00:00:00 2001 From: Zalenski Egor <63463140+zalenskiSofteq@users.noreply.github.com> Date: Wed, 9 Mar 2022 11:15:46 +0300 Subject: [PATCH 4/4] remove console.log --- redisinsight/ui/src/utils/redistack.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/redisinsight/ui/src/utils/redistack.ts b/redisinsight/ui/src/utils/redistack.ts index bd183a3a24..57c4874b90 100644 --- a/redisinsight/ui/src/utils/redistack.ts +++ b/redisinsight/ui/src/utils/redistack.ts @@ -22,8 +22,6 @@ const checkRediStack = (instances: Instance[]): Instance[] => { })) } - console.log(instances, newInstances) - return newInstances }