diff --git a/src/lib/components/groove/Footer.svelte b/src/lib/components/groove/Footer.svelte
index 6b0b77f..1bcfcc9 100644
--- a/src/lib/components/groove/Footer.svelte
+++ b/src/lib/components/groove/Footer.svelte
@@ -13,7 +13,6 @@
import { Progress } from '$lib/components/ui/progress';
import dayjs from 'dayjs';
import duration from 'dayjs/plugin/duration';
- import { Slider } from '$lib/components/ui/slider';
import * as Popover from '$lib/components/ui/popover';
import { Separator } from '$lib/components/ui/separator';
import { getPlayerState } from '$lib/player.svelte';
@@ -77,19 +76,24 @@
};
};
+ const submitVolumeForm: SubmitFunction = async ({ formData }) => {
+ formData.set('volume', player.volume.toString());
+
+ return async ({ update, result }) => {
+ await update({
+ invalidateAll: false
+ });
+
+ if (result.type === 'success' && result.data && 'volume' in result.data) {
+ player.volume = result.data.volume;
+ }
+ };
+ };
+
function onMouseMove(e: MouseEvent) {
mouse.offsetX = e.offsetX;
mouse.offsetY = e.offsetY;
}
-
- let volume = $state({
- get value() {
- return [player.volume];
- },
- set value(v: number[]) {
- player.volume = v[0];
- }
- });
+
+
diff --git a/src/lib/components/groove/SongListing.svelte b/src/lib/components/groove/SongListing.svelte
index 222dddc..822031d 100644
--- a/src/lib/components/groove/SongListing.svelte
+++ b/src/lib/components/groove/SongListing.svelte
@@ -25,6 +25,7 @@
if (result.type === 'success' && result.data) {
player.currentlyPlaying = result.data.track ?? null;
player.progress = result.data.position;
+ player.isPaused = false;
}
};
};
diff --git a/src/lib/player.svelte.ts b/src/lib/player.svelte.ts
index 2e18719..27601a5 100644
--- a/src/lib/player.svelte.ts
+++ b/src/lib/player.svelte.ts
@@ -5,10 +5,11 @@ import { PlayerClient } from './proto/player.client';
import { protoTransport } from '../hooks.client';
class PlayerState {
- volume = $state(0);
+ volume = $state(0.0);
currentlyPlaying = $state