Merge pull request #36 from jozefs/keyboard-shortcuts

Add keyboard shortcuts for searching
This commit is contained in:
Bastien Wirtz 2020-03-25 23:03:25 -07:00 committed by GitHub
commit 990b6c3d46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 1 deletions

29
app.js
View File

@ -85,6 +85,35 @@ const app = new Vue({
toggleMenu: function() { toggleMenu: function() {
this.showMenu = !this.showMenu; this.showMenu = !this.showMenu;
} }
},
mounted() {
function isSmallScreen() {
return window.matchMedia('screen and (max-width: 1023px)').matches;
}
this._keyListener = function(e) {
if (e.key === '/') {
if (isSmallScreen()) {
this.showMenu = true;
}
Vue.nextTick(() => {
this.$refs.search.focus();
});
e.preventDefault();
}
if (e.key === 'Escape') {
this.filter = '';
this.$refs.search.blur();
if (isSmallScreen()) {
this.showMenu = false;
}
}
}
document.addEventListener('keydown', this._keyListener.bind(this));
},
beforeDestroy() {
document.removeEventListener('keydown', this._keyListener);
} }
}); });

View File

@ -59,7 +59,7 @@
:class="['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a> :class="['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a>
<div class="search-bar"> <div class="search-bar">
<label for="search" class="search-label"></label> <label for="search" class="search-label"></label>
<input type="text" id="search" v-model="filter" /> <input type="text" id="search" ref="search" v-model="filter" />
</div> </div>
</div> </div>
</div> </div>