summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/components/CodeBlock.tsx
diff options
context:
space:
mode:
authorJay V <[email protected]>2025-06-27 20:21:28 -0400
committerJay V <[email protected]>2025-06-27 20:21:28 -0400
commit7b394b91e2b40d526b36b3d468445ed1726bb297 (patch)
tree76baf657c211823819390fbb7578056cd5e06fa0 /packages/web/src/components/CodeBlock.tsx
parent6a7983a4ea9cb4ed6ec93f99f742df5a384cf807 (diff)
downloadopencode-7b394b91e2b40d526b36b3d468445ed1726bb297.tar.gz
opencode-7b394b91e2b40d526b36b3d468445ed1726bb297.zip
docs: share handle slower code blocks
Diffstat (limited to 'packages/web/src/components/CodeBlock.tsx')
-rw-r--r--packages/web/src/components/CodeBlock.tsx31
1 files changed, 20 insertions, 11 deletions
diff --git a/packages/web/src/components/CodeBlock.tsx b/packages/web/src/components/CodeBlock.tsx
index 03744550e..4c6aab48e 100644
--- a/packages/web/src/components/CodeBlock.tsx
+++ b/packages/web/src/components/CodeBlock.tsx
@@ -18,16 +18,19 @@ function CodeBlock(props: CodeBlockProps) {
const [local, rest] = splitProps(props, ["code", "lang", "onRendered"])
let containerRef!: HTMLDivElement
- const [html] = createResource(() => [local.code, local.lang], async ([code, lang]) => {
- return (await codeToHtml(code || "", {
- lang: lang || "text",
- themes: {
- light: "github-light",
- dark: "github-dark",
- },
- transformers: [transformerNotationDiff()],
- })) as string
- })
+ const [html] = createResource(
+ () => [local.code, local.lang],
+ async ([code, lang]) => {
+ return (await codeToHtml(code || "", {
+ lang: lang || "text",
+ themes: {
+ light: "github-light",
+ dark: "github-dark",
+ },
+ transformers: [transformerNotationDiff()],
+ })) as string
+ },
+ )
onCleanup(() => {
if (containerRef) containerRef.innerHTML = ""
@@ -41,7 +44,13 @@ function CodeBlock(props: CodeBlockProps) {
}
})
- return <div ref={containerRef} class={styles.codeblock} {...rest}></div>
+ return (
+ <>
+ {html() ? (
+ <div ref={containerRef} class={styles.codeblock} {...rest}></div>
+ ) : null}
+ </>
+ )
}
export default CodeBlock