MCPcopy Create free account
hub / github.com/OverloadBlitz/cloudcent-cli / handleKeyResults

Method handleKeyResults

internal/tui/views/pricing.go:397–454  ·  view source on GitHub ↗
(key string)

Source from the content-addressed store, hash-verified

395}
396
397func (v *PricingView) handleKeyResults(key string) PricingEvent {
398 switch key {
399 case "up":
400 pageStart := v.ResultsPage * v.ResultsPerPage
401 if v.Selected > pageStart {
402 v.Selected--
403 } else {
404 v.ActiveSection = PricingSectionCommand
405 v.BuilderFocus = BuilderFocusField
406 v.UpdateSuggestions()
407 }
408 case "down":
409 if len(v.FilteredItems) > 0 {
410 pageEnd := ((v.ResultsPage + 1) * v.ResultsPerPage)
411 if pageEnd > len(v.FilteredItems) {
412 pageEnd = len(v.FilteredItems)
413 }
414 pageEnd--
415 if v.Selected < pageEnd {
416 v.Selected++
417 }
418 }
419 case "j":
420 if v.ResultsPage > 0 {
421 v.ResultsPage--
422 v.Selected = v.ResultsPage * v.ResultsPerPage
423 }
424 case "k":
425 totalPages := (len(v.FilteredItems) + v.ResultsPerPage - 1) / v.ResultsPerPage
426 if v.ResultsPage+1 < totalPages {
427 v.ResultsPage++
428 v.Selected = v.ResultsPage * v.ResultsPerPage
429 }
430 case "pgdown":
431 totalPages := (len(v.FilteredItems) + v.ResultsPerPage - 1) / v.ResultsPerPage
432 if v.ResultsPage+1 < totalPages {
433 v.ResultsPage++
434 v.Selected = v.ResultsPage * v.ResultsPerPage
435 }
436 case "pgup":
437 if v.ResultsPage > 0 {
438 v.ResultsPage--
439 v.Selected = v.ResultsPage * v.ResultsPerPage
440 }
441 case "left":
442 if v.HScrollOffset > 0 {
443 v.HScrollOffset--
444 }
445 case "right":
446 // Allow scrolling right only if there are more attr columns to reveal.
447 if v.scrollColCount > 0 && v.HScrollOffset+1 < v.scrollColCount {
448 v.HScrollOffset++
449 }
450 case "esc":
451 return PricingEventQuit
452 }
453 return PricingEventNone
454}

Callers 1

HandleKeyMethod · 0.95

Calls 1

UpdateSuggestionsMethod · 0.95

Tested by

no test coverage detected