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 @@
+
+
+
+
{{ option.label }}
+
+
+
+
+ {{ child.label }}
+
+
+
+
+
+
+
+
+
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);
}