Fix up link insertion after uploads to be saner

This commit is contained in:
Pavel Djundik 2019-01-30 19:51:57 +02:00
parent 314a6346c6
commit 9003768d56

View File

@ -1,10 +1,24 @@
"use strict"; "use strict";
const socket = require("../socket"); const socket = require("../socket");
const wrapCursor = require("undate").wrapCursor; const updateCursor = require("undate").update;
socket.on("upload:success", (url) => { socket.on("upload:success", (url) => {
const fullURL = new URL(url, location); const fullURL = (new URL(url, location)).toString();
const textbox = document.getElementById("input"); const textbox = document.getElementById("input");
wrapCursor(textbox, fullURL, " "); const initStart = textbox.selectionStart;
// Get the text before the cursor, and add a space if it's not in the beginning
const headToCursor = initStart > 0 ? (textbox.value.substr(0, initStart) + " ") : "";
// Get the remaining text after the cursor
const cursorToTail = textbox.value.substr(initStart);
// Construct the value until the point where we want the cursor to be
const textBeforeTail = headToCursor + fullURL + " ";
updateCursor(textbox, textBeforeTail + cursorToTail);
// Set the cursor after the link and a space
textbox.selectionStart = textbox.selectionEnd = textBeforeTail.length;
}); });