Skins
-
+
@@ -124,8 +157,8 @@ async function loadUsername() {
class="flex-none w-[8vw] h-[15vw] max-w-[8rem] max-h-[15rem]"
:key="`saved-skin-${skin.texture_key}`"
editable
- :forward-image-src="map.get(skin.texture_key)?.forwards ?? ''"
- :backward-image-src="map.get(skin.texture_key)?.backwards ?? ''"
+ :forward-image-src="getBakedSkinTextures(skin)?.forwards"
+ :backward-image-src="getBakedSkinTextures(skin)?.backwards"
:selected="selectedSkin === skin"
@select="changeSkin(skin)"
@edit="e => editSkinModal?.show(e, skin)"
@@ -140,8 +173,8 @@ async function loadUsername() {
v-for="skin in defaultSkins"
class="flex-none w-[8vw] h-[15vw] max-w-[8rem] max-h-[15rem]"
:key="`default-skin-${skin.texture_key}`"
- :forward-image-src="map.get(skin.texture_key)?.forwards ?? ''"
- :backward-image-src="map.get(skin.texture_key)?.backwards ?? ''"
+ :forward-image-src="getBakedSkinTextures(skin)?.forwards"
+ :backward-image-src="getBakedSkinTextures(skin)?.backwards"
:selected="selectedSkin === skin"
:tooltip="skin.name"
@select="changeSkin(skin)"
diff --git a/packages/ui/src/components/skin/SkinButton.vue b/packages/ui/src/components/skin/SkinButton.vue
index cce43a9b3..d5efc9ee9 100644
--- a/packages/ui/src/components/skin/SkinButton.vue
+++ b/packages/ui/src/components/skin/SkinButton.vue
@@ -12,8 +12,8 @@ const emit = defineEmits<{
}>()
const props = withDefaults(defineProps<{
- forwardImageSrc: string
- backwardImageSrc: string
+ forwardImageSrc?: string
+ backwardImageSrc?: string
selected: boolean
editable?: boolean
tooltip?: string
@@ -22,6 +22,14 @@ const props = withDefaults(defineProps<{
})
const pressed = ref(false)
+const imagesLoaded = ref({
+ forward: Boolean(props.forwardImageSrc),
+ backward: Boolean(props.backwardImageSrc)
+})
+
+function onImageLoad(type: 'forward' | 'backward') {
+ imagesLoaded.value[type] = true
+}