diff --git a/src/App.vue b/src/App.vue index 7701e740..9bebe92b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -61,7 +61,6 @@ onStartTyping(() => { const elem = document.getElementById("globalsearch") as HTMLInputElement; elem.focus(); elem.value = ""; - document.getElementById("ginner")?.classList.add("search-focused"); }); function handleWelcomeModal() { diff --git a/src/assets/scss/Global/basic.scss b/src/assets/scss/Global/basic.scss index 3ce5d05a..d9b90f61 100644 --- a/src/assets/scss/Global/basic.scss +++ b/src/assets/scss/Global/basic.scss @@ -46,7 +46,7 @@ .bg-primary { background-color: $gray4; - box-shadow: 0 0 1rem rgba(0, 0, 0, 0.425) + box-shadow: 0 0 1rem rgba(0, 0, 0, 0.425); } .heading { @@ -79,6 +79,14 @@ button { background-image: linear-gradient(70deg, #234ece, $darkblue); } +.btn-more { + width: 2.5rem; + + svg { + transform: scale(1.25); + } +} + .separator { border-top: 0.1px $separator solid; color: transparent; diff --git a/src/components/Contextmenu/ContextItem.vue b/src/components/Contextmenu/ContextItem.vue new file mode 100644 index 00000000..8056e2c9 --- /dev/null +++ b/src/components/Contextmenu/ContextItem.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/components/LeftSidebar/index.vue b/src/components/LeftSidebar/index.vue index 4cb307ea..a4b320a3 100644 --- a/src/components/LeftSidebar/index.vue +++ b/src/components/LeftSidebar/index.vue @@ -5,15 +5,15 @@ - + diff --git a/src/contexts/track_context.ts b/src/contexts/track_context.ts index 7bb59e60..14959a3a 100644 --- a/src/contexts/track_context.ts +++ b/src/contexts/track_context.ts @@ -140,15 +140,16 @@ export default async ( }; const options: Option[] = [ - add_to_playlist, play_next, add_to_q, - // add_to_fav, + separator, + add_to_playlist, separator, go_to_folder, + go_to_album, + // add_to_fav, // go_to_artist, // go_to_alb_artist, - go_to_album, // separator, // del_track, ]; diff --git a/src/interfaces.ts b/src/interfaces.ts index 27eaa356..83ab1d46 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -53,7 +53,7 @@ export interface Artist { export interface Option { type?: string; label?: string; - action?: () => void; + action: () => void; children?: Option[] | false; icon?: string; critical?: Boolean; diff --git a/src/settings/general/now-playing.ts b/src/settings/general/now-playing.ts index ef09c6bc..da759660 100644 --- a/src/settings/general/now-playing.ts +++ b/src/settings/general/now-playing.ts @@ -5,15 +5,9 @@ const settings = useSettingsStore; export default [ { - title: "Use right bottom now playing card", + title: "Use alternate now playing card", type: SettingType.switch, - source: () => settings().use_right_np, + source: () => settings().use_alt_np, action: () => settings().toggleUseRightNP(), }, - { - title: "Use left now playing card", - type: SettingType.switch, - source: () => settings().use_side_np, - action: () => settings().toggleUseSideNP(), - }, ]; diff --git a/src/stores/queue.ts b/src/stores/queue.ts index 4e8ccc8b..21e018ba 100644 --- a/src/stores/queue.ts +++ b/src/stores/queue.ts @@ -25,7 +25,6 @@ function shuffle(tracks: Track[]) { type From = fromFolder | fromAlbum | fromPlaylist | fromSearch; let audio = new Audio(); -let elem: HTMLElement; export default defineStore("Queue", { state: () => ({ @@ -43,9 +42,6 @@ export default defineStore("Queue", { tracklist: [] as Track[], }), actions: { - bindProgressElem() { - elem = document.getElementById("progress"); - }, play(index: number = 0) { if (this.tracklist.length === 0) return; this.current = index; @@ -53,7 +49,6 @@ export default defineStore("Queue", { this.currentid = track.trackid; const uri = state.settings.uri + "/file/" + track.hash; this.updateCurrent(index); - this.bindProgressElem(); new Promise((resolve, reject) => { audio.autoplay = true; @@ -260,32 +255,29 @@ export default defineStore("Queue", { }, }, getters: { - getNextTrack() { + getNextTrack(): Track { if (this.current == this.tracklist.length - 1) { return this.tracklist[0]; } else { return this.tracklist[this.current + 1]; } }, - getPrevTrack() { + getPrevTrack(): Track { if (this.current === 0) { return this.tracklist[this.tracklist.length - 1]; } else { return this.tracklist[this.current - 1]; } }, - fullTime() { - return audio.duration; - }, - currentTime() { - return audio.currentTime; - }, - getCurrentTrack() { + getCurrentTrack(): Track { return this.tracklist[this.current]; }, - getIsplaying() { - return audio.paused ? false : true; + }, + persist: { + afterRestore: (context) => { + let store = context.store; + store.duration.current = 0; + store.playing = false; }, }, - persist: true, }); diff --git a/src/stores/settings/index.ts b/src/stores/settings/index.ts index d84d49c3..4a6f9499 100644 --- a/src/stores/settings/index.ts +++ b/src/stores/settings/index.ts @@ -3,20 +3,12 @@ import useQueueStore from "../queue"; export default defineStore("settings", { state: () => ({ - use_side_np: false, - use_right_np: true, + use_alt_np: false, }), actions: { - toggleNPs() { - this.use_side_np = !this.use_side_np; - this.use_right_np = !this.use_right_np; - useQueueStore().bindProgressElem(); - }, - toggleUseSideNP() { - this.toggleNPs(); - }, toggleUseRightNP() { - this.toggleNPs(); + this.use_alt_np = !this.use_alt_np; + useQueueStore(); }, }, getters: {}, diff --git a/src/utils/useFocusElem.ts b/src/utils/useFocusElem.ts index 6e2c37d8..3cdc1e6b 100644 --- a/src/utils/useFocusElem.ts +++ b/src/utils/useFocusElem.ts @@ -19,5 +19,5 @@ export default function focusElem( inline: "center", }); } - }, delay | 300); + }, delay || 300); }