From 4d9b5d2158f84da3fc9d7d77111acd039e3d43fd Mon Sep 17 00:00:00 2001 From: Dave Gallant Date: Fri, 31 Mar 2023 20:40:47 -0400 Subject: [PATCH] Replace mousetrap with @github/hotkey --- package-lock.json | 22 +++++++++++----------- package.json | 2 +- src/App.vue | 28 ++++++++++++++++------------ src/main.js | 1 - yarn.lock | 10 +++++----- 5 files changed, 33 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index a046961..b1ce684 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "rfd-fyi", "version": "0.1.0", "dependencies": { + "@github/hotkey": "^2.0.1", "@popperjs/core": "^2.11.5", "axios": "^0.27.2", "bootstrap": "^5.2.0", @@ -15,7 +16,6 @@ "core-js": "^3.8.3", "jquery": "^3.6.0", "moment": "^2.29.4", - "mousetrap": "^1.6.5", "vue": "^3.2.37", "vue-github-button": "^3.0.3", "vue-gtag": "^2.0.1", @@ -1934,6 +1934,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@github/hotkey": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@github/hotkey/-/hotkey-2.0.1.tgz", + "integrity": "sha512-qKXjAJjtheJbf4ie3hi8IwrHWJZHB5qdojR6JGo6jvQNPpsdUbk/NIdU8sxu4PW41CjW80vfciDMu3MAP3j2Fg==" + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -7792,11 +7797,6 @@ "node": "*" } }, - "node_modules/mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" - }, "node_modules/mrmime": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", @@ -12885,6 +12885,11 @@ } } }, + "@github/hotkey": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@github/hotkey/-/hotkey-2.0.1.tgz", + "integrity": "sha512-qKXjAJjtheJbf4ie3hi8IwrHWJZHB5qdojR6JGo6jvQNPpsdUbk/NIdU8sxu4PW41CjW80vfciDMu3MAP3j2Fg==" + }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -17049,11 +17054,6 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, - "mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" - }, "mrmime": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", diff --git a/package.json b/package.json index 8d02d3a..6dad045 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@github/hotkey": "^2.0.1", "@popperjs/core": "^2.11.5", "axios": "^0.27.2", "bootstrap": "^5.2.0", @@ -15,7 +16,6 @@ "core-js": "^3.8.3", "jquery": "^3.6.0", "moment": "^2.29.4", - "mousetrap": "^1.6.5", "vue": "^3.2.37", "vue-github-button": "^3.0.3", "vue-gtag": "^2.0.1", diff --git a/src/App.vue b/src/App.vue index 23ca37d..5f29d27 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,8 +2,8 @@ import axios from "axios"; import moment from "moment"; import Loading from "vue-loading-overlay"; -import Mousetrap from "mousetrap"; import GithubButton from "vue-github-button"; +import { install } from "@github/hotkey"; import "vue-loading-overlay/dist/vue-loading.css"; @@ -18,22 +18,17 @@ export default { }; }, mounted() { + // Install all the hotkeys on the page + for (const el of document.querySelectorAll("[data-hotkey]")) { + install(el); + } this.sortColumn = localStorage.getItem("sortColumn") || "score"; this.ascending = localStorage.getItem("ascending") === "false" ? false : true; this.isLoading = true; this.fetchDeals(); - Mousetrap.bind("/", this.focusFilter, "keyup"); - Mousetrap.bind("r", this.fetchDeals); - Mousetrap.bind("escape", this.blurFilter); }, methods: { - focusFilter() { - this.$refs.filter.focus(); - }, - blurFilter() { - this.$refs.filter.blur(); - }, createFilterRoute(params) { this.$refs.filter.blur(); history.pushState( @@ -135,12 +130,14 @@ export default { @@ -201,7 +198,14 @@ export default {