@@ -13,6 +13,9 @@ let bannerState;
1313
1414function renderSpacesList ( spaces ) {
1515 let spaceEl ;
16+
17+ // Clear globalSelectedSpace at the start - it will be set if we find a match
18+ globalSelectedSpace = null ;
1619
1720 nodes . openSpaces . innerHTML = '' ;
1821 nodes . closedSpaces . innerHTML = '' ;
@@ -46,14 +49,17 @@ function renderSpaceListEl(space) {
4649 linkEl . innerHTML = UNSAVED_SESSION ;
4750 }
4851
52+ // Check if this space should be selected based on current hash
53+ const currentSessionId = getHashVariable ( 'sessionId' , window . location . href ) ;
54+ const currentWindowId = getHashVariable ( 'windowId' , window . location . href ) ;
55+
4956 if (
50- globalSelectedSpace &&
51- ( ( space . windowId &&
52- globalSelectedSpace . windowId === space . windowId ) ||
53- ( space . sessionId &&
54- globalSelectedSpace . sessionId === space . sessionId ) )
57+ ( currentSessionId && space . sessionId && currentSessionId == space . sessionId ) ||
58+ ( currentWindowId && space . windowId && currentWindowId == space . windowId )
5559 ) {
5660 linkEl . className = 'selected' ;
61+ // Also update globalSelectedSpace for the detail view
62+ globalSelectedSpace = space ;
5763 }
5864
5965 // if (space && !space.windowId) {
@@ -541,9 +547,10 @@ async function performRestoreFromBackup(spaces) {
541547
542548function addEventListeners ( ) {
543549 // register hashchange listener
544- window . onhashchange = ( ) => {
545- updateSpacesList ( ) ;
546- updateSpaceDetail ( ) ;
550+ window . onhashchange = async ( ) => {
551+ await updateSpacesList ( ) ;
552+ // Update the detail view using the globalSelectedSpace set by updateSpacesList
553+ await updateSpaceDetail ( true ) ;
547554 } ;
548555
549556 // register incoming events listener
@@ -653,15 +660,10 @@ async function updateSpaceDetail(useCachedSpace) {
653660 } else if ( sessionId || windowId ) {
654661 const space = await fetchSpaceDetail ( sessionId , windowId ) ;
655662 addDuplicateMetadata ( space ) ;
656-
657- // cache current selected space
658- globalSelectedSpace = space ;
659663 renderSpaceDetail ( space , editMode ) ;
660664
661665 // otherwise hide space detail view
662666 } else {
663- // clear cache
664- globalSelectedSpace = false ;
665667 renderSpaceDetail ( false , false ) ;
666668 }
667669}
0 commit comments