fix download files
Seto Elkahfi committed
Aug 1, 2024 at 20:31 UTC
3122980ff818f46a80b4c8c370fe80a8ee1d82c5
3 files changed
+14
-6
frontend/splitfire-desktop/app/_ui/skeleton-card.tsx
+5
-1
@@ -34,13 +34,17 @@ export const SongProviderCard = ({
34
path: SongProviderPath;
35
}) => {
36
const router = useRouter();
37
+ let queryString = `songProviderId=${songProvider.id}`
38
+ if (path === SongProviderPath.PLAY && songProvider.audio_file) {
39
+ queryString = `audioFileId=${songProvider.audio_file.id}`;
40
+ }
41
return (
42
<button
43
className={clsx("rounded-2xl bg-gray-900/80 p-4", {
44
"relative overflow-hidden before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_1.5s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/10 before:to-transparent":
45
false,
46
})}
43
- onClick={() => router.push(`/${path}?songProviderId=${songProvider.id}`)}
47
+ onClick={() => router.push(`/${path}?${queryString}`)}
48
>
49
<div className="space-y-3">
50
<Image
frontend/splitfire-desktop/app/play/page.tsx
+6
-2
@@ -18,7 +18,7 @@ enum State {
18
export default function Page() {
19
const log = useLogger("Play");
20
const searchParams = useSearchParams();
21
- const songProviderId = searchParams.get("songProviderId");
21
+ const audioFileId = searchParams.get("audioFileId");
22
const [title, setTitle] = useState("Loading song...");
23
const [state, setState] = useState(State.LOADING);
24
@@ -28,7 +28,7 @@ export default function Page() {
28
try {
29
const result: PlayerPrepareResponse = await invoke(
30
TAURI_PLAYER_PREPARE,
31
- { providerId: songProviderId }
31
+ { audioFileId }
32
);
33
log.debug("PreparePlayerResponse", result);
34
switch (result.status) {
@@ -47,6 +47,7 @@ export default function Page() {
47
}
48
}
49
fetchData();
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
}, []);
52
return (
53
<>
@@ -63,6 +64,9 @@ export default function Page() {
64
{state === State.ERROR && (
65
<div className="text-red-500">Failed to load song</div>
66
)}
67
+ {state === State.LOADED && (
68
+ <div className="text-green-500">Song loaded</div>
69
+ )}
70
</div>
71
</div>
72
</>
frontend/splitfire-desktop/src-tauri/src/command/player_prepare.rs
+3
-3
@@ -19,12 +19,12 @@ use std::{
19
use tauri::async_runtime::spawn;
20
21
#[tauri::command]
22
-pub async fn player_prepare(provider_id: String) -> PreparePlayerResponse {
23
- debug!("Preparing player for provider_id {}.", provider_id);
22
+pub async fn player_prepare(audio_file_id: String) -> PreparePlayerResponse {
23
+ debug!("Preparing player for provider_id {}.", audio_file_id);
24
25
// Get audio file response
26
let response = Client::new()
27
- .get(build_audio_detail_url(provider_id))
27
+ .get(build_audio_detail_url(audio_file_id))
28
.send()
29
.await;
30