forked from forktown/watch-party
Sort unicode emoji before emojos, let enter fill an emoji
This commit is contained in:
parent
0d555adf21
commit
8531c83574
3 changed files with 14 additions and 14 deletions
|
@ -6,7 +6,7 @@ import {
|
||||||
import { emojify, findEmojis } from "./emojis.mjs?v=ee93fb";
|
import { emojify, findEmojis } from "./emojis.mjs?v=ee93fb";
|
||||||
import { linkify } from "./links.mjs?v=ee93fb";
|
import { linkify } from "./links.mjs?v=ee93fb";
|
||||||
import { joinSession } from "./watch-session.mjs?v=ee93fb";
|
import { joinSession } from "./watch-session.mjs?v=ee93fb";
|
||||||
import { pling } from "./pling.mjs?v=ee93fb"
|
import { pling } from "./pling.mjs?v=ee93fb";
|
||||||
import { state } from "./state.mjs";
|
import { state } from "./state.mjs";
|
||||||
|
|
||||||
function setCaretPosition(elem, caretPos) {
|
function setCaretPosition(elem, caretPos) {
|
||||||
|
@ -44,7 +44,7 @@ const setupChatboxEvents = (socket) => {
|
||||||
emojiAutocomplete.textContent = "";
|
emojiAutocomplete.textContent = "";
|
||||||
autocompleting = true;
|
autocompleting = true;
|
||||||
let text = messageInput.value.slice(0, messageInput.selectionStart);
|
let text = messageInput.value.slice(0, messageInput.selectionStart);
|
||||||
const match = text.match(/(:[^\s:]+)?:([^\s:]*)$/);
|
const match = text.match(/(:[^\s:]+)?:([^\s:]{2,})$/);
|
||||||
if (!match || match[1]) return (autocompleting = false); // We don't need to autocomplete.
|
if (!match || match[1]) return (autocompleting = false); // We don't need to autocomplete.
|
||||||
const prefix = text.slice(0, match.index);
|
const prefix = text.slice(0, match.index);
|
||||||
const search = text.slice(match.index + 1);
|
const search = text.slice(match.index + 1);
|
||||||
|
@ -133,7 +133,7 @@ const setupChatboxEvents = (socket) => {
|
||||||
selected.classList.add("selected");
|
selected.classList.add("selected");
|
||||||
selected.scrollIntoView({ scrollMode: "if-needed", block: "nearest" });
|
selected.scrollIntoView({ scrollMode: "if-needed", block: "nearest" });
|
||||||
}
|
}
|
||||||
if (event.key == "Tab") {
|
if (event.key == "Tab" || event.key == "Enter") {
|
||||||
let selected = document.querySelector(".emoji-option.selected");
|
let selected = document.querySelector(".emoji-option.selected");
|
||||||
if (!selected) return;
|
if (!selected) return;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
|
@ -32,7 +32,15 @@ export async function emojify(text) {
|
||||||
const emojis = {};
|
const emojis = {};
|
||||||
|
|
||||||
export const emojisLoaded = Promise.all([
|
export const emojisLoaded = Promise.all([
|
||||||
fetch("/emojis")
|
fetch("/emojis/unicode.json")
|
||||||
|
.then((e) => e.json())
|
||||||
|
.then((a) => {
|
||||||
|
for (let e of a) {
|
||||||
|
emojis[e[0][0]] = emojis[e[0][0]] || [];
|
||||||
|
emojis[e[0][0]].push([e[0], e[1], null, e[0]]);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
fetch("/emojos")
|
||||||
.then((e) => e.json())
|
.then((e) => e.json())
|
||||||
.then((a) => {
|
.then((a) => {
|
||||||
for (let e of a) {
|
for (let e of a) {
|
||||||
|
@ -42,14 +50,6 @@ export const emojisLoaded = Promise.all([
|
||||||
emojis[lower[0]].push([name, ":" + name + ":", e.slice(-4), lower]);
|
emojis[lower[0]].push([name, ":" + name + ":", e.slice(-4), lower]);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
fetch("/emojis/unicode.json")
|
|
||||||
.then((e) => e.json())
|
|
||||||
.then((a) => {
|
|
||||||
for (let e of a) {
|
|
||||||
emojis[e[0][0]] = emojis[e[0][0]] || [];
|
|
||||||
emojis[e[0][0]].push([e[0], e[1], null, e[0]]);
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export async function findEmojis(search) {
|
export async function findEmojis(search) {
|
||||||
|
@ -68,5 +68,5 @@ export async function findEmojis(search) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return [...groups[0], ...groups[1]];
|
return [...groups[1], ...groups[0]];
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ async fn main() {
|
||||||
warb::reply::json(&json!({ "id": session_uuid.to_string(), "session": session_view }))
|
warb::reply::json(&json!({ "id": session_uuid.to_string(), "session": session_view }))
|
||||||
});
|
});
|
||||||
|
|
||||||
let get_emoji_route = warb::path!("emojis").and_then(get_emoji_list);
|
let get_emoji_route = warb::path!("emojos").and_then(get_emoji_list);
|
||||||
|
|
||||||
enum RequestedSession {
|
enum RequestedSession {
|
||||||
Session(Uuid, WatchSession),
|
Session(Uuid, WatchSession),
|
||||||
|
|
Loading…
Reference in a new issue