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

Method render

crates/opencode-tui/src/components/permission.rs:199–260  ·  view source on GitHub ↗
(&self, frame: &mut Frame, area: Rect, theme: &Theme)

Source from the content-addressed store, hash-verified

197 }
198
199 pub fn render(&self, frame: &mut Frame, area: Rect, theme: &Theme) {
200 if !self.is_open || self.requests.is_empty() {
201 return;
202 }
203
204 let request = match self.current_request() {
205 Some(r) => r,
206 None => return,
207 };
208
209 let height = 8u16;
210 let width = area.width.saturating_sub(2).min(80);
211
212 // Render inline at the bottom of the session area
213 let popup_area = Rect::new(
214 area.x + 1,
215 area.y + area.height.saturating_sub(height + 1),
216 width,
217 height,
218 );
219
220 self.last_rendered_area.set(Some(popup_area));
221
222 let title = format!(
223 "{} {} - Permission Request",
224 request.permission_type.icon(),
225 request.permission_type.label()
226 );
227
228 let content = vec![
229 Line::from(Span::styled(
230 &title,
231 Style::default().fg(theme.primary).bold(),
232 )),
233 Line::from(""),
234 Line::from(vec![
235 Span::styled("Tool: ", Style::default().fg(theme.text_muted)),
236 Span::styled(&request.tool_name, Style::default().fg(theme.text)),
237 ]),
238 Line::from(vec![
239 Span::styled("Resource: ", Style::default().fg(theme.text_muted)),
240 Span::styled(&request.resource, Style::default().fg(theme.text)),
241 ]),
242 Line::from(""),
243 Line::from(vec![
244 Span::styled("[y] Allow ", Style::default().fg(theme.success)),
245 Span::styled("[n] Deny ", Style::default().fg(theme.error)),
246 Span::styled("[a] Always allow", Style::default().fg(theme.primary)),
247 ]),
248 ];
249
250 let paragraph = Paragraph::new(content)
251 .block(
252 Block::default()
253 .title(" Permission ")
254 .borders(Borders::ALL)
255 .border_style(Style::default().fg(theme.warning)),
256 )

Callers

nothing calls this directly

Calls 5

newFunction · 0.85
is_emptyMethod · 0.80
current_requestMethod · 0.80
setMethod · 0.45
titleMethod · 0.45

Tested by

no test coverage detected