From 69ed5611cfb80cc1b1c84717dfc660a73050941e Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Wed, 28 May 2025 13:32:51 -0400 Subject: [PATCH] re-implement preview groups as SkUrlPreviewGroup --- packages/frontend/package.json | 1 + .../frontend/src/components/MkAbuseReport.vue | 11 +- .../frontend/src/components/MkUrlPreview.vue | 148 +++------ .../src/components/SkUrlPreviewGroup.vue | 280 ++++++++++++++++++ pnpm-lock.yaml | 17 +- 5 files changed, 337 insertions(+), 120 deletions(-) create mode 100644 packages/frontend/src/components/SkUrlPreviewGroup.vue diff --git a/packages/frontend/package.json b/packages/frontend/package.json index f5c7bcf1b4..640ebe70d6 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -60,6 +60,7 @@ "misskey-reversi": "workspace:*", "moment": "^2.30.1", "photoswipe": "5.4.4", + "promise-limit": "2.7.0", "punycode.js": "2.3.1", "rollup": "4.40.0", "sanitize-html": "2.16.0", 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 -->