MR App 0.9.5 - Big bugfix update (#3585)

* Add launcher_feature_version to Profile

* Misc fixes

- Add typing to theme and settings stuff
- Push instance route on creation from installing a modpack
- Fixed servers not reloading properly when first added

* Make old instances scan the logs folder for joined servers on launcher startup

* Create AttachedWorldData

* Change AttachedWorldData interface

* Rename WorldType::World to WorldType::Singleplayer

* Implement world display status system

* Fix Minecraft font

* Fix set_world_display_status Tauri error

* Add 'Play instance' option

* Add option to disable worlds showing in Home

* Fixes

- Fix available server filter only showing if there are some available
- Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds
- Fixed new worlds not being automatically added when detected
- Rephrased Jump back into worlds option description

* Fixed sometimes more than 6 items showing up in Jump back in

* Fix servers.dat issue with instances you haven't played before

* Fix too large of bulk requests being made, limit max to 800 #3430

* Add hiding from home page, add types to Mods.vue

* Make recent worlds go into grid when display is huge

* Fix lint

* Remove redundant media query

* Fix protocol version on home page, and home page being blocked by pinging servers

* Clippy fix

* More Clippy fixes

* Fix Prettier lints

* Undo `from_string` changes

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Alejandro González <me@alegon.dev>
This commit is contained in:
Prospector
2025-05-01 16:13:13 -07:00
committed by GitHub
parent 4a2605bc1e
commit 3dad6b317f
123 changed files with 1622 additions and 744 deletions

View File

@@ -1,5 +1,5 @@
<template>
<div v-if="options.length > 1" class="flex flex-wrap gap-1 items-center">
<div v-if="showAllOptions || options.length > 1" class="flex flex-wrap gap-1 items-center">
<FilterIcon class="text-secondary h-5 w-5 mr-1" />
<button
v-for="filter in options"
@@ -28,6 +28,7 @@ const selectedFilters = defineModel<string[]>({ required: true })
const props = defineProps<{
options: FilterBarOption[]
showAllOptions?: boolean
}>()
watch(

View File

@@ -26,7 +26,7 @@ const selected: Ref<string[]> = computed(() =>
const allSelected = ref(false)
const model = defineModel()
const model = defineModel<string[]>()
function updateSelection() {
model.value = selected.value

View File

@@ -1,27 +1,15 @@
<script setup>
<script setup lang="ts" generic="T extends string">
import { MoonIcon, RadioButtonCheckedIcon, RadioButtonIcon, SunIcon } from '@modrinth/assets'
import { useVIntl, defineMessages } from '@vintl/vintl'
import { defineMessages, useVIntl } from '@vintl/vintl'
const { formatMessage } = useVIntl()
defineProps({
updateColorTheme: {
type: Function,
required: true,
},
currentTheme: {
type: String,
required: true,
},
themeOptions: {
type: Array,
required: true,
},
systemThemeColor: {
type: String,
required: true,
},
})
defineProps<{
updateColorTheme: (theme: T) => void
currentTheme: T
themeOptions: readonly T[]
systemThemeColor: T
}>()
const colorTheme = defineMessages({
title: {
@@ -61,6 +49,10 @@ const colorTheme = defineMessages({
defaultMessage: 'Preferred dark theme',
},
})
function asString(theme: T): string {
return theme
}
</script>
<template>
@@ -82,7 +74,7 @@ const colorTheme = defineMessages({
<div class="label">
<RadioButtonCheckedIcon v-if="currentTheme === option" class="radio" />
<RadioButtonIcon v-else class="radio" />
{{ colorTheme[option] ? formatMessage(colorTheme[option]) : option }}
{{ colorTheme[asString(option)] ? formatMessage(colorTheme[asString(option)]) : option }}
<SunIcon
v-if="'light' === option"
v-tooltip="formatMessage(colorTheme.preferredLight)"