Fix bugs with 0.10.0, update changelog

This commit is contained in:
Prospector 2025-07-05 11:33:21 -07:00
parent 0030f35d0c
commit ece8a07486
7 changed files with 37 additions and 13 deletions

View File

@ -19,6 +19,7 @@ import {
SettingsIcon, SettingsIcon,
WorldIcon, WorldIcon,
XIcon, XIcon,
NewspaperIcon,
} from '@modrinth/assets' } from '@modrinth/assets'
import { import {
Avatar, Avatar,
@ -201,7 +202,7 @@ async function setupApp() {
title: article.title, title: article.title,
summary: article.summary, summary: article.summary,
date: article.date, date: article.date,
})) })).slice(0, 4)
} }
}) })
@ -610,6 +611,11 @@ function handleAuxClick(e) {
:key="`news-${index}`" :key="`news-${index}`"
:article="item" :article="item"
/> />
<ButtonStyled color="brand" size="large">
<a href="https://modrinth.com/news" target="_blank" class="my-4">
<NewspaperIcon /> View all news
</a>
</ButtonStyled>
</div> </div>
</div> </div>
</div> </div>

View File

@ -172,7 +172,10 @@ onUnmounted(() => unlisten())
<div class="flex items-center col-span-3 gap-1 text-secondary font-semibold"> <div class="flex items-center col-span-3 gap-1 text-secondary font-semibold">
<TimerIcon /> <TimerIcon />
<span class="text-sm"> <span class="text-sm">
Played {{ formatRelativeTime(dayjs(instance.last_played).toISOString()) }} <template v-if="instance.last_played">
Played {{ formatRelativeTime(dayjs(instance.last_played).toISOString()) }}
</template>
<template v-else> Never played </template>
</span> </span>
</div> </div>
</div> </div>

View File

@ -30,7 +30,7 @@ const getInstances = async () => {
return dateB - dateA return dateB - dateA
}) })
.slice(0, 4) .slice(0, 3)
} }
await getInstances() await getInstances()

View File

@ -1,4 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Dayjs } from 'dayjs';
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { import {
EyeIcon, EyeIcon,
@ -41,7 +42,8 @@ const emit = defineEmits<{
}>() }>()
const props = defineProps<{ const props = defineProps<{
instance: GameInstance instance: GameInstance,
last_played: Dayjs
}>() }>()
const loadingModpack = ref(!!props.instance.linked_data) const loadingModpack = ref(!!props.instance.linked_data)
@ -147,12 +149,12 @@ onUnmounted(() => {
: null : null
" "
class="w-fit shrink-0" class="w-fit shrink-0"
:class="{ 'cursor-help smart-clickable:allow-pointer-events': instance.last_played }" :class="{ 'cursor-help smart-clickable:allow-pointer-events': last_played }"
> >
<template v-if="instance.last_played"> <template v-if="last_played">
{{ {{
formatMessage(commonMessages.playedLabel, { formatMessage(commonMessages.playedLabel, {
time: formatRelativeTime(instance.last_played.toISOString()), time: formatRelativeTime(last_played.toISOString?.()),
}) })
}} }}
</template> </template>

View File

@ -84,7 +84,7 @@ async function populateJumpBackIn() {
worldItems.push({ worldItems.push({
type: 'world', type: 'world',
last_played: dayjs(world.last_played), last_played: dayjs(world.last_played ?? 0),
world: world, world: world,
instance: instance, instance: instance,
}) })
@ -138,13 +138,13 @@ async function populateJumpBackIn() {
instanceItems.push({ instanceItems.push({
type: 'instance', type: 'instance',
last_played: dayjs(instance.last_played), last_played: dayjs(instance.last_played ?? 0),
instance: instance, instance: instance,
}) })
} }
const items: JumpBackInItem[] = [...worldItems, ...instanceItems] const items: JumpBackInItem[] = [...worldItems, ...instanceItems]
items.sort((a, b) => dayjs(b.last_played).diff(dayjs(a.last_played))) items.sort((a, b) => dayjs(b.last_played ?? 0).diff(dayjs(a.last_played ?? 0)))
jumpBackInItems.value = items jumpBackInItems.value = items
.filter((item, index) => index < MIN_JUMP_BACK_IN || item.last_played.isAfter(TWO_WEEKS_AGO)) .filter((item, index) => index < MIN_JUMP_BACK_IN || item.last_played.isAfter(TWO_WEEKS_AGO))
.slice(0, MAX_JUMP_BACK_IN) .slice(0, MAX_JUMP_BACK_IN)
@ -291,7 +291,7 @@ onUnmounted(() => {
" "
@stop="() => stopInstance(item.instance.path)" @stop="() => stopInstance(item.instance.path)"
/> />
<InstanceItem v-else :instance="item.instance" /> <InstanceItem v-else :instance="item.instance" :last_played="item.last_played" />
</template> </template>
</div> </div>
</div> </div>

View File

@ -220,7 +220,7 @@ async function refreshSearch() {
} }
} }
results.value = rawResults.result results.value = rawResults.result
currentPage.value = Math.min(pageCount.value, currentPage.value) currentPage.value = Math.max(1, Math.min(pageCount.value, currentPage.value))
const persistentParams: LocationQuery = {} const persistentParams: LocationQuery = {}

View File

@ -10,11 +10,24 @@ export type VersionEntry = {
} }
const VERSIONS: VersionEntry[] = [ const VERSIONS: VersionEntry[] = [
{
date: `2025-07-05T12:00:00-07:00`,
product: 'app',
version: `0.10.1`,
body: `### Improvements
- News section will now only show up to 4 articles.
- Fixed critical issue with updating on Windows.
- Fixed search being broken after a query that yields no results.
- Fixed 'Jump back in' section on Home page not working.
- Fixed too many Quick Instance items on the sidebar causing the UI to overflow.`,
},
{ {
date: `2025-07-04T12:00:00-07:00`, date: `2025-07-04T12:00:00-07:00`,
product: 'app', product: 'app',
version: `0.10.0`, version: `0.10.0`,
body: `### Added body: `**Note: This update was pulled due to issues.**
### Added
- Added Skins page as a beta feature. There may be some minor bugs with it, but we'd love to get user feedback on this feature as it's been one of our most highly requested features. - Added Skins page as a beta feature. There may be some minor bugs with it, but we'd love to get user feedback on this feature as it's been one of our most highly requested features.
- Save as many of your own skins as you'd like to swap between them at any moment. - Save as many of your own skins as you'd like to swap between them at any moment.
- Pick a default cape, or override the cape on any of your saved skin profiles to tailor each look perfectly. - Pick a default cape, or override the cape on any of your saved skin profiles to tailor each look perfectly.