diff --git a/src/main.ts b/src/main.ts
index 19622abc..72589134 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -2,30 +2,32 @@ import { createApp } from "vue";
import { createPinia } from "pinia";
import {
- RecycleScroller,
- DynamicScroller,
- DynamicScrollerItem,
- // @ts-ignore
+ RecycleScroller,
+ DynamicScroller,
+ DynamicScrollerItem,
+ // @ts-ignore
} from "vue-virtual-scroller";
import { autoAnimatePlugin } from "@formkit/auto-animate/vue";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
-import "./assets/scss/index.scss";
-import "vue-virtual-scroller/dist/vue-virtual-scroller.css";
import App from "./App.vue";
import router from "./router";
import vTooltip from "./directives/vTooltip";
+import "./assets/scss/index.scss";
+import "vue-virtual-scroller/dist/vue-virtual-scroller.css";
+
const app = createApp(App);
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);
app.use(pinia);
app.use(router);
-app.directive("tooltip", vTooltip);
app.use(autoAnimatePlugin);
+
+app.directive("tooltip", vTooltip);
app.component("RecycleScroller", RecycleScroller);
app.component("DynamicScroller", DynamicScroller);
app.component("DynamicScrollerItem", DynamicScrollerItem);
diff --git a/src/utils/index.ts b/src/utils/index.ts
index e57c261b..e498a205 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -5,6 +5,7 @@ import useFuse from "./useFuse";
import { readLocalStorage, writeLocalStorage } from "./useLocalStorage";
import putCommas from "./usePutCommas";
import useVisibility from "./useVisibility";
+import useCreateTrackProps from "./useCreateTrackProps";
export {
readLocalStorage,
@@ -13,6 +14,7 @@ export {
focusElemByClass,
useVisibility,
formatSeconds,
+ useCreateTrackProps as createTrackProps,
putCommas,
useFuse,
};
diff --git a/src/utils/useCreateTrackProps.ts b/src/utils/useCreateTrackProps.ts
new file mode 100644
index 00000000..7e3561fd
--- /dev/null
+++ b/src/utils/useCreateTrackProps.ts
@@ -0,0 +1,12 @@
+import { Track } from "@/interfaces";
+import queue from "@/stores/queue";
+
+export default function createTrackProps(track: Track) {
+ return {
+ track,
+ index: track.index + 1,
+ isCurrent: queue().currenttrack?.hash === track.hash,
+ isCurrentPlaying:
+ queue().currenttrack?.hash === track.hash && queue().playing,
+ };
+}
diff --git a/src/views/AlbumView/index.vue b/src/views/AlbumView/index.vue
index 5d02e789..cf2d9f85 100644
--- a/src/views/AlbumView/index.vue
+++ b/src/views/AlbumView/index.vue
@@ -1,43 +1,89 @@
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/views/FolderView.vue b/src/views/FolderView.vue
index f224a402..91fa4791 100644
--- a/src/views/FolderView.vue
+++ b/src/views/FolderView.vue
@@ -48,8 +48,8 @@ interface ScrollerItem {
class songItem {
id: string;
- component = SongItem;
props: any;
+ component = SongItem;
constructor(track: Track) {
this.id = track.trackid;