From 46c325f78acf80cb0cc39e66bd36314c5d54c9a2 Mon Sep 17 00:00:00 2001
From: Prospector <6166773+Prospector@users.noreply.github.com>
Date: Thu, 28 Aug 2025 15:11:35 -0700
Subject: [PATCH] Envs v3 frontend (#4267)
* New envs frontend
* lint fix
* Add blog post, user-facing changes, dashboard warning, project page member warning, and migration reviewing. maybe some other misc stuff
* lint
* lint
* ignore .data in .prettierignore
* i18n as fuck
* fix proj page
* Improve news markdown rendering
* improve phrasing of initial paragraph
* Fix environments not reloading after save
* index.ts instead of underscored name
* shrink-0 back on these icons
---
apps/frontend/.prettierignore | 1 +
apps/frontend/src/app.vue | 20 +
apps/frontend/src/assets/styles/layout.scss | 1 +
.../src/components/ui/NavStackItem.vue | 94 +--
.../ui/moderation/ModerationProjectNags.vue | 6 +-
apps/frontend/src/composables/featureFlags.ts | 2 +
apps/frontend/src/composables/user.js | 1 +
apps/frontend/src/locales/en-US/index.json | 210 ++++++
apps/frontend/src/pages/[type]/[id].vue | 674 ++++++++++++------
.../src/pages/[type]/[id]/settings.vue | 162 +++++
.../[type]/[id]/settings/environment.vue | 165 +++++
.../pages/[type]/[id]/settings/general.vue | 192 +++++
.../src/pages/[type]/[id]/settings/index.vue | 9 +
.../frontend/src/pages/dashboard/projects.vue | 28 +-
.../src/pages/news/article/[slug].vue | 5 +-
.../new-environments/env-settings.webp | Bin 0 -> 126996 bytes
.../article/new-environments/thumbnail.webp | Bin 0 -> 29724 bytes
.../src/public/news/feed/articles.json | 7 +
apps/frontend/src/public/news/feed/rss.xml | 10 +-
packages/blog/articles/new-environments.md | 80 +++
packages/blog/compiled/index.ts | 2 +
.../blog/compiled/new_environments.content.ts | 2 +
packages/blog/compiled/new_environments.ts | 11 +
.../public/new-environments/env-settings.webp | Bin 0 -> 126996 bytes
.../public/new-environments/thumbnail.webp | Bin 0 -> 29724 bytes
packages/moderation/src/data/nags/core.ts | 10 +-
.../moderation/src/locales/en-US/index.json | 6 +-
.../ui/src/components/base/IconSelect.vue | 76 ++
.../src/components/base/LargeRadioButton.vue | 22 +
.../ui/src/components/base/SettingsLabel.vue | 44 ++
.../components/base/UnsavedChangesPopup.vue | 106 +++
packages/ui/src/components/index.ts | 14 +-
.../project/ProjectSidebarCompatibility.vue | 117 ++-
packages/ui/src/components/project/index.ts | 14 +
.../ProjectSettingsEnvSelector.vue | 271 +++++++
.../src/components/project/settings/index.ts | 2 +
packages/ui/src/locales/en-US/index.json | 144 ++++
packages/ui/src/providers/api.ts | 5 +
packages/ui/src/providers/index.ts | 1 +
packages/ui/src/providers/project-page.ts | 13 +
packages/ui/src/types.d.ts | 2 +
packages/ui/src/utils/common-messages.ts | 224 ++++--
packages/ui/src/utils/index.ts | 1 +
packages/ui/src/utils/savable.ts | 38 +
packages/utils/api/default_impl.ts | 41 ++
packages/utils/api/index.ts | 7 +
packages/utils/api/projects.ts | 41 ++
packages/utils/index.ts | 1 +
packages/utils/types.ts | 24 +-
49 files changed, 2509 insertions(+), 397 deletions(-)
create mode 100644 apps/frontend/src/pages/[type]/[id]/settings.vue
create mode 100644 apps/frontend/src/pages/[type]/[id]/settings/environment.vue
create mode 100644 apps/frontend/src/pages/[type]/[id]/settings/general.vue
create mode 100644 apps/frontend/src/public/news/article/new-environments/env-settings.webp
create mode 100644 apps/frontend/src/public/news/article/new-environments/thumbnail.webp
create mode 100644 packages/blog/articles/new-environments.md
create mode 100644 packages/blog/compiled/new_environments.content.ts
create mode 100644 packages/blog/compiled/new_environments.ts
create mode 100644 packages/blog/public/new-environments/env-settings.webp
create mode 100644 packages/blog/public/new-environments/thumbnail.webp
create mode 100644 packages/ui/src/components/base/IconSelect.vue
create mode 100644 packages/ui/src/components/base/LargeRadioButton.vue
create mode 100644 packages/ui/src/components/base/SettingsLabel.vue
create mode 100644 packages/ui/src/components/base/UnsavedChangesPopup.vue
create mode 100644 packages/ui/src/components/project/index.ts
create mode 100644 packages/ui/src/components/project/settings/environment/ProjectSettingsEnvSelector.vue
create mode 100644 packages/ui/src/components/project/settings/index.ts
create mode 100644 packages/ui/src/providers/api.ts
create mode 100644 packages/ui/src/providers/project-page.ts
create mode 100644 packages/ui/src/types.d.ts
create mode 100644 packages/ui/src/utils/savable.ts
create mode 100644 packages/utils/api/default_impl.ts
create mode 100644 packages/utils/api/index.ts
create mode 100644 packages/utils/api/projects.ts
diff --git a/apps/frontend/.prettierignore b/apps/frontend/.prettierignore
index d4f9ef965..b16cc9509 100644
--- a/apps/frontend/.prettierignore
+++ b/apps/frontend/.prettierignore
@@ -1,6 +1,7 @@
**/.nuxt
**/dist
**/.output
+**/.data
src/generated/**
src/locales/**
src/public/news/feed
diff --git a/apps/frontend/src/app.vue b/apps/frontend/src/app.vue
index c79296bce..08c6e15e8 100644
--- a/apps/frontend/src/app.vue
+++ b/apps/frontend/src/app.vue
@@ -7,10 +7,30 @@
diff --git a/apps/frontend/src/assets/styles/layout.scss b/apps/frontend/src/assets/styles/layout.scss
index 396481ed5..d0010f7aa 100644
--- a/apps/frontend/src/assets/styles/layout.scss
+++ b/apps/frontend/src/assets/styles/layout.scss
@@ -42,6 +42,7 @@
padding: 0 1.5rem;
grid-template:
+ 'header'
'sidebar'
'content'
'info'
diff --git a/apps/frontend/src/components/ui/NavStackItem.vue b/apps/frontend/src/components/ui/NavStackItem.vue
index 06146758f..aff9b434e 100644
--- a/apps/frontend/src/components/ui/NavStackItem.vue
+++ b/apps/frontend/src/components/ui/NavStackItem.vue
@@ -1,23 +1,18 @@
-
- Modrinth Servers is the easiest way to play with your friends without hassle! + {{ formatMessage(messages.serversPromoDescription) }}
- Starting at $5 / month + {{ formatMessage(messages.serversPromoPricing, { monthly: `${formatMessage(projectPageMessages.monthly)}` }) }}