Skip to main content

editor

Function editor 

Source
pub fn editor<M>() -> Editor<M>
Expand description

A multi-line text field.

Examples found in repository?
examples/chat.rs (line 77)
61	fn view(&self) -> View<Msg> {
62		let messages = self.transcript.iter().enumerate().map(|(i, (who, text))| {
63			let node = ui::md(text.clone()).key(i);
64			if *who == "you" {
65				ui::card().key(i).tone("user").child(node.key("t"))
66			} else {
67				ui::card().key(i).variant("bare").child(node.key("t"))
68			}
69		});
70		let cursor: usize = self
71			.draft
72			.chars()
73			.take(self.cursor)
74			.map(char::len_utf16)
75			.sum();
76		View::new().main(ui::col().children(messages)).dock(nodes![
77			ui::editor()
78				.key("ed")
79				.text(self.draft.clone())
80				.cursor(cursor)
81				.placeholder("Message (Enter sends, Escape quits)")
82				.sendable(true)
83				.on_send(|text| Msg::Send(text.to_owned()))
84				.on_focus(Msg::Focus),
85			ui::status()
86				.key("bar")
87				.child(ui::seg("chat").icon("message"))
88				.child(
89					ui::seg(format!("{} messages", self.transcript.len()))
90						.side(Side::Right)
91						.tone(if self.transcript.is_empty() {
92							Tone::Muted
93						} else {
94							Tone::Success
95						}),
96				),
97		])
98	}