fix: normalize lf enter in tui input

This commit is contained in:
paoloanzn committed 2026-03-31 14:51:39 +02:00
1 parent e878a7ce35
commit c1f9b3e7d3
1 file changed
+8 -4
+8 -4
View File
@@ -210,6 +210,10 @@ function inputToString(input: Buffer | string): string {
}
}
function splitTextToken(value: string): string[] {
return value.match(/\r\n|[\r\n]|[^\r\n]+/g) ?? []
}
export function parseMultipleKeypresses(
prevState: KeyParseState,
input: Buffer | string | null = '',
@@ -278,7 +282,9 @@ export function parseMultipleKeypresses(
const mouse = parseMouseEvent(resynthesized)
keys.push(mouse ?? parseKeypress(resynthesized))
} else {
keys.push(parseKeypress(token.value))
for (const chunk of splitTextToken(token.value)) {
keys.push(parseKeypress(chunk))
}
}
}
}
@@ -698,11 +704,9 @@ function parseKeypress(s: string = ''): ParsedKey {
return createNavKey(s, 'mouse', false)
}
if (s === '\r') {
if (s === '\r' || s === '\n' || s === '\r\n') {
key.raw = undefined
key.name = 'return'
} else if (s === '\n') {
key.name = 'enter'
} else if (s === '\t') {
key.name = 'tab'
} else if (s === '\b' || s === '\x1b\b') {