MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / handle_provider_detail_key

Method handle_provider_detail_key

crates/openshell-tui/src/app.rs:2349–2396  ·  view source on GitHub ↗
(&mut self, key: KeyEvent)

Source from the content-addressed store, hash-verified

2347 // ------------------------------------------------------------------
2348
2349 fn handle_provider_detail_key(&mut self, key: KeyEvent) {
2350 let Some(detail) = self.provider_detail.as_mut() else {
2351 return;
2352 };
2353 match key.code {
2354 KeyCode::Esc if detail.show_raw_profile || detail.show_raw_provider => {
2355 detail.show_raw_profile = false;
2356 detail.show_raw_provider = false;
2357 }
2358 KeyCode::Esc | KeyCode::Enter => {
2359 self.provider_detail = None;
2360 }
2361 KeyCode::Char('y') if detail.raw_profile_yaml.is_some() => {
2362 detail.show_raw_profile = !detail.show_raw_profile;
2363 detail.show_raw_provider = false;
2364 detail.raw_profile_scroll = 0;
2365 }
2366 KeyCode::Char('o') => {
2367 detail.show_raw_provider = !detail.show_raw_provider;
2368 detail.show_raw_profile = false;
2369 detail.raw_provider_scroll = 0;
2370 }
2371 KeyCode::Char('j') | KeyCode::Down if detail.show_raw_profile => {
2372 let max_scroll = detail
2373 .raw_profile_yaml
2374 .as_ref()
2375 .map_or(0, |raw| raw.lines().count().saturating_sub(1));
2376 detail.raw_profile_scroll = (detail.raw_profile_scroll + 1).min(max_scroll);
2377 }
2378 KeyCode::Char('k') | KeyCode::Up if detail.show_raw_profile => {
2379 detail.raw_profile_scroll = detail.raw_profile_scroll.saturating_sub(1);
2380 }
2381 KeyCode::Char('j') | KeyCode::Down if detail.show_raw_provider => {
2382 let max_scroll = detail.raw_provider_yaml.lines().count().saturating_sub(1);
2383 detail.raw_provider_scroll = (detail.raw_provider_scroll + 1).min(max_scroll);
2384 }
2385 KeyCode::Char('k') | KeyCode::Up if detail.show_raw_provider => {
2386 detail.raw_provider_scroll = detail.raw_provider_scroll.saturating_sub(1);
2387 }
2388 KeyCode::Char('j') | KeyCode::Down => {
2389 detail.summary_scroll = detail.summary_scroll.saturating_add(1);
2390 }
2391 KeyCode::Char('k') | KeyCode::Up => {
2392 detail.summary_scroll = detail.summary_scroll.saturating_sub(1);
2393 }
2394 _ => {}
2395 }
2396 }
2397
2398 // ------------------------------------------------------------------
2399 // Update provider modal

Callers 1

handle_keyMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected