From 241c4bfeacd59bf9216b652eb884a381e810a972 Mon Sep 17 00:00:00 2001 From: tdgao Date: Mon, 22 Dec 2025 12:50:05 -0800 Subject: [PATCH 01/26] add environment to version page metadata card --- .../stages/AddDetailsStage.vue | 47 +------------------ apps/frontend/src/pages/[type]/[id].vue | 2 +- .../pages/[type]/[id]/version/[version].vue | 7 +++ .../settings/environment/Environments.ts | 47 +++++++++++++++++++ .../src/components/project/settings/index.ts | 1 + 5 files changed, 58 insertions(+), 46 deletions(-) create mode 100644 packages/ui/src/components/project/settings/environment/Environments.ts diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddDetailsStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddDetailsStage.vue index e757627339..fd3083c0f3 100644 --- a/apps/frontend/src/components/ui/create-project-version/stages/AddDetailsStage.vue +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddDetailsStage.vue @@ -155,7 +155,7 @@ + + diff --git a/packages/ui/src/components/project/settings/environment/EnvironmentMigration.vue b/packages/ui/src/components/project/settings/environment/EnvironmentMigration.vue new file mode 100644 index 0000000000..c22938ba5c --- /dev/null +++ b/packages/ui/src/components/project/settings/environment/EnvironmentMigration.vue @@ -0,0 +1,177 @@ + + diff --git a/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue b/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue new file mode 100644 index 0000000000..5b9f101d93 --- /dev/null +++ b/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue @@ -0,0 +1,26 @@ + + + diff --git a/packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue b/packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue index 9de9cde182..fc661859f3 100644 --- a/packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue +++ b/packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue @@ -33,7 +33,10 @@ const optionLabelFormat = defineMessage({ defaultMessage: '{title}: {description}', }) -const OUTER_OPTIONS = { +const OUTER_OPTIONS: Record< + string, + EnvironmentRadioOption & { suboptions: Record } +> = { client: { title: defineMessage({ id: 'project.settings.environment.client_only.title', @@ -125,10 +128,8 @@ const OUTER_OPTIONS = { }), suboptions: {}, }, -} as const satisfies Record< - string, - EnvironmentRadioOption & { suboptions: Record } -> +} as const + type OuterOptionKey = keyof typeof OUTER_OPTIONS type SubOptionKey = ValidKeys<(typeof OUTER_OPTIONS)[keyof typeof OUTER_OPTIONS]['suboptions']> @@ -248,7 +249,7 @@ const simulateSave = ref(false) :aria-label=" formatMessage(optionLabelFormat, { title: formatMessage(title), - description: formatMessage(description), + description: description ? formatMessage(description) : '', }) " @select=" diff --git a/packages/ui/src/components/project/settings/index.ts b/packages/ui/src/components/project/settings/index.ts index 8195a20fb1..a4ccfff58d 100644 --- a/packages/ui/src/components/project/settings/index.ts +++ b/packages/ui/src/components/project/settings/index.ts @@ -1,3 +1,4 @@ // Environment +export { default as EnvironmentMigration } from './environment/EnvironmentMigration.vue' export { ENVIRONMENTS_COPY } from './environment/Environments' export { default as ProjectSettingsEnvSelector } from './environment/ProjectSettingsEnvSelector.vue' From ea1b3870bc6ee0f7b93620d4ec7c25f5fd72491c Mon Sep 17 00:00:00 2001 From: tdgao Date: Tue, 23 Dec 2025 11:10:46 -0800 Subject: [PATCH 10/26] rename environment selector --- .../{ProjectSettingsEnvSelector.vue => EnvironmentSelector.vue} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/ui/src/components/project/settings/environment/{ProjectSettingsEnvSelector.vue => EnvironmentSelector.vue} (100%) diff --git a/packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue b/packages/ui/src/components/project/settings/environment/EnvironmentSelector.vue similarity index 100% rename from packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue rename to packages/ui/src/components/project/settings/environment/EnvironmentSelector.vue From 18a335164da5c746174c531ef098f4b74697fe32 Mon Sep 17 00:00:00 2001 From: tdgao Date: Tue, 23 Dec 2025 11:12:13 -0800 Subject: [PATCH 11/26] rename environment selector pt2 --- .../ui/create-project-version/stages/AddEnvironmentStage.vue | 4 ++-- .../project/settings/environment/EnvironmentMigration.vue | 4 ++-- packages/ui/src/components/project/settings/index.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddEnvironmentStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddEnvironmentStage.vue index ee04d8a614..f115f6c0b0 100644 --- a/apps/frontend/src/components/ui/create-project-version/stages/AddEnvironmentStage.vue +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddEnvironmentStage.vue @@ -1,11 +1,11 @@ diff --git a/packages/ui/src/components/project/settings/index.ts b/packages/ui/src/components/project/settings/index.ts index 5916fa3029..19e1491fc3 100644 --- a/packages/ui/src/components/project/settings/index.ts +++ b/packages/ui/src/components/project/settings/index.ts @@ -2,3 +2,4 @@ export { default as EnvironmentMigration } from './environment/EnvironmentMigration.vue' export { ENVIRONMENTS_COPY } from './environment/Environments' export { default as EnvironmentSelector } from './environment/EnvironmentSelector.vue' +export { default as ProjectEnvironmentModal } from './environment/ProjectEnvironmentModal.vue' From 7407e818c2c862498590d030807c48d82561d4c1 Mon Sep 17 00:00:00 2001 From: tdgao Date: Tue, 23 Dec 2025 14:39:01 -0800 Subject: [PATCH 13/26] hide environments in settings and show message --- .../[type]/[id]/settings/environment.vue | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/apps/frontend/src/pages/[type]/[id]/settings/environment.vue b/apps/frontend/src/pages/[type]/[id]/settings/environment.vue index d3317e67f3..90e1f1a56d 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/environment.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/environment.vue @@ -1,10 +1,36 @@ From 6fd3589a2f3900f2e5500f18367d5ae0bb407558 Mon Sep 17 00:00:00 2001 From: tdgao Date: Tue, 23 Dec 2025 21:25:33 -0800 Subject: [PATCH 14/26] show environment in project versions table --- apps/frontend/src/pages/[type]/[id].vue | 26 +++++++++++-- .../project/ProjectPageVersions.vue | 39 ++++++++++++++++++- 2 files changed, 59 insertions(+), 6 deletions(-) diff --git a/apps/frontend/src/pages/[type]/[id].vue b/apps/frontend/src/pages/[type]/[id].vue index 79dd4ea9d4..94528a813f 100644 --- a/apps/frontend/src/pages/[type]/[id].vue +++ b/apps/frontend/src/pages/[type]/[id].vue @@ -43,7 +43,12 @@ useBaseFetch(`project/${projectId.value}`), { @@ -1522,6 +1531,9 @@ try { useAsyncData(`project/${projectId.value}/version`, () => useBaseFetch(`project/${projectId.value}/version`), ), + useAsyncData(`project/${projectId.value}/version`, () => + useBaseFetch(`project/${projectId.value}/version`, { apiVersion: 3 }), + ), useAsyncData(`project/${projectId.value}/organization`, () => useBaseFetch(`project/${projectId.value}/organization`, { apiVersion: 3 }), ), @@ -1562,6 +1574,11 @@ async function resetProject() { await resetProjectV3() } +async function resetVersions() { + await resetVersionsV2() + await resetVersionsV3() +} + function handleError(err, project = false) { if (err.value && err.value.statusCode) { throw createError({ @@ -1580,6 +1597,7 @@ handleError(projectV3Error) handleError(membersError) handleError(dependenciesError) handleError(versionsError) +handleError(versionsV3Error) if (!project.value) { throw createError({ diff --git a/packages/ui/src/components/project/ProjectPageVersions.vue b/packages/ui/src/components/project/ProjectPageVersions.vue index 8301ed5cd4..b353cd7fc4 100644 --- a/packages/ui/src/components/project/ProjectPageVersions.vue +++ b/packages/ui/src/components/project/ProjectPageVersions.vue @@ -42,7 +42,12 @@
@@ -57,6 +62,12 @@ > Platforms
+
+ Environment +
@@ -144,6 +155,15 @@
+
+ + {{ ENVIRONMENTS_COPY[version.environment]?.title }} + +
= computed( ) const selectedChannels: Ref = computed(() => versionFilters.value?.selectedChannels ?? []) +const hasMultipleEnvironments = computed(() => { + const environments = new Set(props.versions.map((v) => v.environment).filter(Boolean)) + return environments.size > 1 +}) + const filteredVersions = computed(() => { return props.versions.filter( (version) => @@ -321,6 +348,14 @@ function updateQuery(newQueries: Record From 486b19def8770b6979b795f4961a275ef5988187 Mon Sep 17 00:00:00 2001 From: tdgao Date: Wed, 24 Dec 2025 11:24:08 -0800 Subject: [PATCH 15/26] pnpm fix --- apps/frontend/src/pages/[type]/[id].vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/frontend/src/pages/[type]/[id].vue b/apps/frontend/src/pages/[type]/[id].vue index 94528a813f..ece97b0a16 100644 --- a/apps/frontend/src/pages/[type]/[id].vue +++ b/apps/frontend/src/pages/[type]/[id].vue @@ -43,16 +43,16 @@ - @@ -1003,9 +1003,9 @@ import { IntlFormatted } from '@vintl/vintl/components' import { useLocalStorage } from '@vueuse/core' import dayjs from 'dayjs' import { Tooltip } from 'floating-vue' +import { useTemplateRef } from 'vue' import { navigateTo } from '#app' -import { useTemplateRef } from 'vue' import Accordion from '~/components/ui/Accordion.vue' import AdPlaceholder from '~/components/ui/AdPlaceholder.vue' import AutomaticAccordion from '~/components/ui/AutomaticAccordion.vue' From 7918b90272b7b806196ddc9a1f2bc09c9e8c38d5 Mon Sep 17 00:00:00 2001 From: tdgao Date: Wed, 24 Dec 2025 11:38:37 -0800 Subject: [PATCH 16/26] pnpm fix on ui package --- packages/ui/src/components/project/ProjectPageVersions.vue | 2 +- .../project/settings/environment/ProjectEnvironmentModal.vue | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/project/ProjectPageVersions.vue b/packages/ui/src/components/project/ProjectPageVersions.vue index b353cd7fc4..16ad274d84 100644 --- a/packages/ui/src/components/project/ProjectPageVersions.vue +++ b/packages/ui/src/components/project/ProjectPageVersions.vue @@ -156,9 +156,9 @@
{{ ENVIRONMENTS_COPY[version.environment]?.title }} diff --git a/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue b/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue index 33a25c28fc..6f76258631 100644 --- a/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue +++ b/packages/ui/src/components/project/settings/environment/ProjectEnvironmentModal.vue @@ -11,6 +11,7 @@ diff --git a/apps/frontend/src/pages/[type]/[id]/version/[version].vue b/apps/frontend/src/pages/[type]/[id]/version/[version].vue index 13305ede16..62399f4a49 100644 --- a/apps/frontend/src/pages/[type]/[id]/version/[version].vue +++ b/apps/frontend/src/pages/[type]/[id]/version/[version].vue @@ -560,11 +560,16 @@ {{ $formatVersion(version.game_versions) }}
-
+

Environment

- - {{ environmentTitle }} - +
+ + + {{ environment.title.defaultMessage }} + +

Downloads

@@ -946,10 +951,8 @@ export default defineNuxtComponent({ (a, b) => order.indexOf(a.dependency_type) - order.indexOf(b.dependency_type), ) }, - environmentTitle() { - return ( - ENVIRONMENTS_COPY[this.version.environment]?.title || this.version.environment || 'Unknown' - ) + environment() { + return ENVIRONMENTS_COPY[this.version.environment] }, }, watch: { diff --git a/packages/ui/src/components/project/ProjectPageVersions.vue b/packages/ui/src/components/project/ProjectPageVersions.vue index 16ad274d84..504c2103b1 100644 --- a/packages/ui/src/components/project/ProjectPageVersions.vue +++ b/packages/ui/src/components/project/ProjectPageVersions.vue @@ -157,11 +157,20 @@
- {{ ENVIRONMENTS_COPY[version.environment]?.title }} + + {{ + ENVIRONMENTS_COPY[version.environment]?.title + ? formatMessage(ENVIRONMENTS_COPY[version.environment].title) + : '' + }}
@@ -235,7 +244,7 @@ import { commonMessages } from '../../utils/common-messages' import AutoLink from '../base/AutoLink.vue' import TagItem from '../base/TagItem.vue' import { Pagination, VersionChannelIndicator, VersionFilterControl } from '../index' -import { ENVIRONMENTS_COPY } from './settings/environment/Environments' +import { ENVIRONMENTS_COPY } from './settings/environment/environments' const { formatMessage } = useVIntl() const formatRelativeTime = useRelativeTime() diff --git a/packages/ui/src/components/project/ProjectSidebarCompatibility.vue b/packages/ui/src/components/project/ProjectSidebarCompatibility.vue index 9365b15aa3..068837d725 100644 --- a/packages/ui/src/components/project/ProjectSidebarCompatibility.vue +++ b/packages/ui/src/components/project/ProjectSidebarCompatibility.vue @@ -21,7 +21,7 @@ :action="() => router.push(`/${project.project_type}s?g=categories:${platform}`)" :style="`--_color: var(--color-platform-${platform})`" > - + {{ formatCategory(platform) }} @@ -69,6 +69,7 @@ + + + + +