atproto blogging
1use dioxus::prelude::*;
2
3#[component]
4pub fn Input(
5 oninput: Option<EventHandler<FormEvent>>,
6 onchange: Option<EventHandler<FormEvent>>,
7 oninvalid: Option<EventHandler<FormEvent>>,
8 onselect: Option<EventHandler<SelectionEvent>>,
9 onselectionchange: Option<EventHandler<SelectionEvent>>,
10 onfocus: Option<EventHandler<FocusEvent>>,
11 onblur: Option<EventHandler<FocusEvent>>,
12 onfocusin: Option<EventHandler<FocusEvent>>,
13 onfocusout: Option<EventHandler<FocusEvent>>,
14 onkeydown: Option<EventHandler<KeyboardEvent>>,
15 onkeypress: Option<EventHandler<KeyboardEvent>>,
16 onkeyup: Option<EventHandler<KeyboardEvent>>,
17 oncompositionstart: Option<EventHandler<CompositionEvent>>,
18 oncompositionupdate: Option<EventHandler<CompositionEvent>>,
19 oncompositionend: Option<EventHandler<CompositionEvent>>,
20 oncopy: Option<EventHandler<ClipboardEvent>>,
21 oncut: Option<EventHandler<ClipboardEvent>>,
22 onpaste: Option<EventHandler<ClipboardEvent>>,
23 #[props(extends=GlobalAttributes)]
24 #[props(extends=input)]
25 attributes: Vec<Attribute>,
26 children: Element,
27) -> Element {
28 rsx! {
29 document::Link { rel: "stylesheet", href: asset!("./input-style.css") }
30 input {
31 class: "input",
32 oninput: move |e| _ = oninput.map(|callback| callback(e)),
33 onchange: move |e| _ = onchange.map(|callback| callback(e)),
34 oninvalid: move |e| _ = oninvalid.map(|callback| callback(e)),
35 onselect: move |e| _ = onselect.map(|callback| callback(e)),
36 onselectionchange: move |e| _ = onselectionchange.map(|callback| callback(e)),
37 onfocus: move |e| _ = onfocus.map(|callback| callback(e)),
38 onblur: move |e| _ = onblur.map(|callback| callback(e)),
39 onfocusin: move |e| _ = onfocusin.map(|callback| callback(e)),
40 onfocusout: move |e| _ = onfocusout.map(|callback| callback(e)),
41 onkeydown: move |e| _ = onkeydown.map(|callback| callback(e)),
42 onkeypress: move |e| _ = onkeypress.map(|callback| callback(e)),
43 onkeyup: move |e| _ = onkeyup.map(|callback| callback(e)),
44 oncompositionstart: move |e| _ = oncompositionstart.map(|callback| callback(e)),
45 oncompositionupdate: move |e| _ = oncompositionupdate.map(|callback| callback(e)),
46 oncompositionend: move |e| _ = oncompositionend.map(|callback| callback(e)),
47 oncopy: move |e| _ = oncopy.map(|callback| callback(e)),
48 oncut: move |e| _ = oncut.map(|callback| callback(e)),
49 onpaste: move |e| _ = onpaste.map(|callback| callback(e)),
50 ..attributes,
51 {children}
52 }
53 }
54}