1
1
<script setup lang="ts">
2
2
import { UpdatedIcon , PlusIcon } from ' @modrinth/assets'
3
3
import { ButtonStyled , SkinPreviewRenderer } from ' @modrinth/ui'
4
- import { ref , computed , useTemplateRef } from ' vue'
4
+ import {ref , computed , useTemplateRef , onMounted } from ' vue'
5
5
import SkinButton from ' @/components/ui/skin/SkinButton.vue'
6
6
import EditSkinModal from ' @/components/ui/skin/EditSkinModal.vue'
7
7
import SelectCapeModal from ' @/components/ui/skin/SelectCapeModal.vue'
@@ -16,14 +16,15 @@ import { get as getSettings } from '@/helpers/settings.ts'
16
16
import { get as getCreds } from ' @/helpers/mr_auth'
17
17
import { get_user } from ' @/helpers/cache'
18
18
import type { Cape , Skin } from ' @/helpers/skins.ts'
19
+ import {get_default_user , users } from " @/helpers/auth" ;
19
20
20
21
const editSkinModal = useTemplateRef (' editSkinModal' )
21
22
const selectCapeModal = useTemplateRef (' selectCapeModal' )
22
23
23
24
const settings = ref (await getSettings ())
24
- const credentials = ref ()
25
25
const skins = ref <Skin []>([])
26
26
const capes = ref <Cape []>([])
27
+ const username = ref <string | undefined >(undefined )
27
28
28
29
const selectedSkin = ref <Skin | null >(null )
29
30
@@ -36,31 +37,22 @@ const defaultSkins = computed(() => filterDefaultSkins(skins.value))
36
37
37
38
const currentCape = ref <Cape >()
38
39
39
- await Promise .all ([fetchCredentials (), loadCapes (), loadSkins ()])
40
-
41
- async function fetchCredentials() {
42
- const creds = await getCreds ().catch (handleError )
43
- if (creds ?.user_id ) {
44
- creds .user = await get_user (creds .user_id ).catch (handleError )
45
- }
46
- credentials .value = creds
47
- }
40
+ await Promise .all ([loadCapes (), loadSkins (), loadUsername ()])
48
41
49
42
async function loadCapes() {
50
43
capes .value = (await get_available_capes ().catch (handleError )) ?? []
51
44
currentCape .value = capes .value .find ((c ) => c .is_equipped )
52
45
}
53
46
54
47
async function loadSkins() {
55
- skins .value = [];
48
+ console . log ( skins .value )
56
49
skins .value = (await get_available_skins ().catch (handleError )) ?? []
50
+ console .log (skins .value )
57
51
selectedSkin .value = skins .value .find ((s ) => s .is_equipped ) ?? null ;
58
52
}
59
53
60
54
async function changeSkin(newSkin : Skin ) {
61
- console .log (newSkin );
62
- selectedSkin .value = newSkin ;
63
- await equip_skin (selectedSkin .value ).catch (handleError );
55
+ await equip_skin (newSkin ).catch (handleError );
64
56
await loadSkins ();
65
57
}
66
58
@@ -70,6 +62,18 @@ async function handleCapeSelected(cape: Cape | undefined) {
70
62
await loadSkins ();
71
63
await loadCapes ();
72
64
}
65
+
66
+ async function loadUsername() {
67
+ try {
68
+ const defaultId = await get_default_user ()
69
+ const allAccounts = await users ();
70
+ const current = allAccounts .find (acc => acc .profile .id === defaultId )
71
+ username .value = current ?.profile .name ?? null
72
+ } catch (e ) {
73
+ handleError (e )
74
+ username .value = null
75
+ }
76
+ }
73
77
</script >
74
78
75
79
<template >
@@ -98,7 +102,7 @@ async function handleCapeSelected(cape: Cape | undefined) {
98
102
<SkinPreviewRenderer
99
103
wide-model-src =" /src/assets/models/classic_player.gltf"
100
104
slim-model-src =" /src/assets/models/slim_player.gltf"
101
- :nametag =" settings.hide_nametag_skins_page ? undefined : credentials?.user?. username"
105
+ :nametag =" settings.hide_nametag_skins_page ? undefined : username"
102
106
:texture-src =" previewSkin"
103
107
:variant =" selectedSkin?.variant"
104
108
/>
0 commit comments