p2p_chat/ui/chat_mode/
mod.rs1use super::completers::ChatCompleter;
3
4mod input;
5mod render;
6
7pub struct ChatMode {
9 input_history: Vec<String>,
11 history_index: Option<usize>,
13 completer: ChatCompleter,
15 current_suggestion: Option<String>,
17}
18
19impl ChatMode {
20 pub fn new() -> Self {
22 Self {
23 input_history: Vec::new(),
24 history_index: None,
25 completer: ChatCompleter::new(Vec::new()),
26 current_suggestion: None,
27 }
28 }
29
30 pub fn update_friends(&mut self, friends: Vec<String>) {
32 self.completer.update_friends(friends);
33 }
34
35 pub fn update_discovered_peers(&mut self, peers: Vec<String>) {
37 self.completer.update_discovered_peers(peers);
38 }
39
40 pub fn get_current_suggestion(&self) -> Option<&str> {
42 self.current_suggestion.as_deref()
43 }
44}