From 69ed5611cfb80cc1b1c84717dfc660a73050941e Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Wed, 28 May 2025 13:32:51 -0400 Subject: re-implement preview groups as SkUrlPreviewGroup --- packages/frontend/src/components/MkAbuseReport.vue | 11 +- packages/frontend/src/components/MkUrlPreview.vue | 148 ++++------- .../frontend/src/components/SkUrlPreviewGroup.vue | 280 +++++++++++++++++++++ 3 files changed, 326 insertions(+), 113 deletions(-) create mode 100644 packages/frontend/src/components/SkUrlPreviewGroup.vue (limited to 'packages/frontend/src/components') diff --git a/packages/frontend/src/components/MkAbuseReport.vue b/packages/frontend/src/components/MkAbuseReport.vue index b2999d3899..ba95034d01 100644 --- a/packages/frontend/src/components/MkAbuseReport.vue +++ b/packages/frontend/src/components/MkAbuseReport.vue @@ -62,8 +62,8 @@ SPDX-License-Identifier: AGPL-3.0-only
- - + +
@@ -111,13 +111,12 @@ import RouterView from '@/components/global/RouterView.vue'; import MkTextarea from '@/components/MkTextarea.vue'; import { copyToClipboard } from '@/utility/copy-to-clipboard.js'; import { createRouter } from '@/router.js'; -import MkUrlPreview, { PreviewGroup } from '@/components/MkUrlPreview.vue'; -import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm'; import { getProxiedImageUrlNullable } from '@/utility/media-proxy'; import InstanceInfo from '@/pages/instance-info.vue'; import { iAmAdmin } from '@/i'; import { misskeyApi } from '@/utility/misskey-api'; import AdminUser from '@/pages/admin-user.vue'; +import SkUrlPreviewGroup from '@/components/SkUrlPreviewGroup.vue'; const props = defineProps<{ report: Misskey.entities.AdminAbuseUserReportsResponse[number]; @@ -134,9 +133,7 @@ const reporterRouter = createRouter(`/admin/user/${props.report.reporterId}`); reporterRouter.init(); */ -const parsed = computed(() => props.report.comment ? mfm.parse(props.report.comment) : null); -const urls = computed(() => parsed.value ? extractUrlFromMfm(parsed.value) : null); -const previewGroup = computed(() => new PreviewGroup()); // Lazy-load +const parsedComment = computed(() => mfm.parse(props.report.comment)); const metaHint = ref(undefined); const targetInstanceIcon = computed(() => props.report.targetInstance?.faviconUrl diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue index eb4a4efa33..680a9a7141 100644 --- a/packages/frontend/src/components/MkUrlPreview.vue +++ b/packages/frontend/src/components/MkUrlPreview.vue @@ -4,8 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only -->