fix: only count 23 characters per link when composing (#1660)

This commit is contained in:
Chris-Robin Ennen 2023-02-07 00:03:16 +01:00 committed by GitHub
parent 65bbc7c790
commit f1087fd270
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -64,7 +64,19 @@ const { editor } = useTiptap({
}) })
const characterCount = $computed(() => { const characterCount = $computed(() => {
let length = stringLength(htmlToText(editor.value?.getHTML() || '')) const text = htmlToText(editor.value?.getHTML() || '')
let length = stringLength(text)
// taken from https://github.com/mastodon/mastodon/blob/07f8b4d1b19f734d04e69daeb4c3421ef9767aac/app/lib/text_formatter.rb
const linkRegex = /(https?:\/\/(www\.)?|xmpp:)\S+/g
// maximum of 23 chars per link
// https://github.com/elk-zone/elk/issues/1651
const maxLength = 23
for (const [fullMatch] of text.matchAll(linkRegex))
length -= fullMatch.length - Math.min(maxLength, fullMatch.length)
if (draft.mentions) { if (draft.mentions) {
// + 1 is needed as mentions always need a space seperator at the end // + 1 is needed as mentions always need a space seperator at the end