fix: textarea - Enter翻译/Ctrl+Enter换行

This commit is contained in:
2026-04-06 06:08:19 +08:00
parent 3c45730751
commit 1996e60567

View File

@@ -106,8 +106,14 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
return m, nil
case tea.KeyMsg:
switch msg.Type {
case tea.KeyEnter:
keyStr := msg.String()
switch {
case keyStr == "ctrl+enter":
m.textArea.InsertString("\n")
m.updateTextAreaHeight()
return m, nil
case keyStr == "enter":
if m.loading {
return m, nil
}
@@ -119,26 +125,21 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.errMsg = ""
return m, m.doTranslate(text, m.targetLang)
case tea.KeyCtrlJ:
m.textArea, cmd = m.textArea.Update(msg)
m.updateTextAreaHeight()
return m, cmd
case tea.KeyCtrlC:
case keyStr == "ctrl+c":
return m, tea.Quit
case tea.KeyCtrlL:
case keyStr == "ctrl+l":
m.textArea.SetValue("")
m.result = ""
m.errMsg = ""
return m, nil
case tea.KeyCtrlT:
case keyStr == "ctrl+t":
m.langIndex = (m.langIndex + 1) % len(supportedLangs)
m.targetLang = supportedLangs[m.langIndex]
return m, nil
case tea.KeyEsc:
case keyStr == "esc":
return m, tea.Quit
}