From 34e65ace1ee0583d4e08d3a1c5b8f1f3a4879027 Mon Sep 17 00:00:00 2001 From: "Calum H. (IMB11)" Date: Fri, 1 Aug 2025 15:03:49 +0100 Subject: [PATCH] chore: fix frontend lint issues --- apps/frontend/crowdin.yml | 2 +- apps/frontend/eslint.config.mjs | 14 +- apps/frontend/src/app.vue | 4 +- .../src/assets/styles/components.scss | 8 +- apps/frontend/src/assets/styles/global.scss | 20 +- apps/frontend/src/assets/styles/layout.scss | 56 +- .../src/components/brand/TextLogo.vue | 22 +- apps/frontend/src/components/ui/Accordion.vue | 30 +- .../src/components/ui/AdPlaceholder.vue | 46 +- .../src/components/ui/AutomaticAccordion.vue | 24 +- .../src/components/ui/Breadcrumbs.vue | 4 +- apps/frontend/src/components/ui/Checkbox.vue | 10 +- apps/frontend/src/components/ui/Chips.vue | 16 +- .../components/ui/CollectionCreateModal.vue | 52 +- .../src/components/ui/ConditionalNuxtLink.vue | 2 +- apps/frontend/src/components/ui/DropArea.vue | 34 +- .../components/ui/EnvironmentIndicator.vue | 14 +- apps/frontend/src/components/ui/FileInput.vue | 22 +- apps/frontend/src/components/ui/HCaptcha.vue | 26 +- .../src/components/ui/MessageBanner.vue | 10 +- apps/frontend/src/components/ui/Modal.vue | 22 +- .../src/components/ui/ModalCreation.vue | 112 +- apps/frontend/src/components/ui/NavRow.vue | 58 +- apps/frontend/src/components/ui/NavStack.vue | 2 +- .../src/components/ui/NavStackItem.vue | 4 +- apps/frontend/src/components/ui/NavTabs.vue | 120 +-- .../src/components/ui/NotificationItem.vue | 140 +-- .../src/components/ui/OptionGroup.vue | 82 +- .../components/ui/OrganizationCreateModal.vue | 58 +- .../ui/OrganizationProjectTransferModal.vue | 46 +- .../src/components/ui/ProjectCard.vue | 80 +- .../src/components/ui/ProjectMemberHeader.vue | 230 ++--- .../src/components/ui/ShareArticleButtons.vue | 24 +- .../src/components/ui/charts/Chart.client.vue | 126 +-- .../src/components/ui/charts/ChartDisplay.vue | 324 +++--- .../ui/charts/CompactChart.client.vue | 44 +- .../moderation/ModerationDelphiReportCard.vue | 52 +- .../checklist/ChecklistKeybindsModal.vue | 52 +- .../checklist/ModerationChecklist.vue | 16 +- .../checklist/ModpackPermissionsFlow.vue | 248 ++--- .../ui/modrinth-loading-indicator.ts | 106 +- .../src/components/ui/news/LatestNewsRow.vue | 12 +- .../src/components/ui/report/ReportInfo.vue | 18 +- .../src/components/ui/report/ReportView.vue | 74 +- .../src/components/ui/report/ReportsList.vue | 86 +- .../src/components/ui/search/Categories.vue | 12 +- .../src/components/ui/search/SearchFilter.vue | 16 +- .../ui/servers/BackupCreateModal.vue | 82 +- .../ui/servers/BackupDeleteModal.vue | 22 +- .../src/components/ui/servers/BackupItem.vue | 158 +-- .../ui/servers/BackupRenameModal.vue | 94 +- .../ui/servers/BackupRestoreModal.vue | 44 +- .../ui/servers/BackupSettingsModal.vue | 118 +-- .../ui/servers/ContentVersionEditModal.vue | 284 +++-- .../ui/servers/ContentVersionFilter.vue | 114 +-- .../src/components/ui/servers/FileItem.vue | 405 ++++---- .../components/ui/servers/FileVirtualList.vue | 82 +- .../ui/servers/FilesCreateItemModal.vue | 68 +- .../ui/servers/FilesDeleteItemModal.vue | 38 +- .../ui/servers/FilesImageViewer.vue | 142 +-- .../components/ui/servers/FilesLabelBar.vue | 14 +- .../ui/servers/FilesMoveItemModal.vue | 52 +- .../ui/servers/FilesRenameItemModal.vue | 66 +- .../ui/servers/FilesUploadConflictModal.vue | 32 +- .../ui/servers/FilesUploadDragAndDrop.vue | 58 +- .../ui/servers/FilesUploadDropdown.vue | 222 ++-- .../ui/servers/FilesUploadZipUrlModal.vue | 92 +- .../src/components/ui/servers/Globe.vue | 188 ++-- .../ui/servers/InstallingTicker.vue | 28 +- .../components/ui/servers/LoaderSelector.vue | 42 +- .../ui/servers/LoaderSelectorCard.vue | 32 +- .../src/components/ui/servers/LogLine.vue | 46 +- .../ui/servers/PanelServerActionButton.vue | 182 ++-- .../ui/servers/PanelServerStatus.vue | 36 +- .../components/ui/servers/PanelTerminal.vue | 929 +++++++++-------- .../PlatformChangeModpackVersionModal.vue | 102 +- .../ui/servers/PlatformMrpackModal.vue | 260 ++--- .../ui/servers/PlatformVersionSelectModal.vue | 341 +++--- .../src/components/ui/servers/SaveBanner.vue | 28 +- .../components/ui/servers/ServerGameLabel.vue | 14 +- .../src/components/ui/servers/ServerIcon.vue | 4 +- .../ui/servers/ServerInfoLabels.vue | 14 +- .../components/ui/servers/ServerListing.vue | 38 +- .../ui/servers/ServerLoaderLabel.vue | 14 +- .../ui/servers/ServerManageEmptyState.vue | 2 +- .../components/ui/servers/ServerSidebar.vue | 24 +- .../src/components/ui/servers/ServerStats.vue | 108 +- .../ui/servers/ServerSubdomainLabel.vue | 30 +- .../ui/servers/ServerUptimeLabel.vue | 50 +- .../ui/servers/TeleportOverflowMenu.vue | 364 +++---- .../ui/servers/icons/LoaderIcon.vue | 8 +- .../servers/marketing/ServerPlanSelector.vue | 108 +- .../ui/servers/notice/AssignNoticeModal.vue | 114 +-- .../components/ui/thread/ThreadMessage.vue | 54 +- .../components/ui/thread/ThreadSummary.vue | 28 +- apps/frontend/src/composables/auth.js | 116 +-- apps/frontend/src/composables/auth/scopes.ts | 482 ++++----- .../src/composables/compact-number.ts | 22 +- apps/frontend/src/composables/country.ts | 38 +- .../frontend/src/composables/display-names.ts | 72 +- apps/frontend/src/composables/featureFlags.ts | 70 +- apps/frontend/src/composables/fetch.js | 26 +- apps/frontend/src/composables/image-upload.ts | 44 +- apps/frontend/src/composables/loading.js | 14 +- apps/frontend/src/composables/notifs.js | 34 +- .../src/composables/nuxt-accessors.ts | 4 +- apps/frontend/src/composables/nuxt-bugfest.ts | 2 +- apps/frontend/src/composables/query.js | 8 +- apps/frontend/src/composables/route-params.js | 8 +- .../composables/servers/modrinth-servers.ts | 324 +++--- .../composables/servers/modules/backups.ts | 64 +- .../src/composables/servers/modules/base.ts | 10 +- .../composables/servers/modules/content.ts | 24 +- .../src/composables/servers/modules/fs.ts | 190 ++-- .../composables/servers/modules/general.ts | 180 ++-- .../src/composables/servers/modules/index.ts | 16 +- .../composables/servers/modules/network.ts | 34 +- .../composables/servers/modules/startup.ts | 22 +- .../src/composables/servers/modules/ws.ts | 14 +- .../src/composables/servers/servers-fetch.ts | 178 ++-- apps/frontend/src/composables/tag.js | 78 +- .../src/composables/use-client-try.ts | 34 +- apps/frontend/src/composables/user.js | 156 +-- apps/frontend/src/composables/util.ts | 10 +- apps/frontend/src/composables/vue.ts | 8 +- apps/frontend/src/error.vue | 136 +-- apps/frontend/src/helpers/events.ts | 4 +- apps/frontend/src/helpers/fileUtils.js | 40 +- apps/frontend/src/helpers/highlight.js | 76 +- apps/frontend/src/helpers/infer.js | 502 +++++---- apps/frontend/src/helpers/moderation.ts | 150 +-- apps/frontend/src/helpers/notifications.ts | 190 ++-- apps/frontend/src/helpers/package.js | 152 +-- apps/frontend/src/helpers/projects.js | 218 ++-- apps/frontend/src/helpers/teams.js | 18 +- apps/frontend/src/helpers/threads.js | 16 +- apps/frontend/src/helpers/users.js | 10 +- apps/frontend/src/layouts/default.vue | 518 +++++----- apps/frontend/src/layouts/empty.vue | 2 +- apps/frontend/src/middleware/auth.ts | 26 +- apps/frontend/src/middleware/launcher-auth.ts | 4 +- apps/frontend/src/pages/[type]/[id].vue | 598 +++++------ .../src/pages/[type]/[id]/changelog.vue | 54 +- .../src/pages/[type]/[id]/gallery.vue | 214 ++-- apps/frontend/src/pages/[type]/[id]/index.vue | 12 +- .../src/pages/[type]/[id]/moderation.vue | 48 +- .../pages/[type]/[id]/settings/analytics.vue | 6 +- .../[type]/[id]/settings/description.vue | 44 +- .../src/pages/[type]/[id]/settings/index.vue | 154 +-- .../pages/[type]/[id]/settings/license.vue | 104 +- .../src/pages/[type]/[id]/settings/links.vue | 104 +- .../pages/[type]/[id]/settings/members.vue | 270 ++--- .../src/pages/[type]/[id]/settings/tags.vue | 72 +- .../[type]/[id]/version/[version]-new.vue | 74 +- .../pages/[type]/[id]/version/[version].vue | 502 +++++---- .../[type]/[id]/version/[version]/edit.vue | 4 +- .../src/pages/[type]/[id]/versions.vue | 56 +- .../frontend/src/pages/admin/billing/[id].vue | 142 +-- .../src/pages/admin/servers/notices.vue | 236 ++--- apps/frontend/src/pages/admin/user_email.vue | 26 +- apps/frontend/src/pages/app.vue | 150 +-- apps/frontend/src/pages/auth.vue | 4 +- apps/frontend/src/pages/auth/authorize.vue | 142 ++- .../src/pages/auth/reset-password.vue | 140 +-- apps/frontend/src/pages/auth/sign-in.vue | 142 +-- apps/frontend/src/pages/auth/sign-up.vue | 118 +-- apps/frontend/src/pages/auth/verify-email.vue | 82 +- apps/frontend/src/pages/collection/[id].vue | 284 ++--- apps/frontend/src/pages/dashboard.vue | 16 +- .../src/pages/dashboard/analytics.vue | 16 +- apps/frontend/src/pages/dashboard/index.vue | 52 +- .../src/pages/dashboard/notifications.vue | 72 +- .../src/pages/dashboard/report/[id].vue | 8 +- apps/frontend/src/pages/dashboard/reports.vue | 8 +- .../src/pages/dashboard/revenue/index.vue | 64 +- .../src/pages/dashboard/revenue/withdraw.vue | 180 ++-- apps/frontend/src/pages/flags.vue | 6 +- apps/frontend/src/pages/frog.vue | 48 +- apps/frontend/src/pages/index.vue | 50 +- apps/frontend/src/pages/legal.vue | 8 +- apps/frontend/src/pages/legal/ccpa.vue | 8 +- apps/frontend/src/pages/legal/cmp-info.vue | 32 +- apps/frontend/src/pages/legal/cmp.vue | 8 +- apps/frontend/src/pages/legal/copyright.vue | 8 +- apps/frontend/src/pages/legal/privacy.vue | 8 +- apps/frontend/src/pages/legal/rules.vue | 8 +- apps/frontend/src/pages/legal/security.vue | 8 +- apps/frontend/src/pages/legal/terms.vue | 8 +- apps/frontend/src/pages/moderation.vue | 62 +- .../src/pages/moderation/reports/[id].vue | 24 +- .../moderation/technical-review-mockup.vue | 278 ++--- .../src/pages/news/article/[slug].vue | 60 +- apps/frontend/src/pages/news/changelog.vue | 12 +- .../pages/news/changelog/[product]/[date].vue | 26 +- .../src/pages/news/changelog/index.vue | 24 +- apps/frontend/src/pages/news/index.vue | 34 +- apps/frontend/src/pages/organization/[id].vue | 198 ++-- .../organization/[id]/settings/analytics.vue | 4 +- .../organization/[id]/settings/index.vue | 100 +- .../organization/[id]/settings/members.vue | 114 +-- .../organization/[id]/settings/projects.vue | 210 ++-- apps/frontend/src/pages/plus.vue | 58 +- .../src/pages/search/[searchProjectType].vue | 262 ++--- apps/frontend/src/pages/servers/index.vue | 408 ++++---- .../src/pages/servers/manage/[id].vue | 872 ++++++++-------- .../src/pages/servers/manage/[id]/backups.vue | 150 +-- .../src/pages/servers/manage/[id]/content.vue | 14 +- .../servers/manage/[id]/content/index.vue | 312 +++--- .../src/pages/servers/manage/[id]/files.vue | 968 +++++++++--------- .../servers/manage/[id]/options/billing.vue | 2 +- .../servers/manage/[id]/options/index.vue | 272 +++-- .../servers/manage/[id]/options/info.vue | 46 +- .../servers/manage/[id]/options/loader.vue | 16 +- .../servers/manage/[id]/options/network.vue | 259 +++-- .../manage/[id]/options/preferences.vue | 66 +- .../manage/[id]/options/properties.vue | 188 ++-- .../servers/manage/[id]/options/startup.vue | 126 +-- .../src/pages/servers/manage/index.vue | 104 +- apps/frontend/src/pages/settings.vue | 16 +- apps/frontend/src/pages/settings/account.vue | 272 ++--- .../src/pages/settings/applications.vue | 244 ++--- .../src/pages/settings/authorizations.vue | 68 +- .../src/pages/settings/billing/charges.vue | 30 +- .../src/pages/settings/billing/index.vue | 520 +++++----- apps/frontend/src/pages/settings/index.vue | 200 ++-- apps/frontend/src/pages/settings/language.vue | 252 ++--- apps/frontend/src/pages/settings/pats.vue | 198 ++-- apps/frontend/src/pages/settings/profile.vue | 142 +-- apps/frontend/src/pages/settings/sessions.vue | 68 +- apps/frontend/src/plugins/cosmetics.ts | 70 +- apps/frontend/src/plugins/dayjs.js | 18 +- apps/frontend/src/plugins/floating-vue.js | 20 +- apps/frontend/src/plugins/scroll.client.js | 10 +- apps/frontend/src/plugins/shorthands.js | 224 ++-- apps/frontend/src/plugins/theme/index.ts | 70 +- .../src/plugins/theme/native-theme.ts | 40 +- .../src/plugins/theme/preferred-theme.ts | 24 +- .../src/plugins/theme/theme-settings.ts | 26 +- apps/frontend/src/plugins/theme/themes.ts | 24 +- apps/frontend/src/public/inmobi.js | 150 +-- apps/frontend/src/public/promo-frame.html | 30 +- .../routes/.well-known/change-password.ts | 4 +- apps/frontend/src/store/console.ts | 122 +-- apps/frontend/src/store/moderation.ts | 64 +- apps/frontend/src/types/fusejs.d.ts | 6 +- apps/frontend/src/types/modrinth.d.ts | 2 +- apps/frontend/src/types/vintl.d.ts | 14 +- apps/frontend/src/utils/analytics.js | 348 +++---- apps/frontend/src/utils/fetch-helpers.ts | 14 +- apps/frontend/src/utils/i18n-project-type.ts | 76 +- apps/frontend/src/utils/permissions.ts | 6 +- apps/frontend/src/utils/report-helpers.ts | 22 +- apps/frontend/src/utils/vue-children.ts | 6 +- 253 files changed, 12665 insertions(+), 12701 deletions(-) diff --git a/apps/frontend/crowdin.yml b/apps/frontend/crowdin.yml index e7c47c7da..2817cde42 100644 --- a/apps/frontend/crowdin.yml +++ b/apps/frontend/crowdin.yml @@ -1,6 +1,6 @@ project_id: 518556 preserve_hierarchy: true -commit_message: "[ci skip]" +commit_message: '[ci skip]' files: - source: /locales/en-US/* diff --git a/apps/frontend/eslint.config.mjs b/apps/frontend/eslint.config.mjs index 06f1344a9..e7e8a4d97 100644 --- a/apps/frontend/eslint.config.mjs +++ b/apps/frontend/eslint.config.mjs @@ -1,8 +1,10 @@ import config from '@modrinth/tooling-config/eslint/nuxt.mjs' -export default config.append([{ +export default config.append([ + { rules: { - '@typescript-eslint/no-explicit-any': 'off', - "import/no-unresolved": "off", - 'no-undef': 'off' - } -}]) \ No newline at end of file + '@typescript-eslint/no-explicit-any': 'off', + 'import/no-unresolved': 'off', + 'no-undef': 'off', + }, + }, +]) diff --git a/apps/frontend/src/app.vue b/apps/frontend/src/app.vue index ebd9fa560..7b8ef22ad 100644 --- a/apps/frontend/src/app.vue +++ b/apps/frontend/src/app.vue @@ -6,6 +6,6 @@ diff --git a/apps/frontend/src/assets/styles/components.scss b/apps/frontend/src/assets/styles/components.scss index f647e7e25..429bb54de 100644 --- a/apps/frontend/src/assets/styles/components.scss +++ b/apps/frontend/src/assets/styles/components.scss @@ -415,7 +415,7 @@ } &:disabled, - &[disabled="true"] { + &[disabled='true'] { cursor: not-allowed; filter: grayscale(50%); opacity: 0.5; @@ -461,7 +461,7 @@ tr.button-transparent { } &:disabled > *, - &[disabled="true"] > * { + &[disabled='true'] > * { cursor: not-allowed; filter: grayscale(50%); opacity: 0.5; @@ -492,7 +492,7 @@ tr.button-transparent { box-shadow: none; &disabled, - &[disabled="true"] { + &[disabled='true'] { cursor: not-allowed; box-shadow: none; } @@ -678,7 +678,7 @@ tr.button-transparent { background: var(--color-button-bg); &:after { - content: ""; + content: ''; position: absolute; top: 7px; left: 7px; diff --git a/apps/frontend/src/assets/styles/global.scss b/apps/frontend/src/assets/styles/global.scss index cefb9460c..d471784e0 100644 --- a/apps/frontend/src/assets/styles/global.scss +++ b/apps/frontend/src/assets/styles/global.scss @@ -125,8 +125,8 @@ html { --shadow-card: rgba(50, 50, 100, 0.1) 0px 2px 4px 0px; - --landing-maze-bg: url("https://cdn.modrinth.com/landing-new/landing-light.webp"); - --landing-maze-gradient-bg: url("https://cdn.modrinth.com/landing-new/landing-lower-light.webp"); + --landing-maze-bg: url('https://cdn.modrinth.com/landing-new/landing-light.webp'); + --landing-maze-gradient-bg: url('https://cdn.modrinth.com/landing-new/landing-lower-light.webp'); --landing-maze-outer-bg: linear-gradient(180deg, #f0f0f0 0%, #ffffff 100%); --landing-color-heading: #000; @@ -259,10 +259,10 @@ html { --shadow-card: rgba(0, 0, 0, 0.25) 0px 2px 4px 0px; - --landing-maze-bg: url("https://cdn.modrinth.com/landing-new/landing.webp"); + --landing-maze-bg: url('https://cdn.modrinth.com/landing-new/landing.webp'); --landing-maze-gradient-bg: linear-gradient(0deg, #31375f 0%, rgba(8, 14, 55, 0) 100%), - url("https://cdn.modrinth.com/landing-new/landing-lower.webp"); + url('https://cdn.modrinth.com/landing-new/landing-lower.webp'); --landing-maze-outer-bg: linear-gradient(180deg, #06060d 0%, #000000 100%); --landing-color-heading: #fff; @@ -492,7 +492,7 @@ textarea { } &:disabled, - &[disabled="true"] { + &[disabled='true'] { opacity: 0.6; pointer-events: none; cursor: not-allowed; @@ -509,7 +509,7 @@ textarea { } button, -input[type="button"] { +input[type='button'] { cursor: pointer; border: none; outline: 2px solid transparent; @@ -525,13 +525,13 @@ kbd { font-size: 0.85em !important; } -@import "~/assets/styles/layout.scss"; -@import "~/assets/styles/utils.scss"; -@import "~/assets/styles/components.scss"; +@import '~/assets/styles/layout.scss'; +@import '~/assets/styles/utils.scss'; +@import '~/assets/styles/components.scss'; button:focus-visible, a:focus-visible, -[tabindex="0"]:focus-visible { +[tabindex='0']:focus-visible { outline: 0.25rem solid #ea80ff; border-radius: 0.25rem; } diff --git a/apps/frontend/src/assets/styles/layout.scss b/apps/frontend/src/assets/styles/layout.scss index 60e05cfdd..2f14b33bf 100644 --- a/apps/frontend/src/assets/styles/layout.scss +++ b/apps/frontend/src/assets/styles/layout.scss @@ -42,9 +42,9 @@ padding: 0 1.5rem; grid-template: - "sidebar" - "content" - "info" + 'sidebar' + 'content' + 'info' / 100%; @media screen and (max-width: 1024px) { @@ -81,25 +81,25 @@ column-gap: 0.75rem; grid-template: - "sidebar content" auto - "info content" auto - "dummy content" 1fr + 'sidebar content' auto + 'info content' auto + 'dummy content' 1fr / 18.75rem 1fr; &.alt-layout { grid-template: - "content sidebar" auto - "content info" auto - "content dummy" 1fr + 'content sidebar' auto + 'content info' auto + 'content dummy' 1fr / 1fr 18.75rem; } &.no-sidebar { grid-template: - "header header" auto - "content content" auto - "info info" auto - "dummy dummy" 1fr + 'header header' auto + 'content content' auto + 'info info' auto + 'dummy dummy' 1fr / 1fr 1fr; .normal-page__content { @@ -129,9 +129,9 @@ padding-bottom: 1.5rem; grid-template: - "header" - "content" - "sidebar" + 'header' + 'content' + 'sidebar' / 100%; .normal-page__ultimate-sidebar { @@ -152,16 +152,16 @@ @media screen and (min-width: 1024px) { &.sidebar { grid-template: - "header header" auto - "content sidebar" auto - "content dummy" 1fr + 'header header' auto + 'content sidebar' auto + 'content dummy' 1fr / 1fr 18.75rem; &.alt-layout { grid-template: - "header header" auto - "sidebar content" auto - "dummy content" 1fr + 'header header' auto + 'sidebar content' auto + 'dummy content' 1fr / 18.75rem 1fr; } } @@ -177,9 +177,9 @@ max-width: calc(80rem + 0.75rem + 600px); grid-template: - "header header ultimate-sidebar" auto - "content sidebar ultimate-sidebar" auto - "content dummy ultimate-sidebar" 1fr + 'header header ultimate-sidebar' auto + 'content sidebar ultimate-sidebar' auto + 'content dummy ultimate-sidebar' 1fr / 1fr 18.75rem auto; .normal-page__header { @@ -203,9 +203,9 @@ &.alt-layout { grid-template: - "ultimate-sidebar header header" auto - "ultimate-sidebar sidebar content" auto - "ultimate-sidebar dummy content" 1fr + 'ultimate-sidebar header header' auto + 'ultimate-sidebar sidebar content' auto + 'ultimate-sidebar dummy content' 1fr / auto 18.75rem 1fr; } } diff --git a/apps/frontend/src/components/brand/TextLogo.vue b/apps/frontend/src/components/brand/TextLogo.vue index a942c1401..efd4af63c 100644 --- a/apps/frontend/src/components/brand/TextLogo.vue +++ b/apps/frontend/src/components/brand/TextLogo.vue @@ -54,21 +54,21 @@ diff --git a/apps/frontend/src/components/ui/moderation/checklist/ChecklistKeybindsModal.vue b/apps/frontend/src/components/ui/moderation/checklist/ChecklistKeybindsModal.vue index 53e491df9..f2cc18807 100644 --- a/apps/frontend/src/components/ui/moderation/checklist/ChecklistKeybindsModal.vue +++ b/apps/frontend/src/components/ui/moderation/checklist/ChecklistKeybindsModal.vue @@ -29,56 +29,56 @@ diff --git a/apps/frontend/src/middleware/auth.ts b/apps/frontend/src/middleware/auth.ts index 62d17006a..a5f32e5d7 100644 --- a/apps/frontend/src/middleware/auth.ts +++ b/apps/frontend/src/middleware/auth.ts @@ -1,33 +1,33 @@ -const whitelistedParams = ["flow", "error"]; +const whitelistedParams = ['flow', 'error'] export default defineNuxtRouteMiddleware(async (_to, from) => { - const config = useRuntimeConfig(); - const auth = await useAuth(); + const config = useRuntimeConfig() + const auth = await useAuth() - if (auth.value.user) return; + if (auth.value.user) return - const fullPath = from.fullPath; + const fullPath = from.fullPath - const url = new URL(fullPath, config.public.apiBaseUrl); + const url = new URL(fullPath, config.public.apiBaseUrl) - const extractedParams = Object.create(null) as Record; + const extractedParams = Object.create(null) as Record for (const param of whitelistedParams) { - const val = url.searchParams.get(param); + const val = url.searchParams.get(param) if (val != null) { - extractedParams[param] = val; - url.searchParams.delete(param); + extractedParams[param] = val + url.searchParams.delete(param) } } return await navigateTo( { - path: "/auth/sign-in", + path: '/auth/sign-in', query: { redirect: `${url.pathname}${url.search}`, ...extractedParams, }, }, { replace: true }, - ); -}); + ) +}) diff --git a/apps/frontend/src/middleware/launcher-auth.ts b/apps/frontend/src/middleware/launcher-auth.ts index 14942e7f1..b3579463f 100644 --- a/apps/frontend/src/middleware/launcher-auth.ts +++ b/apps/frontend/src/middleware/launcher-auth.ts @@ -1,5 +1,5 @@ export default defineNuxtRouteMiddleware((to) => { if (to.query.launcher) { - setPageLayout("empty"); + setPageLayout('empty') } -}); +}) diff --git a/apps/frontend/src/pages/[type]/[id].vue b/apps/frontend/src/pages/[type]/[id].vue index 2f1f2577e..30609b939 100644 --- a/apps/frontend/src/pages/[type]/[id].vue +++ b/apps/frontend/src/pages/[type]/[id].vue @@ -157,7 +157,7 @@
@@ -250,7 +250,7 @@ {{ currentGameVersion ? `Game version: ${currentGameVersion}` - : "Error: no game versions found" + : 'Error: no game versions found' }}