use yew::prelude::*; use yew::{classes, function_component, html, Callback, Html, NodeRef}; use crate::router::Route; use crate::CharStatus; fn string_to_html(input: &Vec>) -> Html { let classes = classes!("p-3"); html! { } } #[function_component] pub fn Home() -> Html { let got_word = "HALLO"; let mut submitted_words = yew::use_state(|| vec![]); let input = yew::use_state(|| { vec![ "".to_owned(), "".to_owned(), "".to_owned(), "".to_owned(), "".to_owned(), ] }); let on_submit = { let input = input.clone(); let submitted_words = submitted_words.clone(); Callback::from(move |event: MouseEvent| { let mut new_items = (*submitted_words).clone(); new_items.push(crate::compare_strings(&got_word, &input.join(""))); submitted_words.set(new_items); }) }; let editing_index = yew::use_state(|| None); let editing_value = yew::use_state(|| String::new()); let on_click = { let editing_index = editing_index.clone(); let editing_value = editing_value.clone(); let input = input.clone(); Callback::from(move |index: usize| { editing_index.set(Some(index)); editing_value.set(input.to_vec()[index].clone()); }) }; let on_input = { let editing_value = editing_value.clone(); Callback::from(move |value: String| { editing_value.set(value); }) }; let on_blur = { let editing_index = editing_index.clone(); let editing_value = editing_value.clone(); let input = input.clone(); Callback::from(move |_| { if let Some(index) = *editing_index { let mut new_input = input.to_vec(); new_input[index] = editing_value.to_uppercase().to_string(); input.set(new_input); } editing_index.set(None); }) }; // let mut submitted_words = vec![]; let res = crate::compare_strings(got_word, "HLLAI"); html! {
{submitted_words.iter().map(|w| string_to_html(&w)).collect::()} //
{format!("{:?}",res)}
//
{ // got_word // }
//
} }