Skip to content

Commit 6614821

Browse files
authored
Merge pull request #700 from SolidOS/fix/missing-menu
Fix missing menu - use new auth
2 parents 2343f3f + 8518043 commit 6614821

3 files changed

Lines changed: 24 additions & 10 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "solid-panes",
3-
"version": "4.4.2-0",
3+
"version": "4.4.2-1",
44
"description": "Solid-compatible Panes: applets and views for the mashlib and databrowser",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/mainPage/menu.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,17 @@ 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+
const webId = await authn.checkUser()
65+
return Boolean(webId || authn.currentUser())
66+
} catch {
67+
// Keep the menu responsive even if auth refresh is transiently unavailable.
68+
return Boolean(authn.currentUser())
69+
}
70+
}
71+
72+
const isLoggedIn = (): boolean => Boolean(authn.currentUser())
6373

6474
const setFooterVisibility = (loggedIn: boolean): void => {
6575
const footer = document.querySelector('solid-ui-footer') as HTMLElement | null
@@ -343,6 +353,7 @@ export const createLeftSideMenu = async (subject: NamedNode, outliner: OutlineMa
343353
const menuToggle = document.getElementById('MenuToggleBtn') as HTMLElement | null
344354
const menuOverlay = document.getElementById('MenuOverlay') as HTMLElement | null
345355
const navMenuContent = document.getElementById('NavMenuContent') as HTMLElement | null
356+
await refreshAuthStateFromSession()
346357

347358
const closeMobileMenu = () => {
348359
if (!navMenu || !menuToggle || !menuOverlay) return
@@ -445,20 +456,23 @@ export const createLeftSideMenu = async (subject: NamedNode, outliner: OutlineMa
445456
await renderMenuItems(subject, outliner, navMenuContent)
446457
}
447458

448-
authSession.events.on('login', () => {
459+
authSession.events.on('login', async () => {
460+
await refreshAuthStateFromSession()
449461
updateMenuVisibility()
450462
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
451-
refreshMenuItems()
463+
await refreshMenuItems()
452464
})
453-
authSession.events.on('logout', () => {
465+
authSession.events.on('logout', async () => {
466+
await refreshAuthStateFromSession()
454467
updateMenuVisibility()
455468
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
456-
refreshMenuItems()
469+
await refreshMenuItems()
457470
})
458-
authSession.events.on('sessionRestore', () => {
471+
authSession.events.on('sessionRestore', async () => {
472+
await refreshAuthStateFromSession()
459473
updateMenuVisibility()
460474
refreshMenu(outliner.context?.environment?.layout === 'mobile' ? 'mobile' : 'desktop')
461-
refreshMenuItems()
475+
await refreshMenuItems()
462476
})
463477
navMenuContent.dataset.authEventsBound = 'true'
464478
}

0 commit comments

Comments
 (0)