Skip to content

Commit 0bfd057

Browse files
#RI-3037-add spublish check (#781)
* #RI-3037-add spublish check
1 parent 69c2888 commit 0bfd057

File tree

4 files changed

+45
-7
lines changed

4 files changed

+45
-7
lines changed

redisinsight/ui/src/constants/commandsVersions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,7 @@ export const CommandsVersions = {
55
FILTER_PER_KEY_TYPES: {
66
since: '6.0',
77
},
8+
SPUBLISH_NOT_SUPPORTED: {
9+
since: '7.0',
10+
},
811
}

redisinsight/ui/src/pages/pubSub/components/messages-list/EmptyMessagesList/EmptyMessagesList.spec.tsx

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,31 @@ import EmptyMessagesList from './EmptyMessagesList'
77
describe('EmptyMessagesList', () => {
88
it('should render', () => {
99
expect(
10-
render(<EmptyMessagesList />)
10+
render(<EmptyMessagesList isSpublishNotSupported />)
1111
).toBeTruthy()
1212
})
1313

1414
it('should render cluster info for Cluster connection type', () => {
15-
const { queryByTestId } = render(<EmptyMessagesList connectionType={ConnectionType.Cluster} />)
15+
const { queryByTestId } = render(
16+
<EmptyMessagesList connectionType={ConnectionType.Cluster} isSpublishNotSupported />
17+
)
1618

1719
expect(queryByTestId('empty-messages-list-cluster')).toBeInTheDocument()
1820
})
21+
22+
it('should render cluster info for Cluster connection type', () => {
23+
const { queryByTestId } = render(
24+
<EmptyMessagesList isSpublishNotSupported />
25+
)
26+
27+
expect(queryByTestId('empty-messages-list-cluster')).toBeInTheDocument()
28+
})
29+
30+
it('should not render cluster info for Cluster connection type', () => {
31+
const { queryByTestId } = render(
32+
<EmptyMessagesList isSpublishNotSupported={false} />
33+
)
34+
35+
expect(queryByTestId('empty-messages-list-cluster')).not.toBeInTheDocument()
36+
})
1937
})

redisinsight/ui/src/pages/pubSub/components/messages-list/EmptyMessagesList/EmptyMessagesList.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ import styles from './styles.module.scss'
88

99
export interface Props {
1010
connectionType?: ConnectionType
11+
isSpublishNotSupported: boolean
1112
}
1213

13-
const EmptyMessagesList = ({ connectionType }: Props) => (
14+
const EmptyMessagesList = ({ connectionType, isSpublishNotSupported }: Props) => (
1415
<div className={styles.container} data-testid="empty-messages-list">
1516
<div className={cx(styles.content, { [styles.contentCluster]: connectionType === ConnectionType.Cluster })}>
1617
<EuiText className={styles.title}>No messages to display</EuiText>
@@ -21,7 +22,7 @@ const EmptyMessagesList = ({ connectionType }: Props) => (
2122
<EuiIcon type="alert" className={styles.alertIcon} />
2223
Running in production may decrease performance and memory available
2324
</EuiText>
24-
{connectionType === ConnectionType.Cluster && (
25+
{(connectionType === ConnectionType.Cluster || isSpublishNotSupported) && (
2526
<>
2627
<div className={styles.separator} />
2728
<EuiText className={styles.cluster} data-testid="empty-messages-list-cluster">

redisinsight/ui/src/pages/pubSub/components/messages-list/MessagesListWrapper.tsx

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import React from 'react'
1+
import React, { useState, useEffect } from 'react'
22
import { useSelector } from 'react-redux'
33
import AutoSizer from 'react-virtualized-auto-sizer'
44

5-
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
5+
import { connectedInstanceSelector, connectedInstanceOverviewSelector } from 'uiSrc/slices/instances/instances'
66
import { pubSubSelector } from 'uiSrc/slices/pubsub/pubsub'
7+
import { isVersionHigherOrEquals } from 'uiSrc/utils'
8+
import { CommandsVersions } from 'uiSrc/constants/commandsVersions'
79
import EmptyMessagesList from './EmptyMessagesList'
810
import MessagesList from './MessagesList'
911

@@ -12,6 +14,18 @@ import styles from './MessagesList/styles.module.scss'
1214
const MessagesListWrapper = () => {
1315
const { messages = [], isSubscribed } = useSelector(pubSubSelector)
1416
const { connectionType } = useSelector(connectedInstanceSelector)
17+
const { version } = useSelector(connectedInstanceOverviewSelector)
18+
19+
const [isSpublishNotSupported, setIsSpublishNotSupported] = useState<boolean>(true)
20+
21+
useEffect(() => {
22+
setIsSpublishNotSupported(
23+
isVersionHigherOrEquals(
24+
version,
25+
CommandsVersions.SPUBLISH_NOT_SUPPORTED.since
26+
)
27+
)
28+
}, [version])
1529

1630
return (
1731
<>
@@ -35,7 +49,9 @@ const MessagesListWrapper = () => {
3549
</div>
3650
</div>
3751
)}
38-
{messages.length === 0 && !isSubscribed && <EmptyMessagesList connectionType={connectionType} />}
52+
{messages.length === 0 && !isSubscribed && (
53+
<EmptyMessagesList isSpublishNotSupported={isSpublishNotSupported} connectionType={connectionType} />
54+
)}
3955
</>
4056
)
4157
}

0 commit comments

Comments
 (0)