tui_widgets.rs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. use dioxus::prelude::*;
  2. use dioxus_html::FormData;
  3. use dioxus_tui::prelude::*;
  4. use dioxus_tui::Config;
  5. fn main() {
  6. dioxus_tui::launch_cfg(app, Config::new());
  7. }
  8. fn app(cx: Scope) -> Element {
  9. let bg_green = use_state(cx, || false);
  10. let color = if *bg_green.get() { "green" } else { "red" };
  11. cx.render(rsx! {
  12. div{
  13. width: "100%",
  14. background_color: "{color}",
  15. flex_direction: "column",
  16. align_items: "center",
  17. justify_content: "center",
  18. Input{
  19. oninput: |data: FormData| if &data.value == "good"{
  20. bg_green.set(true);
  21. } else{
  22. bg_green.set(false);
  23. },
  24. r#type: "checkbox",
  25. value: "good",
  26. width: "50%",
  27. height: "10%",
  28. checked: "true",
  29. }
  30. Input{
  31. oninput: |data: FormData| if &data.value == "hello world"{
  32. bg_green.set(true);
  33. } else{
  34. bg_green.set(false);
  35. },
  36. width: "50%",
  37. height: "10%",
  38. maxlength: "11",
  39. }
  40. // Input{
  41. // oninput: |data: FormData| {
  42. // if (data.value.parse::<f32>().unwrap() - 40.0).abs() < 5.0 {
  43. // bg_green.set(true);
  44. // } else{
  45. // bg_green.set(false);
  46. // }
  47. // },
  48. // r#type: "range",
  49. // min: "20",
  50. // max: "80",
  51. // }
  52. // Input{
  53. // oninput: |data: FormData| {
  54. // if data.value == "10"{
  55. // bg_green.set(true);
  56. // } else{
  57. // bg_green.set(false);
  58. // }
  59. // },
  60. // r#type: "number",
  61. // maxlength: "4",
  62. // }
  63. // Input{
  64. // oninput: |data: FormData| {
  65. // if data.value == "hello world"{
  66. // bg_green.set(true);
  67. // } else{
  68. // bg_green.set(false);
  69. // }
  70. // },
  71. // r#type: "password",
  72. // width: "13px",
  73. // height: "3px",
  74. // maxlength: "11",
  75. // }
  76. // Input{
  77. // onclick: |_: FormData| bg_green.set(true),
  78. // r#type: "button",
  79. // value: "green",
  80. // height: "3px",
  81. // width: "7px",
  82. // }
  83. }
  84. })
  85. }