Skip to content

Commit a414e85

Browse files
authored
Merge pull request #777 from RedisInsight/feature/RI-2993_clear-pubsub-messages
#RI-2993 - clear pubsub messages
2 parents 2dec94b + 2474c3c commit a414e85

File tree

2 files changed

+45
-16
lines changed

2 files changed

+45
-16
lines changed

redisinsight/ui/src/pages/pubSub/components/subscription-panel/SubscriptionPanel.tsx

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiIcon, EuiText } from '@elastic/eui'
1+
import { EuiButton, EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiIcon, EuiText, EuiToolTip } from '@elastic/eui'
2+
import cx from 'classnames'
23
import React, { useContext } from 'react'
34
import { useDispatch, useSelector } from 'react-redux'
45
import { Theme } from 'uiSrc/constants'
56
import { ThemeContext } from 'uiSrc/contexts/themeContext'
67
import { PUB_SUB_DEFAULT_CHANNEL } from 'uiSrc/pages/pubSub/PubSubPage'
7-
import { pubSubSelector, toggleSubscribeTriggerPubSub } from 'uiSrc/slices/pubsub/pubsub'
8+
import { clearPubSubMessages, pubSubSelector, toggleSubscribeTriggerPubSub } from 'uiSrc/slices/pubsub/pubsub'
89

910
import { ReactComponent as UserInCircle } from 'uiSrc/assets/img/icons/user_in_circle.svg'
1011
import SubscribedIconDark from 'uiSrc/assets/img/pub-sub/subscribed.svg'
@@ -15,7 +16,7 @@ import NotSubscribedIconLight from 'uiSrc/assets/img/pub-sub/not-subscribed-lt.s
1516
import styles from './styles.module.scss'
1617

1718
const SubscriptionPanel = () => {
18-
const { isSubscribed, loading, count } = useSelector(pubSubSelector)
19+
const { messages, isSubscribed, loading, count } = useSelector(pubSubSelector)
1920

2021
const dispatch = useDispatch()
2122
const { theme } = useContext(ThemeContext)
@@ -24,6 +25,10 @@ const SubscriptionPanel = () => {
2425
dispatch(toggleSubscribeTriggerPubSub([PUB_SUB_DEFAULT_CHANNEL]))
2526
}
2627

28+
const onClickClear = () => {
29+
dispatch(clearPubSubMessages())
30+
}
31+
2732
const subscribedIcon = theme === Theme.Dark ? SubscribedIconDark : SubscribedIconLight
2833
const notSubscribedIcon = theme === Theme.Dark ? NotSubscribedIconDark : NotSubscribedIconLight
2934

@@ -53,19 +58,38 @@ const SubscriptionPanel = () => {
5358

5459
</EuiFlexItem>
5560
<EuiFlexItem grow={false}>
56-
<EuiButton
57-
fill={!isSubscribed}
58-
size="s"
59-
color="secondary"
60-
className={styles.buttonSubscribe}
61-
type="submit"
62-
onClick={toggleSubscribe}
63-
iconType={isSubscribed ? 'minusInCircle' : UserInCircle}
64-
data-testid="btn-submit"
65-
disabled={loading}
66-
>
67-
{ isSubscribed ? 'Unsubscribe' : 'Subscribe' }
68-
</EuiButton>
61+
<EuiFlexGroup alignItems="center" gutterSize="none" responsive={false}>
62+
{!!messages.length && (
63+
<EuiFlexItem grow={false} style={{ marginRight: 12 }}>
64+
<EuiToolTip
65+
content="Clear Messages"
66+
anchorClassName={cx('inline-flex')}
67+
>
68+
<EuiButtonIcon
69+
iconType="eraser"
70+
onClick={onClickClear}
71+
aria-label="clear pub sub"
72+
data-testid="clear-pubsub-btn"
73+
/>
74+
</EuiToolTip>
75+
</EuiFlexItem>
76+
)}
77+
<EuiFlexItem grow={false}>
78+
<EuiButton
79+
fill={!isSubscribed}
80+
size="s"
81+
color="secondary"
82+
className={styles.buttonSubscribe}
83+
type="submit"
84+
onClick={toggleSubscribe}
85+
iconType={isSubscribed ? 'minusInCircle' : UserInCircle}
86+
data-testid="btn-submit"
87+
disabled={loading}
88+
>
89+
{ isSubscribed ? 'Unsubscribe' : 'Subscribe' }
90+
</EuiButton>
91+
</EuiFlexItem>
92+
</EuiFlexGroup>
6993
</EuiFlexItem>
7094
</EuiFlexGroup>
7195
)

redisinsight/ui/src/slices/pubsub/pubsub.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ const pubSubSlice = createSlice({
5757

5858
state.messages = newItems
5959
},
60+
clearPubSubMessages: (state) => {
61+
state.messages = []
62+
state.count = 0
63+
},
6064
setLoading: (state, { payload }: PayloadAction<boolean>) => {
6165
state.loading = payload
6266
},
@@ -87,6 +91,7 @@ export const {
8791
setIsPubSubSubscribed,
8892
setIsPubSubUnSubscribed,
8993
concatPubSubMessages,
94+
clearPubSubMessages,
9095
setLoading,
9196
disconnectPubSub,
9297
publishMessage,

0 commit comments

Comments
 (0)