diff --git a/src/pages/ActivityPage.vue b/src/pages/ActivityPage.vue index 7f5e72f..803742c 100644 --- a/src/pages/ActivityPage.vue +++ b/src/pages/ActivityPage.vue @@ -132,7 +132,25 @@ const days: Ref = ref(30); const graphViewMode: Ref = ref(GraphTypes.Plays); - const plexUserId = computed(() => store.getters["user/plexUserId"]); + + // Check both Vuex store and localStorage for Plex user + const plexUserId = computed(() => { + // First try Vuex store + const storeId = store.getters["user/plexUserId"]; + if (storeId) return storeId; + + // Fallback to localStorage + const userData = localStorage.getItem("plex_user_data"); + if (userData) { + try { + return JSON.parse(userData).id; + } catch { + return null; + } + } + return null; + }); + const plexUsername = computed(() => { const userData = localStorage.getItem("plex_user_data"); if (userData) { diff --git a/src/routes.ts b/src/routes.ts index 91769f9..1854504 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -102,7 +102,22 @@ const router = createRouter({ }); const loggedIn = () => store.getters["user/loggedIn"]; -const hasPlexAccount = () => store.getters["user/plexUserId"] !== null; +const hasPlexAccount = () => { + // Check Vuex store first + if (store.getters["user/plexUserId"] !== null) return true; + + // Fallback to localStorage + const userData = localStorage.getItem("plex_user_data"); + if (userData) { + try { + const parsed = JSON.parse(userData); + return parsed.id !== null && parsed.id !== undefined; + } catch { + return false; + } + } + return false; +}; const hamburgerIsOpen = () => store.getters["hamburger/isOpen"]; router.beforeEach(