From c68824f2ab573406f5d23b58009213c9adf2b0e8 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Tue, 23 Aug 2022 22:56:48 -0700 Subject: [PATCH] - added arrow navigation to search - version bump --- package.json | 2 +- src/renderer/main/vueapp.js | 12 ++++++++++++ src/renderer/style.less | 5 +++++ src/renderer/views/app/chrome-top.ejs | 7 ++++--- src/renderer/views/components/sidebar.ejs | 5 +++-- 5 files changed, 25 insertions(+), 6 deletions(-) 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" />