From 303755437d0f278318ec49bb17833e4c049f2d04 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Sat, 14 Feb 2026 12:16:34 -0600 Subject: [PATCH] refactor: Extract terminal rendering logic to useTerminalRenderer composable - Create useTerminalRenderer.ts with all xterm.js logic - Support custom theme, fontSize, fontFamily options - Add handleReplay() for proper visibility handling - Add getBufferContent() for copying terminal content - Refactor FloatingTerminal.vue to use composable - Refactor TerminalPage.vue to use composable - Server: Add request-replay message type for on-demand replay - Server: Remove auto-replay on connect (client requests when ready) - Fix xterm.js rendering issues with hidden containers (v-show) --- frontend/src/components/FloatingTerminal.vue | 822 ++++++------------ .../src/composables/useTerminalRenderer.ts | 491 +++++++++++ frontend/src/pages/TerminalPage.vue | 287 ++---- server/config.ts | 2 +- server/services/terminal.ts | 45 +- 5 files changed, 877 insertions(+), 770 deletions(-) create mode 100644 frontend/src/composables/useTerminalRenderer.ts diff --git a/frontend/src/components/FloatingTerminal.vue b/frontend/src/components/FloatingTerminal.vue index 1063632..c791e81 100644 --- a/frontend/src/components/FloatingTerminal.vue +++ b/frontend/src/components/FloatingTerminal.vue @@ -1,12 +1,9 @@ @@ -228,28 +188,14 @@ onBeforeUnmount(() => {
- - - - -