MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / handleNormalInput

Method handleNormalInput

internal/tui/auth_tab.go:395–456  ·  view source on GitHub ↗
(msg tea.KeyMsg)

Source from the content-addressed store, hash-verified

393}
394
395func (m authTabModel) handleNormalInput(msg tea.KeyMsg) (authTabModel, tea.Cmd) {
396 switch msg.String() {
397 case "j", "down":
398 if len(m.files) > 0 {
399 m.cursor = (m.cursor + 1) % len(m.files)
400 m.viewport.SetContent(m.renderContent())
401 }
402 return m, nil
403 case "k", "up":
404 if len(m.files) > 0 {
405 m.cursor = (m.cursor - 1 + len(m.files)) % len(m.files)
406 m.viewport.SetContent(m.renderContent())
407 }
408 return m, nil
409 case "enter", " ":
410 if m.expanded == m.cursor {
411 m.expanded = -1
412 } else {
413 m.expanded = m.cursor
414 }
415 m.viewport.SetContent(m.renderContent())
416 return m, nil
417 case "d", "D":
418 if m.cursor < len(m.files) {
419 m.confirm = m.cursor
420 m.viewport.SetContent(m.renderContent())
421 }
422 return m, nil
423 case "e", "E":
424 if m.cursor < len(m.files) {
425 f := m.files[m.cursor]
426 name := getString(f, "name")
427 disabled := getBool(f, "disabled")
428 newDisabled := !disabled
429 return m, func() tea.Msg {
430 err := m.client.ToggleAuthFile(name, newDisabled)
431 if err != nil {
432 return authActionMsg{err: err}
433 }
434 action := T("enabled")
435 if newDisabled {
436 action = T("disabled")
437 }
438 return authActionMsg{action: fmt.Sprintf("%s %s", action, name)}
439 }
440 }
441 return m, nil
442 case "1":
443 return m, m.startEdit(0) // prefix
444 case "2":
445 return m, m.startEdit(1) // proxy_url
446 case "3":
447 return m, m.startEdit(2) // priority
448 case "r":
449 m.status = ""
450 return m, m.fetchFiles
451 default:
452 var cmd tea.Cmd

Callers 1

UpdateMethod · 0.95

Calls 8

renderContentMethod · 0.95
startEditMethod · 0.95
getStringFunction · 0.85
getBoolFunction · 0.85
TFunction · 0.85
ToggleAuthFileMethod · 0.80
StringMethod · 0.45
UpdateMethod · 0.45

Tested by

no test coverage detected