diff options
| -rw-r--r-- | packages/web/src/components/CodeBlock.tsx | 5 | ||||
| -rw-r--r-- | packages/web/src/components/Share.tsx | 11 |
2 files changed, 7 insertions, 9 deletions
diff --git a/packages/web/src/components/CodeBlock.tsx b/packages/web/src/components/CodeBlock.tsx index b3a0d3f2e..a9bfae8be 100644 --- a/packages/web/src/components/CodeBlock.tsx +++ b/packages/web/src/components/CodeBlock.tsx @@ -12,9 +12,10 @@ import { transformerNotationDiff } from "@shikijs/transformers" interface CodeBlockProps extends JSX.HTMLAttributes<HTMLDivElement> { code: string lang?: string + onRendered?: () => void } function CodeBlock(props: CodeBlockProps) { - const [local, rest] = splitProps(props, ["code", "lang"]) + const [local, rest] = splitProps(props, ["code", "lang", "onRendered"]) let containerRef!: HTMLDivElement const [html] = createResource(async () => { @@ -35,6 +36,8 @@ function CodeBlock(props: CodeBlockProps) { createEffect(() => { if (html() && containerRef) { containerRef.innerHTML = html() as string + + local.onRendered?.() } }) diff --git a/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx index d572dcdd5..e0a73edc7 100644 --- a/packages/web/src/components/Share.tsx +++ b/packages/web/src/components/Share.tsx @@ -188,7 +188,7 @@ function TextPart(props: TextPartProps) { {...rest} > <pre ref={(el) => (preEl = el)}>{local.text}</pre> - {overflowed() && ( + {((!local.expand && overflowed()) || expanded()) && ( <button type="button" data-element-button-text @@ -223,15 +223,9 @@ function TerminalPart(props: TerminalPartProps) { } onMount(() => { - checkOverflow() window.addEventListener("resize", checkOverflow) }) - createEffect(() => { - local.text - setTimeout(checkOverflow, 0) - }) - onCleanup(() => { window.removeEventListener("resize", checkOverflow) }) @@ -247,12 +241,13 @@ function TerminalPart(props: TerminalPartProps) { <div data-section="content"> <CodeBlock lang="ansi" + onRendered={checkOverflow} ref={(el) => (preEl = el)} code={`\x1b[90m>\x1b[0m ${local.text}`} /> </div> </div> - {overflowed() && ( + {((!local.expand && overflowed()) || expanded()) && ( <button type="button" data-element-button-text |
