Skip to content

Commit 47b7469

Browse files
committed
#RI-6081 - fix context selected key
1 parent 0c23dbe commit 47b7469

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import { KeyViewType } from 'uiSrc/slices/interfaces/keys'
4343
import { SCAN_COUNT_DEFAULT, SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'
4444
import OnboardingStartPopover from 'uiSrc/pages/browser/components/onboarding-start-popover'
4545
import { sidePanelsSelector } from 'uiSrc/slices/panels/sidePanels'
46+
import { useStateWithContext } from 'uiSrc/services/hooks'
4647
import BrowserSearchPanel from './components/browser-search-panel'
4748
import BrowserLeftPanel from './components/browser-left-panel'
4849
import BrowserRightPanel from './components/browser-right-panel'
@@ -76,15 +77,12 @@ const BrowserPage = () => {
7677

7778
const [isPageViewSent, setIsPageViewSent] = useState(false)
7879
const [arePanelsCollapsed, setArePanelsCollapsed] = useState(isOneSideMode(!!openedSidePanel))
79-
const [selectedKey, setSelectedKey] = useState<Nullable<RedisResponseBuffer>>(
80-
contextInstanceId === instanceId
81-
? selectedKeyContext
82-
: null
83-
)
8480
const [isAddKeyPanelOpen, setIsAddKeyPanelOpen] = useState(false)
8581
const [isCreateIndexPanelOpen, setIsCreateIndexPanelOpen] = useState(false)
8682
const [isBulkActionsPanelOpen, setIsBulkActionsPanelOpen] = useState(bulkActionOpenContext)
8783

84+
const [selectedKey, setSelectedKey] = useStateWithContext<Nullable<RedisResponseBuffer>>(selectedKeyContext, null)
85+
8886
const [sizes, setSizes] = useState(panelSizes)
8987

9088
const prevSelectedType = useRef<string>(type)
@@ -125,8 +123,8 @@ const BrowserPage = () => {
125123
}, [isBulkActionsPanelOpen])
126124

127125
useEffect(() => {
128-
setSelectedKey(selectedKeyContext)
129-
}, [selectedKeyContext])
126+
if (contextInstanceId === instanceId) setSelectedKey(selectedKeyContext)
127+
}, [selectedKeyContext, contextInstanceId])
130128

131129
useEffect(() => {
132130
selectedKeyRef.current = selectedKey
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from './hooks'
22
export * from './useWebworkers'
33
export * from './useCabability'
4+
export * from './useStateWithContext'
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { useSelector } from 'react-redux'
2+
import { useState } from 'react'
3+
import { useParams } from 'react-router-dom'
4+
import { appContextSelector } from 'uiSrc/slices/app/context'
5+
6+
export const useStateWithContext = <T>(value: T, initialValue: T) => {
7+
const { instanceId } = useParams<{ instanceId: string }>()
8+
const { contextInstanceId } = useSelector(appContextSelector)
9+
10+
return useState<T>(instanceId === contextInstanceId ? value : initialValue)
11+
}

0 commit comments

Comments
 (0)