diff --git a/frontend/src/pages/playlists.rs b/frontend/src/pages/playlists.rs index 163a93b..5eeb53e 100644 --- a/frontend/src/pages/playlists.rs +++ b/frontend/src/pages/playlists.rs @@ -44,6 +44,12 @@ pub fn playlists_page() -> Html { let count = use_state(|| 50usize); let popularity_bias = use_state(|| 5u8); let ordering = use_state(|| "interleave".to_string()); + let discovery_range = use_state(|| 5u8); + let global_popularity = use_state(|| 0u8); + let country_filter = use_state(|| false); + let seed_weight = use_state(|| 5u8); + let max_tracks_per_artist = use_state(|| 0u8); // 0 = auto + let max_artists = use_state(|| 0u8); // 0 = unlimited // Results let generated = use_state(|| None::); @@ -85,6 +91,12 @@ pub fn playlists_page() -> Html { let count = count.clone(); let popularity_bias = popularity_bias.clone(); let ordering = ordering.clone(); + let discovery_range = discovery_range.clone(); + let global_popularity = global_popularity.clone(); + let country_filter = country_filter.clone(); + let seed_weight = seed_weight.clone(); + let max_tracks_per_artist = max_tracks_per_artist.clone(); + let max_artists = max_artists.clone(); let generated = generated.clone(); let error = error.clone(); let loading = loading.clone(); @@ -94,6 +106,12 @@ pub fn playlists_page() -> Html { let count = *count; let popularity_bias = *popularity_bias; let ordering_val = (*ordering).clone(); + let discovery_range_val = *discovery_range; + let global_popularity_val = *global_popularity; + let country_filter_val = *country_filter; + let seed_weight_val = *seed_weight; + let max_tpa_val = *max_tracks_per_artist; + let max_artists_val = *max_artists; let generated = generated.clone(); let error = error.clone(); let loading = loading.clone(); @@ -110,6 +128,12 @@ pub fn playlists_page() -> Html { popularity_bias, ordering: ordering_val, rules: None, + discovery_range: Some(discovery_range_val), + global_popularity: if global_popularity_val > 0 { Some(global_popularity_val) } else { None }, + country_filter: if country_filter_val { Some(true) } else { None }, + seed_weight: Some(seed_weight_val), + max_tracks_per_artist: if max_tpa_val > 0 { Some(max_tpa_val) } else { None }, + max_artists: if max_artists_val > 0 { Some(max_artists_val) } else { None }, }; match api::generate_playlist(&req).await { @@ -428,6 +452,112 @@ pub fn playlists_page() -> Html { }) }} /> + + + + + + +
+ +
+
+
+ + +
+
+ + +
+