fix: resolve cyclop, funlen issues by extracting helper methods
This commit is contained in:
@@ -55,26 +55,44 @@ func NewUI() *UI {
|
||||
ui.statusBar.SetBackgroundColor(tcell.ColorNavy)
|
||||
ui.statusBar.SetTextColor(tcell.ColorWhite)
|
||||
|
||||
// Input field.
|
||||
ui.setupInput()
|
||||
ui.setupKeyCapture()
|
||||
|
||||
// Layout: messages on top, status bar, input at bottom.
|
||||
ui.layout = tview.NewFlex().SetDirection(tview.FlexRow).
|
||||
AddItem(ui.messages, 0, 1, false).
|
||||
AddItem(ui.statusBar, 1, 0, false).
|
||||
AddItem(ui.input, 1, 0, true)
|
||||
|
||||
ui.app.SetRoot(ui.layout, true)
|
||||
ui.app.SetFocus(ui.input)
|
||||
|
||||
return ui
|
||||
}
|
||||
|
||||
func (ui *UI) setupInput() {
|
||||
ui.input = tview.NewInputField().
|
||||
SetFieldBackgroundColor(tcell.ColorBlack).
|
||||
SetFieldTextColor(tcell.ColorWhite)
|
||||
ui.input.SetDoneFunc(func(key tcell.Key) {
|
||||
if key == tcell.KeyEnter {
|
||||
text := ui.input.GetText()
|
||||
if text == "" {
|
||||
return
|
||||
}
|
||||
if key != tcell.KeyEnter {
|
||||
return
|
||||
}
|
||||
|
||||
ui.input.SetText("")
|
||||
text := ui.input.GetText()
|
||||
if text == "" {
|
||||
return
|
||||
}
|
||||
|
||||
if ui.onInput != nil {
|
||||
ui.onInput(text)
|
||||
}
|
||||
ui.input.SetText("")
|
||||
|
||||
if ui.onInput != nil {
|
||||
ui.onInput(text)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Capture Alt+N for window switching.
|
||||
func (ui *UI) setupKeyCapture() {
|
||||
ui.app.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
|
||||
if event.Modifiers()&tcell.ModAlt != 0 {
|
||||
r := event.Rune()
|
||||
@@ -88,17 +106,6 @@ func NewUI() *UI {
|
||||
|
||||
return event
|
||||
})
|
||||
|
||||
// Layout: messages on top, status bar, input at bottom.
|
||||
ui.layout = tview.NewFlex().SetDirection(tview.FlexRow).
|
||||
AddItem(ui.messages, 0, 1, false).
|
||||
AddItem(ui.statusBar, 1, 0, false).
|
||||
AddItem(ui.input, 1, 0, true)
|
||||
|
||||
ui.app.SetRoot(ui.layout, true)
|
||||
ui.app.SetFocus(ui.input)
|
||||
|
||||
return ui
|
||||
}
|
||||
|
||||
// Run starts the UI event loop (blocks).
|
||||
|
||||
Reference in New Issue
Block a user