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::{ ...@@ -4,6 +4,7 @@ use bevy::{
DefaultPlugins, DefaultPlugins,
}; };
use kayak_core::Color; use kayak_core::Color;
use kayak_render_macros::use_state;
use kayak_ui::bevy::{BevyContext, BevyKayakUIPlugin, FontMapping, UICameraBundle}; use kayak_ui::bevy::{BevyContext, BevyKayakUIPlugin, FontMapping, UICameraBundle};
use kayak_ui::core::{ use kayak_ui::core::{
render, rsx, render, rsx,
...@@ -14,13 +15,9 @@ use kayak_ui::widgets::{App, OnChange, TextBox, Window}; ...@@ -14,13 +15,9 @@ use kayak_ui::widgets::{App, OnChange, TextBox, Window};
#[widget] #[widget]
fn TextBoxExample(context: &mut KayakContext) { fn TextBoxExample(context: &mut KayakContext) {
let value = context let (value, set_value, _) = use_state!("I started with a value!".to_string());
.create_state("I started with a value!".to_string()) let (empty_value, set_empty_value, _) = use_state!("".to_string());
.unwrap(); let (red_value, set_red_value, _) = use_state!("This text is red".to_string());
let red_value = context
.create_state("This text is red".to_string())
.unwrap();
let empty_value = context.create_state("".to_string()).unwrap();
let input_styles = Style { let input_styles = Style {
top: StyleProp::Value(Units::Pixels(10.0)), top: StyleProp::Value(Units::Pixels(10.0)),
...@@ -32,34 +29,28 @@ fn TextBoxExample(context: &mut KayakContext) { ...@@ -32,34 +29,28 @@ fn TextBoxExample(context: &mut KayakContext) {
..input_styles.clone() ..input_styles.clone()
}; };
let cloned_value = value.clone();
let on_change = OnChange::new(move |event| { let on_change = OnChange::new(move |event| {
cloned_value.set(event.value); set_value(event.value);
}); });
let cloned_value2 = empty_value.clone(); let on_change_empty = OnChange::new(move |event| {
let on_change2 = OnChange::new(move |event| { set_empty_value(event.value);
cloned_value2.set(event.value);
}); });
let cloned_red_value = red_value.clone();
let on_change_red = OnChange::new(move |event| { 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! { rsx! {
<Window position={(50.0, 50.0)} size={(300.0, 300.0)} title={"TextBox Example".to_string()}> <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 <TextBox
styles={Some(input_styles)} styles={Some(input_styles)}
value={current_value2} value={empty_value}
on_change={Some(on_change2)} on_change={Some(on_change_empty)}
placeholder={Some("This is a placeholder".to_string())} 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> </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