MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / render_with_prompt

Method render_with_prompt

crates/opencode-tui/src/components/home.rs:73–121  ·  view source on GitHub ↗
(&self, frame: &mut Frame, area: Rect, prompt: &Prompt)

Source from the content-addressed store, hash-verified

71 }
72
73 pub fn render_with_prompt(&self, frame: &mut Frame, area: Rect, prompt: &Prompt) {
74 let area = Rect {
75 x: area.x.saturating_add(HOME_OUTER_H_PADDING),
76 y: area.y.saturating_add(HOME_OUTER_V_PADDING),
77 width: area
78 .width
79 .saturating_sub(HOME_OUTER_H_PADDING.saturating_mul(2)),
80 height: area
81 .height
82 .saturating_sub(HOME_OUTER_V_PADDING.saturating_mul(2)),
83 };
84 if area.width == 0 || area.height == 0 {
85 return;
86 }
87 let theme = self.context.theme.read();
88
89 let layout = Layout::default()
90 .direction(Direction::Vertical)
91 .constraints([
92 Constraint::Min(1),
93 Constraint::Length(6),
94 Constraint::Length(1),
95 Constraint::Length(8),
96 Constraint::Length(4),
97 Constraint::Length(3),
98 ])
99 .split(area);
100
101 let logo = Logo::new(theme.text, theme.text_muted, theme.background);
102 logo.render(frame, layout[1]);
103 self.render_tagline(frame, layout[2]);
104
105 let prompt_width = layout[3].width.min(HOME_MAX_CONTENT_WIDTH);
106 let left_pad = (layout[3].width.saturating_sub(prompt_width)) / 2;
107 let prompt_area = Rect {
108 x: layout[3].x + left_pad,
109 y: layout[3].y,
110 width: prompt_width,
111 height: layout[3].height,
112 };
113
114 prompt.render(frame, prompt_area);
115
116 if self.should_show_tips() {
117 self.render_tips(frame, layout[4]);
118 }
119
120 self.render_footer(frame, layout[5]);
121 }
122
123 fn render_tagline(&self, frame: &mut Frame, area: Rect) {
124 if area.width == 0 || area.height == 0 {

Callers 2

renderMethod · 0.80
drawMethod · 0.80

Calls 7

newFunction · 0.85
readMethod · 0.80
render_taglineMethod · 0.80
should_show_tipsMethod · 0.80
render_tipsMethod · 0.80
renderMethod · 0.45
render_footerMethod · 0.45

Tested by

no test coverage detected