Skip to content
Snippets Groups Projects
Commit 23fc3a67 authored by IceSentry's avatar IceSentry
Browse files

use use_state

parent ab788222
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ use bevy::{
DefaultPlugins,
};
use kayak_core::Color;
use kayak_render_macros::use_state;
use kayak_ui::bevy::{BevyContext, BevyKayakUIPlugin, FontMapping, UICameraBundle};
use kayak_ui::core::{
render, rsx,
......@@ -14,13 +15,9 @@ use kayak_ui::widgets::{App, OnChange, TextBox, Window};
#[widget]
fn TextBoxExample(context: &mut KayakContext) {
let value = context
.create_state("I started with a value!".to_string())
.unwrap();
let red_value = context
.create_state("This text is red".to_string())
.unwrap();
let empty_value = context.create_state("".to_string()).unwrap();
let (value, set_value, _) = use_state!("I started with a value!".to_string());
let (empty_value, set_empty_value, _) = use_state!("".to_string());
let (red_value, set_red_value, _) = use_state!("This text is red".to_string());
let input_styles = Style {
top: StyleProp::Value(Units::Pixels(10.0)),
......@@ -32,34 +29,28 @@ fn TextBoxExample(context: &mut KayakContext) {
..input_styles.clone()
};
let cloned_value = value.clone();
let on_change = OnChange::new(move |event| {
cloned_value.set(event.value);
set_value(event.value);
});
let cloned_value2 = empty_value.clone();
let on_change2 = OnChange::new(move |event| {
cloned_value2.set(event.value);
let on_change_empty = OnChange::new(move |event| {
set_empty_value(event.value);
});
let cloned_red_value = red_value.clone();
let on_change_red = OnChange::new(move |event| {
cloned_red_value.set(event.value);
set_red_value(event.value);
});
let current_value = value.get();
let current_value2 = empty_value.get();
let current_red_value = red_value.get();
rsx! {
<Window position={(50.0, 50.0)} size={(300.0, 300.0)} title={"TextBox Example".to_string()}>
<TextBox styles={Some(input_styles)} value={current_value} on_change={Some(on_change)} />
<TextBox styles={Some(input_styles)} value={value} on_change={Some(on_change)} />
<TextBox
styles={Some(input_styles)}
value={current_value2}
on_change={Some(on_change2)}
value={empty_value}
on_change={Some(on_change_empty)}
placeholder={Some("This is a placeholder".to_string())}
/>
<TextBox styles={Some(red_text_styles)} value={current_red_value} on_change={Some(on_change_red)} />
<TextBox styles={Some(red_text_styles)} value={red_value} on_change={Some(on_change_red)} />
</Window>
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment