enhance: アイコンデコレーション管理画面の改善
This commit is contained in:
		| @@ -10,12 +10,12 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||
| > | ||||
| 	<div :class="$style.name"><MkCondensedLine :minScale="0.5">{{ decoration.name }}</MkCondensedLine></div> | ||||
| 	<MkAvatar style="width: 60px; height: 60px;" :user="$i" :decorations="[{ url: decoration.url, angle, flipH, offsetX, offsetY }]" forceShowDecoration/> | ||||
| 	<i v-if="decoration.roleIdsThatCanBeUsedThisDecoration.length > 0 && !$i.roles.some(r => decoration.roleIdsThatCanBeUsedThisDecoration.includes(r.id))" :class="$style.lock" class="ti ti-lock"></i> | ||||
| 	<i v-if="locked" :class="$style.lock" class="ti ti-lock"></i> | ||||
| </div> | ||||
| </template> | ||||
|  | ||||
| <script lang="ts" setup> | ||||
| import { } from 'vue'; | ||||
| import { computed } from 'vue'; | ||||
| import { signinRequired } from '@/account.js'; | ||||
|  | ||||
| const $i = signinRequired(); | ||||
| @@ -37,6 +37,8 @@ const props = defineProps<{ | ||||
| const emit = defineEmits<{ | ||||
| 	(ev: 'click'): void; | ||||
| }>(); | ||||
|  | ||||
| const locked = computed(() => props.decoration.roleIdsThatCanBeUsedThisDecoration.length > 0 && !$i.roles.some(r => props.decoration.roleIdsThatCanBeUsedThisDecoration.includes(r.id))); | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" module> | ||||
| @@ -67,5 +69,6 @@ const emit = defineEmits<{ | ||||
| 	position: absolute; | ||||
| 	bottom: 12px; | ||||
| 	right: 12px; | ||||
| 	color: var(--MI_THEME-warn); | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||
| 		<div :class="$style.footer" class="_buttonsCenter"> | ||||
| 			<MkButton v-if="usingIndex != null" primary rounded @click="update"><i class="ti ti-check"></i> {{ i18n.ts.update }}</MkButton> | ||||
| 			<MkButton v-if="usingIndex != null" rounded @click="detach"><i class="ti ti-x"></i> {{ i18n.ts.detach }}</MkButton> | ||||
| 			<MkButton v-else :disabled="exceeded" primary rounded @click="attach"><i class="ti ti-check"></i> {{ i18n.ts.attach }}</MkButton> | ||||
| 			<MkButton v-else :disabled="exceeded || locked" primary rounded @click="attach"><i class="ti ti-check"></i> {{ i18n.ts.attach }}</MkButton> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </MkModalWindow> | ||||
| @@ -61,6 +61,7 @@ const props = defineProps<{ | ||||
| 		id: string; | ||||
| 		url: string; | ||||
| 		name: string; | ||||
| 		roleIdsThatCanBeUsedThisDecoration: string[]; | ||||
| 	}; | ||||
| }>(); | ||||
|  | ||||
| @@ -83,6 +84,7 @@ const emit = defineEmits<{ | ||||
|  | ||||
| const dialog = shallowRef<InstanceType<typeof MkModalWindow>>(); | ||||
| const exceeded = computed(() => ($i.policies.avatarDecorationLimit - $i.avatarDecorations.length) <= 0); | ||||
| const locked = computed(() => props.decoration.roleIdsThatCanBeUsedThisDecoration.length > 0 && !$i.roles.some(r => props.decoration.roleIdsThatCanBeUsedThisDecoration.includes(r.id))); | ||||
| const angle = ref((props.usingIndex != null ? $i.avatarDecorations[props.usingIndex].angle : null) ?? 0); | ||||
| const flipH = ref((props.usingIndex != null ? $i.avatarDecorations[props.usingIndex].flipH : null) ?? false); | ||||
| const offsetX = ref((props.usingIndex != null ? $i.avatarDecorations[props.usingIndex].offsetX : null) ?? 0); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo