1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- use crossterm::event::{KeyCode, KeyEvent, MouseEvent};
- use dioxus::prelude::*;
- fn main() {
- rink::launch(app);
- }
- fn app(cx: Scope) -> Element {
- let (key, set_key) = use_state(&cx, || KeyCode::Null);
- let (mouse, set_mouse) = use_state(&cx, || (0, 0));
- let (size, set_size) = use_state(&cx, || (0, 0));
- let (count, set_count) = use_state(&cx, || 0);
- cx.render(rsx! {
- div {
- width: "100%",
- height: "10px",
- background_color: "red",
- justify_content: "center",
- align_items: "center",
- flex_direction: "column",
- rink::InputHandler {
- onkeydown: move |evt: KeyEvent| {
- use crossterm::event::KeyCode::*;
- match evt.code {
- Left => set_count(count + 1),
- Right => set_count(count - 1),
- Up => set_count(count + 10),
- Down => set_count(count - 10),
- _ => {},
- }
- set_key(evt.code);
- },
- onmousedown: move |evt: MouseEvent| {
- set_mouse((evt.row, evt.column));
- },
- onresize: move |dims| {
- set_size(dims);
- },
- },
- "count: {count:?}",
- "key: {key:?}",
- "mouse: {mouse:?}",
- "resize: {size:?}",
- }
- })
- }
- fn app2<'a>(cx: Scope<'a>) -> Element<'a> {
- let (count, set_count) = use_state(&cx, || 0);
- cx.render(rsx! {
- div {
- width: "100%",
- height: "10px",
- background_color: "red",
- justify_content: "center",
- align_items: "center",
- oninput: move |_| set_count(count + 1),
- "Hello world!",
- h1 {},
- }
- })
- }
|