API Endpoints for Album Queries

This commit is contained in:
2024-10-25 21:23:21 +00:00
parent df01bafbd1
commit fe1b76e6e4
6 changed files with 65 additions and 20 deletions

55
src/pages/albumpage.rs Normal file
View File

@ -0,0 +1,55 @@
use leptos::leptos_dom::*;
use leptos::*;
use leptos_router::*;
use crate::models::*;
use crate::components::song_list::*;
#[derive(Params, PartialEq)]
struct AlbumParams {
id: i32
}
/*
#[component]
pub fn AlbumPage() -> impl IntoView {
let params = use_params::<AlbumParams>();
let id = move || {params.with(|params| {
params.as_ref()
.map(|params| params.id)
.map_err(|e| e.clone())
})
};
let song_list = create_resource(
id,
|value| async move {
match value {
Ok(v) => {get_album(v).await},
Err(e) => {Err(ServerFnError::Request("Invalid album!".into()))},
}
},
);
view! {
<Suspense
fallback=move || view! { <p>"Loading..."</p> }
>
{move || {
song_list.with( |song_list| {
match song_list {
Some(Ok(s)) => {
view! { <SongList songs=s.clone().into()/> }.into_view()
},
Some(Err(e)) => {
view! { <div>"Error loading albums: :e"</div> }.into_view()
},
None => {view! { }.into_view()}
}
})
}}
</Suspense>
}
}
*/