use js_sys::Math;
use ron::de::from_str;
use yew::prelude::*; // Nutzt die Browser-API für Zufall

#[function_component(Greet)]
pub fn greet() -> Html {
    let message = use_state(|| "".to_string());

    // Inkludiert die RON-Daten direkt in die .wasm Datei
    let greetings_data = include_str!("../../assets/data/greetings.ron");

    // Wir parsen die Daten einmalig beim Rendern der Komponente
    let messages: Vec<String> = from_str(greetings_data)
        .unwrap_or_else(|_| vec!["Fehler beim Laden der Sprüche...".to_string()]);

    let onclick = {
        let message = message.clone();
        let messages = messages.clone();
        Callback::from(move |_| {
            if !messages.is_empty() {
                // Sicherer Zufall via JavaScript Math API (funktioniert immer in WASM)
                let idx = (Math::random() * messages.len() as f64).floor() as usize;
                if let Some(new_msg) = messages.get(idx) {
                    message.set(new_msg.clone());
                }
            }
        })
    };

    html! {
        <div class="robot-container" {onclick}>
            <div class="robot-icon">{"🤖"}</div>
            if !(*message).is_empty() {
                <p class="bubble">{ (*message).clone() }</p>
            }
        </div>
    }
}
