From b36801c5ede2cacdda5b6b8aa1d5bd3d23ce4848 Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:58:45 -0800 Subject: [PATCH] Reduce some more sentry errors (#5173) * short-circuit user menu options if no user * misc null checks --- apps/frontend/src/layouts/default.vue | 9 +++-- .../[type]/[id]/settings/environment.vue | 2 +- .../src/pages/[type]/[id]/settings/index.vue | 4 +- .../src/pages/[type]/[id]/settings/links.vue | 2 +- .../pages/[type]/[id]/settings/members.vue | 40 +++++++++---------- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/apps/frontend/src/layouts/default.vue b/apps/frontend/src/layouts/default.vue index e48c6653f..dd4a34c5d 100644 --- a/apps/frontend/src/layouts/default.vue +++ b/apps/frontend/src/layouts/default.vue @@ -990,16 +990,19 @@ const navRoutes = computed(() => [ ]) const userMenuOptions = computed(() => { + const user = auth.value.user + if (!user) return [] + let options = [ { id: 'profile', - link: `/user/${auth.value.user.username}`, + link: `/user/${user.username}`, }, { id: 'plus', link: '/plus', color: 'purple', - shown: !flags.value.hidePlusPromoInUserMenu && !isPermission(auth.value.user.badges, 1 << 0), + shown: !flags.value.hidePlusPromoInUserMenu && !isPermission(user.badges, 1 << 0), }, { id: 'servers', @@ -1052,7 +1055,7 @@ const userMenuOptions = computed(() => { { id: 'affiliate-links', link: '/dashboard/affiliate-links', - shown: auth.value.user.badges & UserBadge.AFFILIATE, + shown: user.badges & UserBadge.AFFILIATE, }, { id: 'revenue', diff --git a/apps/frontend/src/pages/[type]/[id]/settings/environment.vue b/apps/frontend/src/pages/[type]/[id]/settings/environment.vue index 90e1f1a56..2e91ab86a 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/environment.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/environment.vue @@ -31,6 +31,6 @@ import { isStaff } from '@modrinth/utils' const { currentMember, projectV2 } = injectProjectPageContext() const showEnvironmentMigration = computed(() => { - return isStaff(currentMember.value.user) + return isStaff(currentMember.value?.user) }) diff --git a/apps/frontend/src/pages/[type]/[id]/settings/index.vue b/apps/frontend/src/pages/[type]/[id]/settings/index.vue index 6a77e9107..046461980 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/index.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/index.vue @@ -319,12 +319,12 @@ const visibility = ref( const hasPermission = computed(() => { const EDIT_DETAILS = 1 << 2 - return (props.currentMember.permissions & EDIT_DETAILS) === EDIT_DETAILS + return (props.currentMember?.permissions & EDIT_DETAILS) === EDIT_DETAILS }) const hasDeletePermission = computed(() => { const DELETE_PROJECT = 1 << 7 - return (props.currentMember.permissions & DELETE_PROJECT) === DELETE_PROJECT + return (props.currentMember?.permissions & DELETE_PROJECT) === DELETE_PROJECT }) const summaryWarning = computed(() => { diff --git a/apps/frontend/src/pages/[type]/[id]/settings/links.vue b/apps/frontend/src/pages/[type]/[id]/settings/links.vue index fd6f23cf4..a95ddbffd 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/links.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/links.vue @@ -254,7 +254,7 @@ const donationLinks = ref(rawDonationLinks) const hasPermission = computed(() => { const EDIT_DETAILS = 1 << 2 - return (props.currentMember.permissions & EDIT_DETAILS) === EDIT_DETAILS + return (props.currentMember?.permissions & EDIT_DETAILS) === EDIT_DETAILS }) const patchData = computed(() => { diff --git a/apps/frontend/src/pages/[type]/[id]/settings/members.vue b/apps/frontend/src/pages/[type]/[id]/settings/members.vue index 6892f3838..dcc1331a6 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/members.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/members.vue @@ -128,7 +128,7 @@