From 5e99ec93de3a260e49441cece2397cd3f5546b64 Mon Sep 17 00:00:00 2001 From: lianahus Date: Fri, 22 Sep 2023 00:03:29 +0200 Subject: [PATCH] scroll to bottom after every line --- libs/remix-ui/renderer/src/lib/renderer.tsx | 6 +++--- .../terminal/src/lib/remix-ui-terminal.tsx | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 27959bda6c..084c510517 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -96,11 +96,11 @@ export const Renderer = ({message, opt = {}, plugin}: RendererProps) => {
-
- +
+ - { askGtp() }}>ASK GPT + { askGtp() }}>ASK GPT
)} diff --git a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx index 258c64c740..6a58e23cc9 100644 --- a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx +++ b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx @@ -736,7 +736,8 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { return (
{ - typewrite(element, msg ? msg.toString() : null) + typewrite(element, msg ? msg.toString() : null, () => scrollToBottom() + ) }} className={x.style}>
@@ -754,7 +755,7 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { typeWriterIndexes.current.push(index) return (
{ - typewrite(element, x.message) + typewrite(element, x.message, () => scrollToBottom()) }} className={x.style}>
) } else { @@ -803,14 +804,21 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { ) } -const typewrite = (elementsRef, message) => { +const typewrite = (elementsRef, message, callback) => { (() => { let count = 0 const id = setInterval(() => { if (!elementsRef) return count++ elementsRef.innerText = message.substr(0, count) - if (message === count) clearInterval(id) + // scroll when new line `
+ if (elementsRef.lastChild.tagName === `BR`) { + callback() + } + if (message.length === count) { + clearInterval(id) + callback() + } }, 5) })() }