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) })() }