use web_sys::HtmlInputElement;
use web_sys::HtmlSelectElement;
use yew::prelude::*;
use crate::api;
use crate::types::*;
#[function_component(PlaylistsPage)]
pub fn playlists_page() -> Html {
// Tab state: "saved" | "generate" | "edit"
let active_tab = use_state(|| "saved".to_string());
let editing_playlist = use_state(|| None::);
// All local artists (for seed picker)
let all_artists = use_state(Vec::::new);
{
let all_artists = all_artists.clone();
use_effect_with((), move |_| {
wasm_bindgen_futures::spawn_local(async move {
if let Ok(artists) = api::list_artists(0, 0).await {
all_artists.set(artists);
}
});
});
}
// All tracks (for add-track search in edit tab)
let all_tracks = use_state(Vec::