From 4f247a0784be6d3d75e988cb84fd8f962a3d8681 Mon Sep 17 00:00:00 2001
From: FineArchs <133759614+FineArchs@users.noreply.github.com>
Date: Mon, 25 Dec 2023 18:03:06 +0900
Subject: Feat: クリックイベントを発生させるMFM構文を追加 (#12798)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Update MkMisskeyFlavoredMarkdown.ts
* fix MkMisskeyFlavoredMarkdown.ts
* Update MkAsUi.vue
* Update ui.ts
* Fix MkMisskeyFlavoredMarkdown.ts
* Update CHANGELOG.md
* fix ui.ts
* revert CHANGELOG.md
* Update CHANGELOG.md
---
packages/frontend/src/components/MkAsUi.vue | 2 +-
.../src/components/global/MkMisskeyFlavoredMarkdown.ts | 15 +++++++++++++--
2 files changed, 14 insertions(+), 3 deletions(-)
(limited to 'packages/frontend/src/components')
diff --git a/packages/frontend/src/components/MkAsUi.vue b/packages/frontend/src/components/MkAsUi.vue
index 4239cc6091..0ff5bd7036 100644
--- a/packages/frontend/src/components/MkAsUi.vue
+++ b/packages/frontend/src/components/MkAsUi.vue
@@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ c.text }}
-
+
{{ c.text }}
{{ button.text }}
diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
index a46c7f0cec..3e72b64799 100644
--- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
+++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { VNode, h } from 'vue';
+import { VNode, h, SetupContext } from 'vue';
import * as mfm from 'mfm-js';
import * as Misskey from 'misskey-js';
import MkUrl from '@/components/global/MkUrl.vue';
@@ -43,8 +43,12 @@ type MfmProps = {
enableEmojiMenuReaction?: boolean;
};
+type MfmEvents = {
+ clickEv(id: string): void;
+};
+
// eslint-disable-next-line import/no-default-export
-export default function(props: MfmProps) {
+export default function(props: MfmProps, context: SetupContext) {
const isNote = props.isNote ?? true;
const shouldNyaize = props.nyaize ? props.nyaize === 'respect' ? props.author?.isCat : false : false;
@@ -281,6 +285,13 @@ export default function(props: MfmProps) {
}),
]);
}
+ case 'clickable': {
+ return h('span', { onClick(ev: MouseEvent): void {
+ ev.stopPropagation();
+ ev.preventDefault();
+ context.emit('clickEv', token.props.args.ev ?? '');
+ } }, genEl(token.children, scale));
+ }
}
if (style === undefined) {
return h('span', {}, ['$[', token.props.name, ' ', ...genEl(token.children, scale), ']']);
--
cgit v1.2.3-freya