From 3b066763433e979668e4ea0d42d9b0c377aa179a Mon Sep 17 00:00:00 2001 From: Noah Petherbridge Date: Fri, 8 Sep 2023 19:37:39 -0700 Subject: [PATCH] Better emoji keyboard --- index.html | 15 +++++++++ package-lock.json | 27 ++++++++++++++- package.json | 3 +- src/App.vue | 5 +-- src/components/MessageBox.vue | 63 +++++++++++++++++++---------------- 5 files changed, 80 insertions(+), 33 deletions(-) diff --git a/index.html b/index.html index 1da8699..316ca6a 100644 --- a/index.html +++ b/index.html @@ -48,6 +48,21 @@ $modal.classList.add("is-active"); return false; } + + document.addEventListener('DOMContentLoaded', () => { + // Add global body click to hide the hamburger menu for chat settings. + const settingsMenu = document.querySelector("#chat-settings-hamburger-menu"); + settingsMenu.addEventListener('click', (e) => { + settingsMenu.classList.toggle('is-active'); + e.stopPropagation(); + }); + + document.body.addEventListener('click', () => { + if (settingsMenu != undefined && settingsMenu.classList.contains("is-active")) { + settingsMenu.classList.remove('is-active'); + } + }) + }); diff --git a/package-lock.json b/package-lock.json index ac5d01b..9e81dd1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "interactjs": "^1.10.18", - "vue": "^3.3.4" + "vue": "^3.3.4", + "vue3-emoji-picker": "^1.1.7" }, "devDependencies": { "@vitejs/plugin-vue": "^4.3.1", @@ -524,6 +525,15 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@vitejs/plugin-vue": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", @@ -1216,6 +1226,11 @@ "node": ">=8" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -1932,6 +1947,16 @@ "eslint": ">=6.0.0" } }, + "node_modules/vue3-emoji-picker": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/vue3-emoji-picker/-/vue3-emoji-picker-1.1.7.tgz", + "integrity": "sha512-dKSI1NyrinYFykllwcOqBB1sw7EHdwQG4tjHYSO+khQkY8Csn4Evn5X2nAdz8Kl8o3P1J0jV4BGwbQ2dVWCxMA==", + "dependencies": { + "@popperjs/core": "^2.11.0", + "idb": "^7.1.0", + "vue": "^3.2.23" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index e84e821..b14d9f1 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ }, "dependencies": { "interactjs": "^1.10.18", - "vue": "^3.3.4" + "vue": "^3.3.4", + "vue3-emoji-picker": "^1.1.7" }, "devDependencies": { "@vitejs/plugin-vue": "^4.3.1", diff --git a/src/App.vue b/src/App.vue index 159f5a3..96fe2d4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3252,8 +3252,9 @@ export default { Explicit -