Fixed autocomplete and positioning of suggestions

closes #41
This commit is contained in:
joeyak 2019-03-19 15:15:11 -04:00
parent 1f217c56a9
commit 7ce4c04942
2 changed files with 13 additions and 6 deletions

View File

@ -98,9 +98,7 @@ function sendChat() {
function updateSuggestionCss(m) { function updateSuggestionCss(m) {
if ($("#suggestions").children().length > 0) { if ($("#suggestions").children().length > 0) {
div = $("#suggestions")[0] $("#suggestions").css("bottom", $("#msg").outerHeight(true) - 1 + "px");
$(div).css("bottom", `calc(${$("#chat").css("height")} - ${$("#messages").css("height")} - 10px)`)
$(div).css("right", `calc(${$("#chat").css("width")} - ${$(div).css("width")} + 5px)`)
} }
} }
@ -173,5 +171,7 @@ window.addEventListener("load", () => {
setupWebSocket(); setupWebSocket();
startGo(); startGo();
setupEvents(); setupEvents();
// Make sure name is focused on start
$("#name").focus(); $("#name").focus();
}); });

View File

@ -55,12 +55,18 @@ func processMessageKey(this js.Value, v []js.Value) interface{} {
case keyTab, keyEnter: case keyTab, keyEnter:
msg := js.Get("msg") msg := js.Get("msg")
val := msg.Get("value").String() val := msg.Get("value").String()
newval := val[:startIdx] + currentName newval := val[:startIdx]
if i := strings.LastIndex(newval, "@"); i != -1 {
newval = newval[:i+1] + currentName
}
endVal := val[startIdx:]
if len(val) == startIdx || val[startIdx:][0] != ' ' { if len(val) == startIdx || val[startIdx:][0] != ' ' {
// insert a space into val so selection indexing can be one line // insert a space into val so selection indexing can be one line
val = val[:startIdx] + " " + val[startIdx:] endVal = " " + endVal
} }
msg.Set("value", newval+val[startIdx:]) msg.Set("value", newval+endVal)
msg.Set("selectionStart", len(newval)+1) msg.Set("selectionStart", len(newval)+1)
msg.Set("selectionEnd", len(newval)+1) msg.Set("selectionEnd", len(newval)+1)
@ -106,6 +112,7 @@ func processMessage(v []js.Value) {
} }
if len(filteredNames) > 0 { if len(filteredNames) > 0 {
currentName = ""
break break
} }