From fcae855eea8cbb641c61c7b8e7c0324f0fe8ab2e Mon Sep 17 00:00:00 2001 From: Piotrek Tomczewski Date: Sun, 8 Jan 2023 14:54:12 +0100 Subject: [PATCH] fix(drafts): remove and do not focus empty reply drafts (#850) --- composables/masto/statusDrafts.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/composables/masto/statusDrafts.ts b/composables/masto/statusDrafts.ts index 8ee0c890..f99ef693 100644 --- a/composables/masto/statusDrafts.ts +++ b/composables/masto/statusDrafts.ts @@ -54,12 +54,17 @@ function mentionHTML(acct: string) { return `@${acct}` } -export function getReplyDraft(status: mastodon.v1.Status) { - const accountsToMention: string[] = [] +function getAccountsToMention(status: mastodon.v1.Status) { const userId = currentUser.value?.account.id + const accountsToMention: string[] = [] if (status.account.id !== userId) accountsToMention.push(status.account.acct) accountsToMention.push(...(status.mentions.filter(mention => mention.id !== userId).map(mention => mention.acct))) + return accountsToMention +} + +export function getReplyDraft(status: mastodon.v1.Status) { + const accountsToMention = getAccountsToMention(status) return { key: `reply-${status.id}`, draft: () => { @@ -77,7 +82,9 @@ export const isEmptyDraft = (draft: Draft | null | undefined) => { return true const { params, attachments } = draft const status = params.status || '' - return (status.length === 0 || status === '

') + const text = htmlToText(status).trim().replace(/^(@\S+\s?)+/, '').trim() + + return (text.length === 0) && attachments.length === 0 && (params.spoilerText || '').length === 0 }