diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2025-12-16 11:42:06 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-16 11:42:06 +0900 |
| commit | 0d52145b2bc9ba9dd0f138673d0fc12ea5d9c3ec (patch) | |
| tree | 758c520166bfa855e4b07eabe48e53a660391939 /packages/frontend/src/components | |
| parent | fix(gh): `thollander/actions-comment-pull-request@v3` の breaking change 対... (diff) | |
| download | misskey-0d52145b2bc9ba9dd0f138673d0fc12ea5d9c3ec.tar.gz misskey-0d52145b2bc9ba9dd0f138673d0fc12ea5d9c3ec.tar.bz2 misskey-0d52145b2bc9ba9dd0f138673d0fc12ea5d9c3ec.zip | |
deps: update deps [ci skip] (#16997)
* update deps
* update chokidar to v5
* fix type error
* rollback serviceworker types to r74
* fix [ci skip]
Diffstat (limited to 'packages/frontend/src/components')
| -rw-r--r-- | packages/frontend/src/components/MkImgPreviewDialog.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/components/global/MkAvatar.vue | 19 |
2 files changed, 14 insertions, 7 deletions
diff --git a/packages/frontend/src/components/MkImgPreviewDialog.vue b/packages/frontend/src/components/MkImgPreviewDialog.vue index 3e6e4e0ec9..e17a1651cf 100644 --- a/packages/frontend/src/components/MkImgPreviewDialog.vue +++ b/packages/frontend/src/components/MkImgPreviewDialog.vue @@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only </MkModalWindow> </template> <script lang="ts" setup> -import { defineProps, ref } from 'vue'; +import { ref } from 'vue'; import MkModalWindow from './MkModalWindow.vue'; import type * as Misskey from 'misskey-js'; diff --git a/packages/frontend/src/components/global/MkAvatar.vue b/packages/frontend/src/components/global/MkAvatar.vue index c2548cc7be..e7208ed574 100644 --- a/packages/frontend/src/components/global/MkAvatar.vue +++ b/packages/frontend/src/components/global/MkAvatar.vue @@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only <template v-if="showDecoration"> <img v-for="decoration in decorations ?? user.avatarDecorations" - :class="[$style.decoration, { [$style.decorationBlink]: decoration.blink }]" + :class="[$style.decoration, { [$style.decorationBlink]: getDecorationIsBrink(decoration) }]" :src="getDecorationUrl(decoration)" :style="{ rotate: getDecorationAngle(decoration), @@ -56,13 +56,16 @@ import { prefer } from '@/preferences.js'; const animation = ref(prefer.s.animation); const squareAvatars = ref(prefer.s.squareAvatars); +type Decoration = Misskey.entities.UserDetailed['avatarDecorations'][number]; +type DecorationEditorDecoration = Omit<Misskey.entities.UserDetailed['avatarDecorations'][number], 'id'> & { blink?: boolean; }; + const props = withDefaults(defineProps<{ user: Misskey.entities.User; target?: string | null; link?: boolean; preview?: boolean; indicator?: boolean; - decorations?: (Omit<Misskey.entities.UserDetailed['avatarDecorations'][number], 'id'> & { blink?: boolean; })[]; + decorations?: DecorationEditorDecoration[]; forceShowDecoration?: boolean; }>(), { target: null, @@ -93,27 +96,31 @@ function onClick(ev: MouseEvent): void { emit('click', ev); } -function getDecorationUrl(decoration: Omit<Misskey.entities.UserDetailed['avatarDecorations'][number], 'id'>) { +function getDecorationUrl(decoration: Decoration | DecorationEditorDecoration) { if (prefer.s.disableShowingAnimatedImages || prefer.s.dataSaver.avatar) return getStaticImageUrl(decoration.url); return decoration.url; } -function getDecorationAngle(decoration: Omit<Misskey.entities.UserDetailed['avatarDecorations'][number], 'id'>) { +function getDecorationAngle(decoration: Decoration | DecorationEditorDecoration) { const angle = decoration.angle ?? 0; return angle === 0 ? undefined : `${angle * 360}deg`; } -function getDecorationScale(decoration: Omit<Misskey.entities.UserDetailed['avatarDecorations'][number], 'id'>) { +function getDecorationScale(decoration: Decoration | DecorationEditorDecoration) { const scaleX = decoration.flipH ? -1 : 1; return scaleX === 1 ? undefined : `${scaleX} 1`; } -function getDecorationOffset(decoration: Omit<Misskey.entities.UserDetailed['avatarDecorations'][number], 'id'>) { +function getDecorationOffset(decoration: Decoration | DecorationEditorDecoration) { const offsetX = decoration.offsetX ?? 0; const offsetY = decoration.offsetY ?? 0; return offsetX === 0 && offsetY === 0 ? undefined : `${offsetX * 100}% ${offsetY * 100}%`; } +function getDecorationIsBrink(decoration: Decoration | DecorationEditorDecoration) { + return 'blink' in decoration && decoration.blink === true; +} + const color = ref<string | undefined>(); watch(() => props.user.avatarBlurhash, () => { |