forked from lavender/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 { linkify } from "./links.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"; | ||||
| 
 | ||||
| function setCaretPosition(elem, caretPos) { | ||||
|  | @ -44,7 +44,7 @@ const setupChatboxEvents = (socket) => { | |||
|       emojiAutocomplete.textContent = ""; | ||||
|       autocompleting = true; | ||||
|       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.
 | ||||
|       const prefix = text.slice(0, match.index); | ||||
|       const search = text.slice(match.index + 1); | ||||
|  | @ -133,7 +133,7 @@ const setupChatboxEvents = (socket) => { | |||
|       selected.classList.add("selected"); | ||||
|       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"); | ||||
|       if (!selected) return; | ||||
|       event.preventDefault(); | ||||
|  |  | |||
|  | @ -32,7 +32,15 @@ export async function emojify(text) { | |||
| const emojis = {}; | ||||
| 
 | ||||
| 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((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]); | ||||
|       } | ||||
|     }), | ||||
|   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) { | ||||
|  | @ -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 })) | ||||
|         }); | ||||
| 
 | ||||
|     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 { | ||||
|         Session(Uuid, WatchSession), | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue