diff --git a/.vscode/settings.json b/.vscode/settings.json index ec2392f57e..d4d338f6dc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ }, "editor.defaultFormatter": "esbenp.prettier-vscode", "[vue]": { - "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" + "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" diff --git a/apps/app-frontend/package.json b/apps/app-frontend/package.json index d68bcf03de..44439c7976 100644 --- a/apps/app-frontend/package.json +++ b/apps/app-frontend/package.json @@ -58,6 +58,7 @@ "tailwindcss": "^3.4.4", "typescript": "^5.5.4", "vite": "^5.4.6", + "vue-component-type-helpers": "^3.1.8", "vue-tsc": "^2.1.6" }, "packageManager": "pnpm@9.4.0", diff --git a/apps/frontend/package.json b/apps/frontend/package.json index b0d48e94bd..7dfa25981d 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -32,6 +32,7 @@ "tailwindcss": "^3.4.4", "typescript": "^5.4.5", "vite-svg-loader": "^5.1.0", + "vue-component-type-helpers": "^3.1.8", "vue-tsc": "^2.0.24" }, "dependencies": { diff --git a/apps/frontend/src/components/ui/ProjectMemberHeader.vue b/apps/frontend/src/components/ui/ProjectMemberHeader.vue index 10202c12a4..be287995fb 100644 --- a/apps/frontend/src/components/ui/ProjectMemberHeader.vue +++ b/apps/frontend/src/components/ui/ProjectMemberHeader.vue @@ -20,20 +20,6 @@ - diff --git a/apps/frontend/src/components/ui/create-project-version/components/AddedDependencyRow.vue b/apps/frontend/src/components/ui/create-project-version/components/AddedDependencyRow.vue new file mode 100644 index 0000000000..680d62893b --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/AddedDependencyRow.vue @@ -0,0 +1,56 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/components/LoaderPicker.vue b/apps/frontend/src/components/ui/create-project-version/components/LoaderPicker.vue new file mode 100644 index 0000000000..7896090873 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/LoaderPicker.vue @@ -0,0 +1,121 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/components/McVersionPicker.vue b/apps/frontend/src/components/ui/create-project-version/components/McVersionPicker.vue new file mode 100644 index 0000000000..575617a68d --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/McVersionPicker.vue @@ -0,0 +1,208 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue new file mode 100644 index 0000000000..8041dd8f8f --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue @@ -0,0 +1,70 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/components/SuggestedDependencies/SuggestedDependencies.vue b/apps/frontend/src/components/ui/create-project-version/components/SuggestedDependencies/SuggestedDependencies.vue new file mode 100644 index 0000000000..f92ed38347 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/SuggestedDependencies/SuggestedDependencies.vue @@ -0,0 +1,65 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/components/SuggestedDependencies/SuggestedDependency.vue b/apps/frontend/src/components/ui/create-project-version/components/SuggestedDependencies/SuggestedDependency.vue new file mode 100644 index 0000000000..c3e21f1c3e --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/SuggestedDependencies/SuggestedDependency.vue @@ -0,0 +1,54 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/components/VersionFileRow.vue b/apps/frontend/src/components/ui/create-project-version/components/VersionFileRow.vue new file mode 100644 index 0000000000..49b6a75cc1 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/components/VersionFileRow.vue @@ -0,0 +1,107 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddChangelogStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddChangelogStage.vue new file mode 100644 index 0000000000..476863a07c --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddChangelogStage.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue new file mode 100644 index 0000000000..68305141a6 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue @@ -0,0 +1,283 @@ + + + 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 new file mode 100644 index 0000000000..be134c0078 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddDetailsStage.vue @@ -0,0 +1,269 @@ + + + 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 new file mode 100644 index 0000000000..94ab570f9a --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddEnvironmentStage.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddFilesStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddFilesStage.vue new file mode 100644 index 0000000000..c4661d59bb --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddFilesStage.vue @@ -0,0 +1,240 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddLoadersStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddLoadersStage.vue new file mode 100644 index 0000000000..15a29a0162 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddLoadersStage.vue @@ -0,0 +1,72 @@ + + + diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddMcVersionsStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddMcVersionsStage.vue new file mode 100644 index 0000000000..d28345b782 --- /dev/null +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddMcVersionsStage.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/frontend/src/components/ui/create/ProjectCreateModal.vue b/apps/frontend/src/components/ui/create/ProjectCreateModal.vue index b3679674b0..5c6ebba60a 100644 --- a/apps/frontend/src/components/ui/create/ProjectCreateModal.vue +++ b/apps/frontend/src/components/ui/create/ProjectCreateModal.vue @@ -247,13 +247,7 @@ async function createProject() { }) modal.value.hide() - await router.push({ - name: 'type-id', - params: { - type: 'project', - id: slug.value, - }, - }) + await router.push(`/project/${slug.value}/settings`) } catch (err) { addNotification({ title: formatMessage(messages.errorTitle), diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index 3936c29224..1ccef00a26 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -437,6 +437,9 @@ "common.yes": { "message": "Yes" }, + "create-project-version.create-modal.stage.add-files.admonition": { + "message": "Supplementary files are for supporting resources like source code, not for alternative versions or variants." + }, "create.collection.cancel": { "message": "Cancel" }, @@ -2246,12 +2249,6 @@ "project.status.archived.message": { "message": "{title} has been archived. {title} will not receive any further updates unless the author decides to unarchive the project." }, - "project.version.all-versions": { - "message": "All versions" - }, - "project.version.back-to-versions": { - "message": "Back to versions" - }, "project.versions.title": { "message": "Versions" }, diff --git a/apps/frontend/src/pages/[type]/[id].vue b/apps/frontend/src/pages/[type]/[id].vue index 92052bdad7..ec39508903 100644 --- a/apps/frontend/src/pages/[type]/[id].vue +++ b/apps/frontend/src/pages/[type]/[id].vue @@ -32,10 +32,7 @@ :versions="versions" :current-member="currentMember" :is-settings="route.name.startsWith('type-id-settings')" - :route-name="route.name" :set-processing="setProcessing" - :collapsed="collapsedChecklist" - :toggle-collapsed="() => (collapsedChecklist = !collapsedChecklist)" :all-members="allMembers" :update-members="updateMembers" :auth="auth" @@ -55,6 +52,7 @@ :patch-project="patchProject" :patch-icon="patchIcon" :reset-project="resetProject" + :reset-versions="resetVersions" :reset-organization="resetOrganization" :reset-members="resetMembers" :route="route" @@ -447,14 +445,34 @@
@@ -280,30 +266,27 @@ import { CalendarIcon, ContractIcon, - EditIcon, ExpandIcon, ExternalIcon, ImageIcon, - InfoIcon, LeftArrowIcon, PlusIcon, RightArrowIcon, SaveIcon, + SettingsIcon, StarIcon, TransferIcon, - TrashIcon, - UploadIcon, XIcon, } from '@modrinth/assets' import { + Admonition, + ButtonStyled, ConfirmModal, - DropArea, FileInput, injectNotificationManager, NewModal as Modal, } from '@modrinth/ui' - -import { isPermission } from '~/utils/permissions.ts' +import { useLocalStorage } from '@vueuse/core' const props = defineProps({ project: { @@ -334,6 +317,11 @@ useSeoMeta({ ogTitle: title, ogDescription: description, }) + +const hideGalleryAdmonition = useLocalStorage( + 'hideGalleryHasMovedAdmonition', + !props.project.gallery.length, +) + diff --git a/apps/frontend/src/pages/[type]/[id]/settings/gallery.vue b/apps/frontend/src/pages/[type]/[id]/settings/gallery.vue new file mode 100644 index 0000000000..92de1e97ee --- /dev/null +++ b/apps/frontend/src/pages/[type]/[id]/settings/gallery.vue @@ -0,0 +1,810 @@ +