MCPcopy Create free account
hub / github.com/GCWing/BitFun / render_header

Method render_header

src/apps/cli/src/ui/chat/render.rs:82–114  ·  view source on GitHub ↗

Render header

(&self, frame: &mut Frame, area: Rect, chat_state: &ChatState)

Source from the content-addressed store, hash-verified

80
81 /// Render header
82 fn render_header(&self, frame: &mut Frame, area: Rect, chat_state: &ChatState) {
83 let title = format!(" BitFun CLI v{} ", env!("CARGO_PKG_VERSION"));
84 let agent_info = format!(" Agent: {} ", chat_state.agent_type);
85
86 let workspace = chat_state
87 .workspace
88 .as_ref()
89 .map(|w| format!("Workspace: {}", w))
90 .unwrap_or_else(|| "No workspace".to_string());
91
92 let header = Block::default()
93 .borders(Borders::ALL)
94 .border_style(self.theme.style(StyleKind::Border))
95 .style(Style::default().bg(self.theme.background));
96
97 let title_style = Style::default()
98 .fg(self.theme.primary)
99 .add_modifier(Modifier::BOLD);
100
101 let text = vec![Line::from(vec![
102 Span::styled(&title, title_style),
103 Span::raw(" "),
104 Span::styled(&agent_info, self.theme.style(StyleKind::Primary)),
105 Span::raw(" "),
106 Span::styled(&workspace, self.theme.style(StyleKind::Muted)),
107 ])];
108
109 let paragraph = Paragraph::new(text)
110 .block(header)
111 .alignment(Alignment::Center);
112
113 frame.render_widget(paragraph, area);
114 }
115
116 fn render_messages(&mut self, frame: &mut Frame, area: Rect, chat_state: &ChatState) {
117 let title = if self.browse_mode {

Callers 1

renderMethod · 0.80

Calls 1

styleMethod · 0.80

Tested by

no test coverage detected