fix: textarea - Enter翻译/Ctrl+Enter换行
This commit is contained in:
@@ -106,8 +106,14 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
return m, nil
|
return m, nil
|
||||||
|
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
switch msg.Type {
|
keyStr := msg.String()
|
||||||
case tea.KeyEnter:
|
switch {
|
||||||
|
case keyStr == "ctrl+enter":
|
||||||
|
m.textArea.InsertString("\n")
|
||||||
|
m.updateTextAreaHeight()
|
||||||
|
return m, nil
|
||||||
|
|
||||||
|
case keyStr == "enter":
|
||||||
if m.loading {
|
if m.loading {
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
@@ -119,26 +125,21 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
m.errMsg = ""
|
m.errMsg = ""
|
||||||
return m, m.doTranslate(text, m.targetLang)
|
return m, m.doTranslate(text, m.targetLang)
|
||||||
|
|
||||||
case tea.KeyCtrlJ:
|
case keyStr == "ctrl+c":
|
||||||
m.textArea, cmd = m.textArea.Update(msg)
|
|
||||||
m.updateTextAreaHeight()
|
|
||||||
return m, cmd
|
|
||||||
|
|
||||||
case tea.KeyCtrlC:
|
|
||||||
return m, tea.Quit
|
return m, tea.Quit
|
||||||
|
|
||||||
case tea.KeyCtrlL:
|
case keyStr == "ctrl+l":
|
||||||
m.textArea.SetValue("")
|
m.textArea.SetValue("")
|
||||||
m.result = ""
|
m.result = ""
|
||||||
m.errMsg = ""
|
m.errMsg = ""
|
||||||
return m, nil
|
return m, nil
|
||||||
|
|
||||||
case tea.KeyCtrlT:
|
case keyStr == "ctrl+t":
|
||||||
m.langIndex = (m.langIndex + 1) % len(supportedLangs)
|
m.langIndex = (m.langIndex + 1) % len(supportedLangs)
|
||||||
m.targetLang = supportedLangs[m.langIndex]
|
m.targetLang = supportedLangs[m.langIndex]
|
||||||
return m, nil
|
return m, nil
|
||||||
|
|
||||||
case tea.KeyEsc:
|
case keyStr == "esc":
|
||||||
return m, tea.Quit
|
return m, tea.Quit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user