This commit is contained in:
Mateusz Gruszczyński committed 2026-10-18 14:45:59 +02:00
1 parent 5cb6960b04
commit 0d7ffea17a
13 files changed
+17 -135

No files matched your search

-6
View File
@@ -13,8 +13,6 @@ const MAX_RESULTS = 8;
const MENTION_SUFFIX = /[\p{L}\p{M}\p{N}_.+-]{0,64}$/u;
const MENTION_BOUNDARY = /[\p{L}\p{N}_@]/u;
// A suggestion is offered only for an @word being typed at a collapsed caret.
// Do not interpret addresses such as john@example.org as mentions.
export function mentionAtCaret(value, caret) {
if (caret < 1 || caret > value.length) return null;
const lineStart = value.lastIndexOf("\n", caret - 1) + 1;
@@ -69,8 +67,6 @@ export function createMentionAutocomplete(editor) {
menu.hidden = true;
shell.append(menu);
// A single-line offscreen mirror measures the caret's horizontal position,
// including proportional fonts and tabs, without relying on text estimates.
const mirror = document.createElement("div");
mirror.className = "mention-caret-mirror";
mirror.setAttribute("aria-hidden", "true");
@@ -158,7 +154,6 @@ export function createMentionAutocomplete(editor) {
editor.focus();
const inserted = `@${user.nickname}${separator}`;
editor.setRangeText(inserted, start, end, "end");
// Use the normal input pipeline: live collaboration, authorship and undo/redo.
editor.dispatchEvent(new InputEvent("input", { bubbles: true, inputType: "insertReplacementText", data: inserted }));
}
@@ -189,7 +184,6 @@ export function createMentionAutocomplete(editor) {
const label = document.createElement("span");
label.textContent = `@${user.nickname}`;
button.append(dot, label);
// Keep textarea selection intact while clicking with a mouse.
button.addEventListener("mousedown", event => event.preventDefault());
button.addEventListener("click", () => accept(index));
menu.append(button);