Skip to content

Commit c0cb896

Browse files
committed
change to new auth for menu
1 parent 2343f3f commit c0cb896

1 file changed

Lines changed: 30 additions & 10 deletions

File tree

src/mainPage/menu.ts

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,20 @@ const applyMenuCollapsedState = (navMenu: HTMLElement | null): void => {
5959
updateCollapseButtonPosition(navMenu, collapseBtn)
6060
}
6161

62-
const isLoggedIn = (): boolean => Boolean(authSession?.info?.isLoggedIn)
62+
const refreshAuthStateFromSession = async (): Promise<boolean> => {
63+
try {
64+
await authn.checkUser()
65+
if (!authn.currentUser()) {
66+
await authn.checkUser()
67+
}
68+
} catch (error) {
69+
// Keep the menu responsive even if auth refresh is transiently unavailable.
70+
}
71+
72+
return Boolean(authn.currentUser())
73+
}
74+
75+
const isLoggedIn = (): boolean => Boolean(authn.currentUser())
6376

6477
const setFooterVisibility = (loggedIn: boolean): void => {
6578
const footer = document.querySelector('solid-ui-footer') as HTMLElement | null
@@ -343,6 +356,7 @@ export const createLeftSideMenu = async (subject: NamedNode, outliner: OutlineMa
343356
const menuToggle = document.getElementById('MenuToggleBtn') as HTMLElement | null
344357
const menuOverlay = document.getElementById('MenuOverlay') as HTMLElement | null
345358
const navMenuContent = document.getElementById('NavMenuContent') as HTMLElement | null
359+
await refreshAuthStateFromSession()
346360

347361
const closeMobileMenu = () => {
348362
if (!navMenu || !menuToggle || !menuOverlay) return
@@ -446,19 +460,25 @@ export const createLeftSideMenu = async (subject: NamedNode, outliner: OutlineMa
446460
}
447461

448462
authSession.events.on('login', () => {
449-
updateMenuVisibility()
450-
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
451-
refreshMenuItems()
463+
void refreshAuthStateFromSession().then(() => {
464+
updateMenuVisibility()
465+
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
466+
void refreshMenuItems()
467+
})
452468
})
453469
authSession.events.on('logout', () => {
454-
updateMenuVisibility()
455-
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
456-
refreshMenuItems()
470+
void refreshAuthStateFromSession().then(() => {
471+
updateMenuVisibility()
472+
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
473+
void refreshMenuItems()
474+
})
457475
})
458476
authSession.events.on('sessionRestore', () => {
459-
updateMenuVisibility()
460-
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
461-
refreshMenuItems()
477+
void refreshAuthStateFromSession().then(() => {
478+
updateMenuVisibility()
479+
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
480+
void refreshMenuItems()
481+
})
462482
})
463483
navMenuContent.dataset.authEventsBound = 'true'
464484
}

0 commit comments

Comments
 (0)