| 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 |