Skip to content

Commit 9c96148

Browse files
authored
Merge pull request #1475 from RedisInsight/fe/bugfix/RI-3796_fix-bulk-actions-context
#RI-3796 - fix bulk actions context
2 parents 589e1f8 + 93bd6e1 commit 9c96148

File tree

3 files changed

+32
-7
lines changed

3 files changed

+32
-7
lines changed

redisinsight/ui/src/pages/browser/BrowserPage.spec.tsx

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,20 @@ import { render, screen, fireEvent, mockedStore, cleanup } from 'uiSrc/utils/tes
55
import { setConnectedInstanceId } from 'uiSrc/slices/instances/instances'
66
import { loadKeys, resetKeyInfo, toggleBrowserFullScreen } from 'uiSrc/slices/browser/keys'
77
import { resetErrors } from 'uiSrc/slices/app/notifications'
8-
import { setBrowserBulkActionOpen } from 'uiSrc/slices/app/context'
8+
import {
9+
setBrowserBulkActionOpen,
10+
setBrowserPanelSizes,
11+
setBrowserSelectedKey,
12+
setLastPageContext
13+
} from 'uiSrc/slices/app/context'
914
import BrowserPage from './BrowserPage'
1015
import KeyList, { Props as KeyListProps } from './components/key-list/KeyList'
1116
import KeyDetailsWrapper, {
1217
Props as KeyDetailsWrapperProps
1318
} from './components/key-details/KeyDetailsWrapper'
1419
import AddKey, { Props as AddKeyProps } from './components/add-key/AddKey'
15-
import KeysHeader, { Props as KeysHeaderProps } from './components/keys-header'
20+
import KeysHeader from './components/keys-header'
21+
import { Props as KeysHeaderProps } from './components/keys-header/KeysHeader'
1622

1723
jest.mock('./components/key-list/KeyList', () => ({
1824
__esModule: true,
@@ -123,7 +129,7 @@ describe('BrowserPage', () => {
123129

124130
fireEvent.click(screen.getByTestId('handleBulkActionsPanel-btn'))
125131

126-
const expectedActions = [resetKeyInfo(), toggleBrowserFullScreen(false), setBrowserBulkActionOpen(true)]
132+
const expectedActions = [resetKeyInfo(), toggleBrowserFullScreen(false)]
127133
expect(store.getActions()).toEqual([...afterRenderActions, ...expectedActions])
128134
})
129135

@@ -144,4 +150,20 @@ describe('BrowserPage', () => {
144150

145151
expect(store.getActions()).toEqual([...afterRenderActions, toggleBrowserFullScreen(true)])
146152
})
153+
154+
it('should call proper actions on onmount', () => {
155+
const { unmount } = render(<BrowserPage />)
156+
const afterRenderActions = [...store.getActions()]
157+
158+
unmount()
159+
160+
const unmountActions = [
161+
setBrowserPanelSizes(expect.any(Object)),
162+
setBrowserBulkActionOpen(expect.any(Boolean)),
163+
setBrowserSelectedKey(null),
164+
setLastPageContext('browser'),
165+
]
166+
167+
expect(store.getActions()).toEqual([...afterRenderActions, ...unmountActions])
168+
})
147169
})

redisinsight/ui/src/pages/browser/BrowserPage.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
appContextBrowser,
2828
setBrowserPanelSizes,
2929
setLastPageContext,
30+
setBrowserBulkActionOpen,
3031
} from 'uiSrc/slices/app/context'
3132
import { resetErrors } from 'uiSrc/slices/app/notifications'
3233
import { appAnalyticsInfoSelector } from 'uiSrc/slices/app/info'
@@ -68,6 +69,7 @@ const BrowserPage = () => {
6869

6970
const prevSelectedType = useRef<string>(type)
7071
const selectedKeyRef = useRef<Nullable<RedisResponseBuffer>>(selectedKey)
72+
const isBulkActionsPanelOpenRef = useRef<boolean>(isBulkActionsPanelOpen)
7173

7274
const dispatch = useDispatch()
7375

@@ -86,11 +88,16 @@ const BrowserPage = () => {
8688
dispatch(setBrowserPanelSizes(prevSizes))
8789
return {}
8890
})
91+
dispatch(setBrowserBulkActionOpen(isBulkActionsPanelOpenRef.current))
8992
dispatch(setBrowserSelectedKey(selectedKeyRef.current))
9093
dispatch(setLastPageContext('browser'))
9194
}
9295
}, [])
9396

97+
useEffect(() => {
98+
isBulkActionsPanelOpenRef.current = isBulkActionsPanelOpen
99+
}, [isBulkActionsPanelOpen])
100+
94101
useEffect(() => {
95102
selectedKeyRef.current = selectedKey
96103
}, [selectedKey])

redisinsight/ui/src/pages/browser/components/bulk-actions/BulkActions.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import {
2222
import { BulkActionsType } from 'uiSrc/constants'
2323
import { keysSelector } from 'uiSrc/slices/browser/keys'
2424
import { getMatchType, sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
25-
import { setBrowserBulkActionOpen } from 'uiSrc/slices/app/context'
2625

2726
import BulkDelete from './BulkDelete'
2827
import BulkActionsTabs from './BulkActionsTabs'
@@ -52,8 +51,6 @@ const BulkActions = (props: Props) => {
5251

5352
const dispatch = useDispatch()
5453
useEffect(() => {
55-
dispatch(setBrowserBulkActionOpen(true))
56-
5754
let matchValue = '*'
5855
if (search !== '*' && !!search) {
5956
matchValue = getMatchType(search)
@@ -86,7 +83,6 @@ const BulkActions = (props: Props) => {
8683
const closePanel = () => {
8784
onBulkActionsPanel(false)
8885
dispatch(setBulkActionsInitialState())
89-
dispatch(setBrowserBulkActionOpen(false))
9086

9187
onClosePanel()
9288

0 commit comments

Comments
 (0)