Skip to content

Commit d0ffdf9

Browse files
committed
Fix issue #9 be aligning the selected space properly inside spaces.js
1 parent d582d02 commit d0ffdf9

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

js/spaces.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ let bannerState;
1313

1414
function 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

542548
function 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

Comments
 (0)