Skip to content

Commit cea58cd

Browse files
committed
#RI-4825 - fix closing selected key after deleting from list
1 parent 2b0c162 commit cea58cd

File tree

5 files changed

+21
-12
lines changed

5 files changed

+21
-12
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ const BrowserPage = () => {
163163
setIsBulkActionsPanelOpen(value)
164164
}, [])
165165

166+
const handleRemoveSelectedKey = useCallback(() => {
167+
handlePanel(true)
168+
}, [])
169+
166170
const handleCreateIndexPanel = useCallback((value: boolean) => {
167171
handlePanel(value)
168172
setIsCreateIndexPanelOpen(value)
@@ -231,8 +235,9 @@ const BrowserPage = () => {
231235
}}
232236
>
233237
<BrowserLeftPanel
238+
selectedKey={selectedKey}
234239
selectKey={selectKey}
235-
setSelectedKey={setSelectedKey}
240+
removeSelectedKey={handleRemoveSelectedKey}
236241
/>
237242
</EuiResizablePanel>
238243

@@ -268,7 +273,6 @@ const BrowserPage = () => {
268273
isBulkActionsPanelOpen={isBulkActionsPanelOpen}
269274
handleAddKeyPanel={handleAddKeyPanel}
270275
handleBulkActionsPanel={handleBulkActionsPanel}
271-
handleCreateIndexPanel={handleCreateIndexPanel}
272276
closeRightPanels={closeRightPanels}
273277
/>
274278
</EuiResizablePanel>

redisinsight/ui/src/pages/browser/components/browser-left-panel/BrowserLeftPanel.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { IKeyPropTypes } from 'uiSrc/constants/prop-types/keys'
1818
import { setConnectedInstanceId } from 'uiSrc/slices/instances/instances'
1919
import { SCAN_COUNT_DEFAULT, SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'
2020
import { redisearchDataSelector, redisearchListSelector, redisearchSelector } from 'uiSrc/slices/browser/redisearch'
21-
import { Nullable } from 'uiSrc/utils'
21+
import { isEqualBuffers, Nullable } from 'uiSrc/utils'
2222
import { RedisResponseBuffer } from 'uiSrc/slices/interfaces'
2323
import { KeyTypes } from 'uiSrc/constants'
2424

@@ -29,14 +29,16 @@ import KeysHeader from '../keys-header'
2929
import styles from './styles.module.scss'
3030

3131
export interface Props {
32+
selectedKey: Nullable<RedisResponseBuffer>
3233
selectKey: ({ rowData }: { rowData: any }) => void
33-
setSelectedKey: (keyName: Nullable<RedisResponseBuffer>) => void
34+
removeSelectedKey: () => void
3435
}
3536

3637
const BrowserLeftPanel = (props: Props) => {
3738
const {
39+
selectedKey,
3840
selectKey,
39-
setSelectedKey,
41+
removeSelectedKey,
4042
} = props
4143

4244
const { instanceId } = useParams<{ instanceId: string }>()
@@ -106,8 +108,12 @@ const BrowserLeftPanel = (props: Props) => {
106108
}
107109

108110
const onDeleteKey = useCallback(
109-
() => setSelectedKey(null),
110-
[],
111+
(key: RedisResponseBuffer) => {
112+
if (isEqualBuffers(key, selectedKey)) {
113+
removeSelectedKey()
114+
}
115+
},
116+
[selectedKey],
111117
)
112118

113119
return (

redisinsight/ui/src/pages/browser/components/browser-right-panel/BrowserRightPanel.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export interface Props {
2828
isBulkActionsPanelOpen: boolean
2929
handleBulkActionsPanel: (value: boolean) => void
3030
isCreateIndexPanelOpen: boolean
31-
handleCreateIndexPanel?: (value: boolean) => void
3231
closeRightPanels: () => void
3332
}
3433

redisinsight/ui/src/pages/browser/components/key-list/KeyList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export interface Props {
7373
oldKeys: IKeyPropTypes[],
7474
{ startIndex, stopIndex }: { startIndex: number, stopIndex: number },
7575
) => void
76-
onDelete: () => void
76+
onDelete: (key: RedisResponseBuffer) => void
7777
commonFilterType: Nullable<KeyTypes>
7878
}
7979

@@ -251,7 +251,7 @@ const KeyList = forwardRef((props: Props, ref) => {
251251
const handleRemoveKey = (key: RedisResponseBuffer) => {
252252
dispatch(deleteKeyAction(key, () => {
253253
setDeletePopoverIndex(undefined)
254-
onDelete()
254+
onDelete(key)
255255
}))
256256
}
257257

redisinsight/ui/src/pages/browser/components/key-tree/KeyTree.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { KeysStoreData } from 'uiSrc/slices/interfaces/keys'
1818
import { Nullable, bufferToString } from 'uiSrc/utils'
1919
import { IKeyPropTypes } from 'uiSrc/constants/prop-types/keys'
2020
import { KeyTypes } from 'uiSrc/constants'
21+
import { RedisResponseBuffer } from 'uiSrc/slices/interfaces'
2122
import { GetKeyInfoResponse } from 'apiSrc/modules/browser/dto'
2223
import KeyTreeDelimiter from './KeyTreeDelimiter'
2324

@@ -33,7 +34,7 @@ export interface Props {
3334
oldKeys: IKeyPropTypes[],
3435
{ startIndex, stopIndex }: { startIndex: number, stopIndex: number },
3536
) => void
36-
onDelete: () => void
37+
onDelete: (key: RedisResponseBuffer) => void
3738
}
3839

3940
export const firstPanelId = 'tree'
@@ -224,7 +225,6 @@ const KeyTree = forwardRef((props: Props, ref) => {
224225
</>
225226
)}
226227
</EuiResizableContainer>
227-
228228
</div>
229229
</div>
230230
</div>

0 commit comments

Comments
 (0)