diff --git a/Cargo.lock b/Cargo.lock index 0994b24f2..dce71d05c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9101,6 +9101,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", + "serde_with", "tauri", "tauri-build 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "tauri-plugin-deep-link", diff --git a/apps/app-frontend/src/App.vue b/apps/app-frontend/src/App.vue index 694830756..258f762c2 100644 --- a/apps/app-frontend/src/App.vue +++ b/apps/app-frontend/src/App.vue @@ -357,6 +357,7 @@ function handleAuxClick(e) { diff --git a/apps/app-frontend/src/components/ui/friends/FriendsList.vue b/apps/app-frontend/src/components/ui/friends/FriendsList.vue index 71570e404..338a7edcf 100644 --- a/apps/app-frontend/src/components/ui/friends/FriendsList.vue +++ b/apps/app-frontend/src/components/ui/friends/FriendsList.vue @@ -161,7 +161,7 @@ onUnmounted(() => { diff --git a/apps/app-frontend/src/components/ui/instance_settings/GeneralSettings.vue b/apps/app-frontend/src/components/ui/instance_settings/GeneralSettings.vue new file mode 100644 index 000000000..1343b0128 --- /dev/null +++ b/apps/app-frontend/src/components/ui/instance_settings/GeneralSettings.vue @@ -0,0 +1,325 @@ + + + + diff --git a/apps/app-frontend/src/components/ui/instance_settings/HooksSettings.vue b/apps/app-frontend/src/components/ui/instance_settings/HooksSettings.vue new file mode 100644 index 000000000..691d47e44 --- /dev/null +++ b/apps/app-frontend/src/components/ui/instance_settings/HooksSettings.vue @@ -0,0 +1,154 @@ + + + diff --git a/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue b/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue new file mode 100644 index 000000000..2927a29a8 --- /dev/null +++ b/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue @@ -0,0 +1,742 @@ + + + diff --git a/apps/app-frontend/src/components/ui/instance_settings/JavaSettings.vue b/apps/app-frontend/src/components/ui/instance_settings/JavaSettings.vue new file mode 100644 index 000000000..9b258da9a --- /dev/null +++ b/apps/app-frontend/src/components/ui/instance_settings/JavaSettings.vue @@ -0,0 +1,189 @@ + + + diff --git a/apps/app-frontend/src/components/ui/instance_settings/WindowSettings.vue b/apps/app-frontend/src/components/ui/instance_settings/WindowSettings.vue new file mode 100644 index 000000000..6cc1db44a --- /dev/null +++ b/apps/app-frontend/src/components/ui/instance_settings/WindowSettings.vue @@ -0,0 +1,166 @@ + + + diff --git a/apps/app-frontend/src/components/ui/modal/AppSettingsModal.vue b/apps/app-frontend/src/components/ui/modal/AppSettingsModal.vue index d5c6bd5a3..d23ceae12 100644 --- a/apps/app-frontend/src/components/ui/modal/AppSettingsModal.vue +++ b/apps/app-frontend/src/components/ui/modal/AppSettingsModal.vue @@ -9,6 +9,7 @@ import { GameIcon, CoffeeIcon, } from '@modrinth/assets' +import { TabbedModal } from '@modrinth/ui' import { ref } from 'vue' import { useVIntl, defineMessage } from '@vintl/vintl' import AppearanceSettings from '@/components/ui/settings/AppearanceSettings.vue' @@ -24,15 +25,8 @@ import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue' const themeStore = useTheming() -const modal = ref() - -function show() { - modal.value.show() -} - const { formatMessage } = useVIntl() -const selectedTab = ref(0) const devModeCounter = ref(0) const developerModeEnabled = defineMessage({ @@ -59,8 +53,8 @@ const tabs = [ }, { name: defineMessage({ - id: 'app.settings.tabs.java-versions', - defaultMessage: 'Java versions', + id: 'app.settings.tabs.java-installations', + defaultMessage: 'Java installations', }), icon: CoffeeIcon, content: JavaSettings, @@ -92,13 +86,18 @@ const tabs = [ }, ] +const modal = ref() + +function show() { + modal.value.show() +} + defineExpose({ show }) const version = await getVersion() const osPlatform = getOsPlatform() const osVersion = getOsVersion() -/ diff --git a/apps/app-frontend/src/components/ui/modal/ConfirmModalWrapper.vue b/apps/app-frontend/src/components/ui/modal/ConfirmModalWrapper.vue index d9e7f63f3..fe6d0dbea 100644 --- a/apps/app-frontend/src/components/ui/modal/ConfirmModalWrapper.vue +++ b/apps/app-frontend/src/components/ui/modal/ConfirmModalWrapper.vue @@ -25,10 +25,18 @@ defineProps({ default: 'No description defined', required: true, }, + proceedIcon: { + type: Object, + default: undefined, + }, proceedLabel: { type: String, default: 'Proceed', }, + danger: { + type: Boolean, + default: true, + }, }) const emit = defineEmits(['proceed']) @@ -61,9 +69,11 @@ function proceed() { :has-to-type="hasToType" :title="title" :description="description" + :proceed-icon="proceedIcon" :proceed-label="proceedLabel" :on-hide="onModalHide" :noblur="!themeStore.advancedRendering" + :danger="danger" @proceed="proceed" /> diff --git a/apps/app-frontend/src/components/ui/modal/InstanceSettingsModal.vue b/apps/app-frontend/src/components/ui/modal/InstanceSettingsModal.vue new file mode 100644 index 000000000..d22e31943 --- /dev/null +++ b/apps/app-frontend/src/components/ui/modal/InstanceSettingsModal.vue @@ -0,0 +1,103 @@ + + diff --git a/apps/app-frontend/src/components/ui/modal/ModalWrapper.vue b/apps/app-frontend/src/components/ui/modal/ModalWrapper.vue index 53cc0a7c0..63d0c5f9d 100644 --- a/apps/app-frontend/src/components/ui/modal/ModalWrapper.vue +++ b/apps/app-frontend/src/components/ui/modal/ModalWrapper.vue @@ -49,6 +49,9 @@ function onModalHide() { diff --git a/apps/app-frontend/src/components/ui/settings/AppearanceSettings.vue b/apps/app-frontend/src/components/ui/settings/AppearanceSettings.vue index 0f9104743..a706f9527 100644 --- a/apps/app-frontend/src/components/ui/settings/AppearanceSettings.vue +++ b/apps/app-frontend/src/components/ui/settings/AppearanceSettings.vue @@ -1,5 +1,5 @@ diff --git a/apps/app-frontend/src/components/ui/settings/DefaultInstanceSettings.vue b/apps/app-frontend/src/components/ui/settings/DefaultInstanceSettings.vue index f0ef7e918..ecff3f485 100644 --- a/apps/app-frontend/src/components/ui/settings/DefaultInstanceSettings.vue +++ b/apps/app-frontend/src/components/ui/settings/DefaultInstanceSettings.vue @@ -46,121 +46,136 @@ watch( diff --git a/apps/app-frontend/src/components/ui/settings/FeatureFlagSettings.vue b/apps/app-frontend/src/components/ui/settings/FeatureFlagSettings.vue index 65ca0f8af..92b109b8d 100644 --- a/apps/app-frontend/src/components/ui/settings/FeatureFlagSettings.vue +++ b/apps/app-frontend/src/components/ui/settings/FeatureFlagSettings.vue @@ -27,7 +27,9 @@ function formatFlagName(name: string) {