From a6635bc8887cd9befb07a392914f5d75c9d9e490 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Mon, 2 Dec 2024 21:48:02 +0100 Subject: [PATCH] fix: :bug: Automatically prefill mentions when replying --- components/composer/composer.vue | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/components/composer/composer.vue b/components/composer/composer.vue index 1cf221c..638da4f 100644 --- a/components/composer/composer.vue +++ b/components/composer/composer.vue @@ -135,8 +135,27 @@ const { relation } = defineProps<{ }; }>(); +const getMentions = () => { + if (!relation || relation.type !== "reply") { + return ""; + } + + const peopleToMention = relation.note.mentions + .concat(relation.note.account) + // Deduplicate mentions + .filter((m, i, a) => a.indexOf(m) === i) + // Remove self + .filter((m) => m.id !== identity.value?.account.id); + + const mentions = peopleToMention.map((m) => `@${m.acct}`).join(" "); + + return `${mentions} `; +}; + const state = reactive({ - content: relation?.source?.text || "", + // If editing, use the original content + // If sending a reply, prefill with mentions + content: relation?.source?.text || getMentions(), sensitive: relation?.type === "edit" ? relation.note.sensitive : false, contentWarning: relation?.type === "edit" ? relation.note.spoiler_text : "", contentType: "text/markdown" as "text/markdown" | "text/plain",