thing.rsx 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. fn app(cx: Scope) -> Element {
  2. cx.render(rsx! {
  3. div {
  4. div {
  5. key: "asdasd",
  6. class: "asdasd",
  7. class: "asdasd",
  8. class: "asdasd",
  9. class: "asdasd",
  10. class: "asdasd",
  11. class: "asdasd",
  12. class: "asdasd",
  13. class: "asdasd",
  14. class: "asdasd",
  15. class: "asdasd",
  16. class: "asdasd",
  17. class: "asdasd",
  18. class: "asdasd",
  19. }
  20. }
  21. h1 {"hi"}
  22. h1 {"hi"}
  23. h1 {"hi"}
  24. h1 {"hi"}
  25. div {
  26. div {
  27. key: "ddd",
  28. class: "asd",
  29. class: "asd",
  30. class: "asd",
  31. class: "asd",
  32. class: "asd",
  33. class: "asd",
  34. blah: 123,
  35. onclick: move |_| {
  36. let blah = 120;
  37. true
  38. },
  39. onclick: move |_| {
  40. let blah = 120;
  41. true
  42. },
  43. onclick: move |_| {
  44. let blah = 120;
  45. true
  46. },
  47. onclick: move |_| {
  48. let blah = 120;
  49. true
  50. },
  51. div {
  52. div { "hi" }
  53. h2 { class: "asd" }
  54. }
  55. Component {}
  56. // Generics
  57. Component<Generic> {}
  58. }
  59. }
  60. div { adsasd: "asd",
  61. h1 { "asd" }
  62. div {
  63. div { "hello" }
  64. div { "goodbye" }
  65. div { class: "broccoli", div { "hi" } }
  66. div { class: "broccolibroccolibroccolibroccolibroccolibroccolibroccolibroccolibroccolibroccoli",
  67. div { "hi" }
  68. }
  69. div {
  70. class: "alksdjasd",
  71. onclick: move |_| {
  72. liberty!();
  73. },
  74. div { "hi" }
  75. }
  76. commented {
  77. // is unparalled
  78. class: "asdasd",
  79. // My genius
  80. div { "hi" }
  81. div {}
  82. }
  83. }
  84. }
  85. // Components
  86. Component {
  87. adsasd: "asd",
  88. // this is a comment
  89. onclick: move |_| {
  90. let blah = 120;
  91. let blah = 122;
  92. }
  93. }
  94. div {
  95. Component {
  96. adsasd: "asd",
  97. onclick: move |_| {
  98. let a = a;
  99. },
  100. div { "thing" }
  101. }
  102. Component {
  103. asdasd: "asdasd",
  104. asdasd: "asdasdasdasdasdasdasdasdasdasd",
  105. ..Props {
  106. a: 10,
  107. b: 20
  108. }
  109. }
  110. Component {
  111. asdasd: "asdasd",
  112. ..Props {
  113. a: 10,
  114. b: 20,
  115. c: {
  116. fn main() {}
  117. },
  118. }
  119. "content"
  120. }
  121. }
  122. div {
  123. a: "1234567891012345678910123456789101234567891012345678910123456789101234567891012345678910123456789101234567891012345678910",
  124. a: "123",
  125. a: "123",
  126. a: "123",
  127. a: "123",
  128. a: "123",
  129. a: "123",
  130. a: "123",
  131. a: "123"
  132. }
  133. // Short attributes
  134. div { a: "123", a: "123", a: "123", a: "123", a: "123", a: "123", a: "123", a: "123", a: "123" }
  135. // Compression
  136. h3 { class: "mb-2 text-xl font-bold", "Invite Member" }
  137. a { class: "text-white", "Send invitation" }
  138. // Props on tops
  139. h3 { class: "mb-2 text-xl font-bold mb-2 text-xl font-bold mb-2 text-xl font-bold mb-2 text-xl font-bold mb-2 text-xl font-bold",
  140. "Invite Member"
  141. }
  142. // No children, minimal props
  143. img { class: "mb-6 mx-auto h-24", src: "artemis-assets/images/friends.png", alt: "" }
  144. // One level compression
  145. div {
  146. a { class: "py-2 px-3 bg-indigo-500 hover:bg-indigo-600 rounded text-xs text-white", href: "#", "Send invitation" }
  147. }
  148. // Tiny component
  149. Component { a: 123 }
  150. // Expressions
  151. ul {
  152. div {}
  153. (0..10).map(|f| rsx! {
  154. li { "hi" }
  155. })
  156. div {}
  157. }
  158. // Complex nesting with components
  159. button {
  160. class: "flex items-center pl-3 py-3 pr-2 text-gray-500 hover:bg-indigo-50 rounded",
  161. onclick: move |evt| {
  162. show_user_menu.set(!show_user_menu.get());
  163. evt.cancel_bubble();
  164. },
  165. onclick: move |evt| show_user_menu.set(!show_user_menu.get()),
  166. span { class: "inline-block mr-4", icons::icon_14 {} }
  167. span { "Settings" }
  168. }
  169. // Complex nesting with handlers
  170. li {
  171. Link { class: "flex items-center pl-3 py-3 pr-4 {active_class} rounded", to: "{to}",
  172. span { class: "inline-block mr-3", icons::icon_0 {} }
  173. span { "{name}" }
  174. children.is_some().then(|| rsx! {
  175. span {
  176. class: "inline-block ml-auto hover:bg-gray-500",
  177. onclick: move |evt| {
  178. // open.set(!open.get());
  179. evt.cancel_bubble();
  180. },
  181. icons::icon_8 {}
  182. }
  183. })
  184. }
  185. div { class: "px-4",
  186. is_current.then(|| rsx!{ children })
  187. }
  188. }
  189. // No nesting
  190. Component {
  191. adsasd: "asd",
  192. onclick: move |_| {
  193. let blah = 120;
  194. }
  195. }
  196. // Component path
  197. my::thing::Component {
  198. adsasd: "asd",
  199. onclick: move |_| {
  200. let blah = 120;
  201. }
  202. }
  203. })
  204. }