From a53dae327af5e02fbe851a86f42a0235150780ba Mon Sep 17 00:00:00 2001 From: "Calum H. (IMB11)" Date: Tue, 9 Jun 2026 12:03:05 +0100 Subject: [PATCH] fix(skins): better offline handling --- .../ui/skin/VirtualSkinSectionList.vue | 8 +- apps/app-frontend/src/pages/Skins.vue | 125 ++++++++++++++++-- packages/app-lib/src/api/minecraft_skins.rs | 117 +++++++++------- .../ui/src/components/skin/SkinButton.vue | 39 ++++-- .../components/skin/SkinLikeTextButton.vue | 13 +- 5 files changed, 237 insertions(+), 65 deletions(-) diff --git a/apps/app-frontend/src/components/ui/skin/VirtualSkinSectionList.vue b/apps/app-frontend/src/components/ui/skin/VirtualSkinSectionList.vue index 43430cfa0a..b7ce1e2bc6 100644 --- a/apps/app-frontend/src/components/ui/skin/VirtualSkinSectionList.vue +++ b/apps/app-frontend/src/components/ui/skin/VirtualSkinSectionList.vue @@ -82,6 +82,7 @@ const props = defineProps<{ isSkinSelected: (skin: Skin) => boolean isSkinActive: (skin: Skin) => boolean isAddSkinButtonDragActive: boolean + readOnly?: boolean }>() const emit = defineEmits<{ @@ -362,7 +363,8 @@ defineExpose({ getAddSkinButtonElement }) ref="addSkinButton" class="aspect-[31/40] w-full min-w-0 box-border rounded-[20px]" dropzone - :drag-active="isAddSkinButtonDragActive" + :disabled="readOnly" + :drag-active="!readOnly && isAddSkinButtonDragActive" @click="emit('add-skin')" @dragenter="emit('add-skin-dragenter', $event)" @dragover="emit('add-skin-dragover', $event)" @@ -384,9 +386,10 @@ defineExpose({ getAddSkinButtonElement }) :backward-image-src="getBakedSkinTextures(skin)?.backwards" :selected="isSkinSelected(skin)" :active="isSkinActive(skin)" + :disabled="readOnly" @select="emit('select', skin)" > -