From 490a437b72519a82b7aab14564e2f1877ed247f0 Mon Sep 17 00:00:00 2001 From: tabarra <1808295+tabarra@users.noreply.github.com> Date: Fri, 8 Mar 2024 01:53:50 -0300 Subject: [PATCH] fix(terminal): fixed out-of-sync search on multiline write Ref: https://github.com/xtermjs/xterm.js/issues/4994 --- docs/dev_notes.md | 6 ++++-- panel/src/pages/LiveConsole/LiveConsole.tsx | 12 ++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/dev_notes.md b/docs/dev_notes.md index db49fc063..2cae647e3 100644 --- a/docs/dev_notes.md +++ b/docs/dev_notes.md @@ -12,6 +12,7 @@ - [x] merge prs (7 merged, 4 closed) - [x] follow up recipe maintainers regarding fxmanifest description - [x] live console bookmarks +- [x] fix(terminal): fixed out-of-sync search on multiline write - assorted changes - [x] add snapshot and gc to advanced actions @@ -27,7 +28,6 @@ seems like it just refreshes the page - [ ] easter egg with some old music? https://www.youtube.com/watch?v=nNoaXej0Jeg - [ ] update docs on development? -- [ ] FIXME: I am scrolled up, and each time a new row appears in live console, the highlighted part moves down a row to some random 3 characters. - [ ] Use q5/q95 from QuantileArrayOutput to help me define the buckets, then implement the join check time histogram @@ -566,7 +566,9 @@ FIXME: quando o menu abrir, deveria voltar os list item pro default deles - apparently this can be done in scheduler quite easily by modifying the definition of `TriggerClientEvent` - http requests (grouped by resource, grouped by root domain or both?) - performance chart with ram usage -- player count (loger window, maybe with some other data) +- player count (longer window, maybe with some other data) +- histogram of session time +- new players per day - top players? - map heatmap?! - player disconnect reasons diff --git a/panel/src/pages/LiveConsole/LiveConsole.tsx b/panel/src/pages/LiveConsole/LiveConsole.tsx index b7af249b9..74578a58e 100644 --- a/panel/src/pages/LiveConsole/LiveConsole.tsx +++ b/panel/src/pages/LiveConsole/LiveConsole.tsx @@ -156,7 +156,7 @@ export default function LiveConsole() { useEventListener('keydown', (e: KeyboardEvent) => { if (e.code === 'F5') { - if(isConnected){ + if (isConnected) { refreshPage(); e.preventDefault(); } @@ -176,6 +176,14 @@ export default function LiveConsole() { } }); + //NOTE: quickfix for https://github.com/xtermjs/xterm.js/issues/4994 + const writeToTerminal = (data: string) => { + const lines = data.split(/\r?\n/); + for (const line of lines) { + term.writeln(line); + } + } + //DEBUG // useEffect(() => { // let cnt = 0; @@ -222,7 +230,7 @@ export default function LiveConsole() { console.log('Live Console Socket.IO', error); }); pageSocket.current.on('consoleData', function (data) { - term.write(data); + writeToTerminal(data); }); return () => {