summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/contexts/KeypressContext.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/contexts/KeypressContext.tsx')
-rw-r--r--packages/cli/src/ui/contexts/KeypressContext.tsx48
1 files changed, 26 insertions, 22 deletions
diff --git a/packages/cli/src/ui/contexts/KeypressContext.tsx b/packages/cli/src/ui/contexts/KeypressContext.tsx
index b1e70aed..eaf1819b 100644
--- a/packages/cli/src/ui/contexts/KeypressContext.tsx
+++ b/packages/cli/src/ui/contexts/KeypressContext.tsx
@@ -172,6 +172,29 @@ export function KeypressProvider({
};
const handleKeypress = (_: unknown, key: Key) => {
+ if (key.name === 'paste-start') {
+ isPaste = true;
+ return;
+ }
+ if (key.name === 'paste-end') {
+ isPaste = false;
+ broadcast({
+ name: '',
+ ctrl: false,
+ meta: false,
+ shift: false,
+ paste: true,
+ sequence: pasteBuffer.toString(),
+ });
+ pasteBuffer = Buffer.alloc(0);
+ return;
+ }
+
+ if (isPaste) {
+ pasteBuffer = Buffer.concat([pasteBuffer, Buffer.from(key.sequence)]);
+ return;
+ }
+
if (key.name === 'return' && waitingForEnterAfterBackslash) {
if (backslashTimeout) {
clearTimeout(backslashTimeout);
@@ -278,29 +301,10 @@ export function KeypressProvider({
}
}
- if (key.name === 'paste-start') {
- isPaste = true;
- } else if (key.name === 'paste-end') {
- isPaste = false;
- broadcast({
- name: '',
- ctrl: false,
- meta: false,
- shift: false,
- paste: true,
- sequence: pasteBuffer.toString(),
- });
- pasteBuffer = Buffer.alloc(0);
- } else {
- if (isPaste) {
- pasteBuffer = Buffer.concat([pasteBuffer, Buffer.from(key.sequence)]);
- } else {
- if (key.name === 'return' && key.sequence === `${ESC}\r`) {
- key.meta = true;
- }
- broadcast({ ...key, paste: isPaste });
- }
+ if (key.name === 'return' && key.sequence === `${ESC}\r`) {
+ key.meta = true;
}
+ broadcast({ ...key, paste: isPaste });
};
const handleRawKeypress = (data: Buffer) => {