@@ -33,6 +33,7 @@ import {
33
33
setBrowserPanelSizes ,
34
34
setLastPageContext ,
35
35
setBrowserBulkActionOpen ,
36
+ appContextSelector ,
36
37
} from 'uiSrc/slices/app/context'
37
38
import { resetErrors } from 'uiSrc/slices/app/notifications'
38
39
import { RedisResponseBuffer } from 'uiSrc/slices/interfaces'
@@ -42,6 +43,7 @@ import { KeyViewType } from 'uiSrc/slices/interfaces/keys'
42
43
import { SCAN_COUNT_DEFAULT , SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'
43
44
import OnboardingStartPopover from 'uiSrc/pages/browser/components/onboarding-start-popover'
44
45
import { sidePanelsSelector } from 'uiSrc/slices/panels/sidePanels'
46
+ import { useStateWithContext } from 'uiSrc/services/hooks'
45
47
import BrowserSearchPanel from './components/browser-search-panel'
46
48
import BrowserLeftPanel from './components/browser-left-panel'
47
49
import BrowserRightPanel from './components/browser-right-panel'
@@ -66,18 +68,21 @@ const BrowserPage = () => {
66
68
keyList : { selectedKey : selectedKeyContext } ,
67
69
bulkActions : { opened : bulkActionOpenContext } ,
68
70
} = useSelector ( appContextBrowser )
71
+ const { contextInstanceId } = useSelector ( appContextSelector )
72
+
69
73
const { isBrowserFullScreen } = useSelector ( keysSelector )
70
74
const { type } = useSelector ( selectedKeyDataSelector ) ?? { type : '' , length : 0 }
71
75
const { viewType, searchMode } = useSelector ( keysSelector )
72
76
const { openedPanel : openedSidePanel } = useSelector ( sidePanelsSelector )
73
77
74
78
const [ isPageViewSent , setIsPageViewSent ] = useState ( false )
75
79
const [ arePanelsCollapsed , setArePanelsCollapsed ] = useState ( isOneSideMode ( ! ! openedSidePanel ) )
76
- const [ selectedKey , setSelectedKey ] = useState < Nullable < RedisResponseBuffer > > ( selectedKeyContext )
77
80
const [ isAddKeyPanelOpen , setIsAddKeyPanelOpen ] = useState ( false )
78
81
const [ isCreateIndexPanelOpen , setIsCreateIndexPanelOpen ] = useState ( false )
79
82
const [ isBulkActionsPanelOpen , setIsBulkActionsPanelOpen ] = useState ( bulkActionOpenContext )
80
83
84
+ const [ selectedKey , setSelectedKey ] = useStateWithContext < Nullable < RedisResponseBuffer > > ( selectedKeyContext , null )
85
+
81
86
const [ sizes , setSizes ] = useState ( panelSizes )
82
87
83
88
const prevSelectedType = useRef < string > ( type )
@@ -118,8 +123,8 @@ const BrowserPage = () => {
118
123
} , [ isBulkActionsPanelOpen ] )
119
124
120
125
useEffect ( ( ) => {
121
- setSelectedKey ( selectedKeyContext )
122
- } , [ selectedKeyContext ] )
126
+ if ( contextInstanceId === instanceId ) setSelectedKey ( selectedKeyContext )
127
+ } , [ selectedKeyContext , contextInstanceId ] )
123
128
124
129
useEffect ( ( ) => {
125
130
selectedKeyRef . current = selectedKey
0 commit comments