From 0f8b15f0fec1a474b8f5a0c0c4b7be5ccd42b493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:28:32 +0900 Subject: [PATCH] fix(frontend-embed): fix instanceticker, remove directives (#14631) --- packages/frontend-embed/src/components/EmInstanceTicker.vue | 4 ++-- packages/frontend-embed/src/components/EmMention.vue | 2 +- packages/frontend-embed/src/components/EmNote.vue | 4 +++- packages/frontend-embed/src/components/EmNoteDetailed.vue | 2 ++ packages/frontend-embed/src/components/EmNoteHeader.vue | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/frontend-embed/src/components/EmInstanceTicker.vue b/packages/frontend-embed/src/components/EmInstanceTicker.vue index eeeaee528e..4a116e317a 100644 --- a/packages/frontend-embed/src/components/EmInstanceTicker.vue +++ b/packages/frontend-embed/src/components/EmInstanceTicker.vue @@ -29,12 +29,12 @@ const props = defineProps<{ // if no instance data is given, this is for the local instance const instance = props.instance ?? { name: serverMetadata.name, - themeColor: (document.querySelector('meta[name="theme-color-orig"]') as HTMLMetaElement).content, + themeColor: (document.querySelector('meta[name="theme-color-orig"]') as HTMLMetaElement)?.content, }; const faviconUrl = computed(() => props.instance ? mediaProxy.getProxiedImageUrlNullable(props.instance.faviconUrl, 'preview') : mediaProxy.getProxiedImageUrlNullable(serverMetadata.iconUrl, 'preview') ?? '/favicon.ico'); -const themeColor = serverMetadata.themeColor ?? '#777777'; +const themeColor = props.instance?.themeColor ?? serverMetadata.themeColor ?? '#777777'; const bg = { background: `linear-gradient(90deg, ${themeColor}, ${themeColor}00)`, diff --git a/packages/frontend-embed/src/components/EmMention.vue b/packages/frontend-embed/src/components/EmMention.vue index 777033bd3e..a631783507 100644 --- a/packages/frontend-embed/src/components/EmMention.vue +++ b/packages/frontend-embed/src/components/EmMention.vue @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only --> <template> -<MkA v-user-preview="canonical" :class="[$style.root]" :to="url" :style="{ background: bgCss }"> +<MkA :class="[$style.root]" :to="url" :style="{ background: bgCss }"> <span> <span>@{{ username }}</span> <span v-if="(host != localHost)" :class="$style.host">@{{ toUnicode(host) }}</span> diff --git a/packages/frontend-embed/src/components/EmNote.vue b/packages/frontend-embed/src/components/EmNote.vue index 02475898c5..f7899bfb03 100644 --- a/packages/frontend-embed/src/components/EmNote.vue +++ b/packages/frontend-embed/src/components/EmNote.vue @@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only <i class="ti ti-repeat" style="margin-right: 4px;"></i> <I18n :src="i18n.ts.renotedBy" tag="span" :class="$style.renoteText"> <template #user> - <EmA v-user-preview="true ? undefined : note.userId" :class="$style.renoteUserName" :to="userPage(note.user)"> + <EmA :class="$style.renoteUserName" :to="userPage(note.user)"> <EmUserName :user="note.user"/> </EmA> </template> @@ -44,6 +44,7 @@ SPDX-License-Identifier: AGPL-3.0-only <EmAvatar :class="$style.avatar" :user="appearNote.user" link/> <div :class="$style.main"> <EmNoteHeader :note="appearNote" :mini="true"/> + <EmInstanceTicker v-if="appearNote.user.instance != null" :instance="appearNote.user.instance"/> <div style="container-type: inline-size;"> <p v-if="appearNote.cw != null" :class="$style.cw"> <EmMfm v-if="appearNote.cw != ''" style="margin-right: 8px;" :text="appearNote.cw" :author="appearNote.user" :nyaize="'respect'"/> @@ -111,6 +112,7 @@ import I18n from '@/components/I18n.vue'; import EmNoteSub from '@/components/EmNoteSub.vue'; import EmNoteHeader from '@/components/EmNoteHeader.vue'; import EmNoteSimple from '@/components/EmNoteSimple.vue'; +import EmInstanceTicker from '@/components/EmInstanceTicker.vue'; import EmReactionsViewer from '@/components/EmReactionsViewer.vue'; import EmMediaList from '@/components/EmMediaList.vue'; import EmPoll from '@/components/EmPoll.vue'; diff --git a/packages/frontend-embed/src/components/EmNoteDetailed.vue b/packages/frontend-embed/src/components/EmNoteDetailed.vue index a233011af7..360de31864 100644 --- a/packages/frontend-embed/src/components/EmNoteDetailed.vue +++ b/packages/frontend-embed/src/components/EmNoteDetailed.vue @@ -54,6 +54,7 @@ SPDX-License-Identifier: AGPL-3.0-only </a> </div> </div> + <EmInstanceTicker v-if="appearNote.user.instance != null" :instance="appearNote.user.instance"/> </div> </header> <div :class="[$style.noteContent, { [$style.contentCollapsed]: collapsed }]"> @@ -132,6 +133,7 @@ import I18n from '@/components/I18n.vue'; import EmMediaList from '@/components/EmMediaList.vue'; import EmNoteSub from '@/components/EmNoteSub.vue'; import EmNoteSimple from '@/components/EmNoteSimple.vue'; +import EmInstanceTicker from '@/components/EmInstanceTicker.vue'; import EmReactionsViewer from '@/components/EmReactionsViewer.vue'; import EmPoll from '@/components/EmPoll.vue'; import EmA from '@/components/EmA.vue'; diff --git a/packages/frontend-embed/src/components/EmNoteHeader.vue b/packages/frontend-embed/src/components/EmNoteHeader.vue index e4add9501f..7d0b9bacad 100644 --- a/packages/frontend-embed/src/components/EmNoteHeader.vue +++ b/packages/frontend-embed/src/components/EmNoteHeader.vue @@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only <div v-if="note.user.isBot" :class="$style.isBot">bot</div> <div :class="$style.username"><EmAcct :user="note.user"/></div> <div v-if="note.user.badgeRoles" :class="$style.badgeRoles"> - <img v-for="(role, i) in note.user.badgeRoles" :key="i" v-tooltip="role.name" :class="$style.badgeRole" :src="role.iconUrl!"/> + <img v-for="(role, i) in note.user.badgeRoles" :key="i" :class="$style.badgeRole" :src="role.iconUrl!"/> </div> <div :class="$style.info"> <EmA :to="notePage(note)">