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