-
- now playing
-
-
volume
+
-
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index ee84bae..2d24682 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -2,14 +2,16 @@
import VirtualList from 'svelte-tiny-virtual-list';
import { tracks, tracksSorted } from '../stores';
import TrackComponent from '../components/track.svelte';
- import type { Track } from '../types';
+ import type { Track, TrackWithId } from '../types';
$: trackCount = $tracksSorted.size;
- let trackItemSize = 72;
+ let trackItemSize = 62;
let listHeight = 0;
- function getTrack(index: number): Track {
- return $tracks.get($tracksSorted.get(index)!)!;
+ function getTrack(index: number): TrackWithId {
+ let id = $tracksSorted.get(index)!;
+ let track = $tracks.get(id)!;
+ return { id, track };
}
@@ -21,7 +23,7 @@
overscanCount={1}
>
diff --git a/src/stores.ts b/src/stores.ts
index 95e1e24..352cec6 100644
--- a/src/stores.ts
+++ b/src/stores.ts
@@ -1,5 +1,5 @@
import { writable } from 'svelte/store';
-import type { ResourceId, Track } from './types';
+import type { ResourceId, Track, TrackWithId } from './types';
function writableStorage(key: string, defaultValue: string) {
const store = writable(localStorage.getItem(key) ?? defaultValue);
@@ -7,8 +7,18 @@ function writableStorage(key: string, defaultValue: string) {
return store;
}
+export function makeThumbnailUrl(address: string, token: string, id: ResourceId) {
+ return `http://${address}/thumbnail/${id}?token=${token}`;
+}
+
+export function makeAudioUrl(address: string, token: string, id: ResourceId) {
+ return `http://${address}/audio/id/${id}?token=${token}`;
+}
+
export const address = writableStorage("address", "127.0.0.1:5505");
export const token = writableStorage("token", "");
export const tracks = writable