diff --git a/package.json b/package.json index 469cf6a0..bba056ad 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.5.4", + "version": "1.5.5", "description": "A new cross-platform Apple Music experience based on Electron and Vue.js written from scratch with performance in mind.", "license": "AGPL-3.0", "main": "./build/index.js", diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 50224de5..1f9f00cd 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -22,6 +22,7 @@ const app = new Vue({ lzListing: ipcRenderer.sendSync("get-i18n-listing"), search: { term: "", + cursor: -1, hints: [], showHints: false, results: {}, @@ -3875,6 +3876,17 @@ const app = new Vue({ break; } }, + searchCursor(e) { + if(e.keyCode == '40') { + if((this.search.hints.length - 1) < this.search.cursor + 1) return + this.search.cursor++ + this.search.term = this.search.hints[this.search.cursor] + }else if(e.keyCode == '38'){ + if(this.search.cursor == 0) return + this.search.cursor-- + this.search.term = this.search.hints[this.search.cursor] + } + }, async searchQuery(term = this.search.term) { let self = this; if (term == "") { diff --git a/src/renderer/style.less b/src/renderer/style.less index 3f8c9e5d..5efe0799 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -724,6 +724,7 @@ input[type="range"].web-slider::-webkit-slider-runnable-track { .search-hints-container { top: 44px; + background: rgb(30 30 30); #cmenu.container(); .search-hints { @@ -731,6 +732,10 @@ input[type="range"].web-slider::-webkit-slider-runnable-track { .search-hint { #cmenu.item(); + + &.active { + background: var(--keyColor); + } } } } diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index 69f5ee1b..a65f0a7e 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -280,15 +280,16 @@ {search.showHints = false}, 300)" - v-on:keyup.enter="searchQuery();search.showHints = false" @change="$root.appRoute('search');" + v-on:keyup.enter="searchQuery();search.showHints = false;search.cursor = -1" @change="$root.appRoute('search');" + v-on:keyup="searchCursor" @input="getSearchHints()" :placeholder="$root.getLz('term.search') + '...'" v-model="search.term" ref="searchInput" class="search-input" />