summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/components/CodeBlock.tsx
diff options
context:
space:
mode:
authorJay V <[email protected]>2025-07-03 13:15:18 -0400
committerJay V <[email protected]>2025-07-03 13:15:21 -0400
commit3e2a0c7281d449452d6808fdff80e2a1d8cf998d (patch)
treeed48f85259cee6e41ea110895a0bf8d47487d603 /packages/web/src/components/CodeBlock.tsx
parent5a0910ea79b3f219c64f922fc775636b2bfdf07c (diff)
downloadopencode-3e2a0c7281d449452d6808fdff80e2a1d8cf998d.tar.gz
opencode-3e2a0c7281d449452d6808fdff80e2a1d8cf998d.zip
docs: share handle slow loading pages
Diffstat (limited to 'packages/web/src/components/CodeBlock.tsx')
-rw-r--r--packages/web/src/components/CodeBlock.tsx28
1 files changed, 4 insertions, 24 deletions
diff --git a/packages/web/src/components/CodeBlock.tsx b/packages/web/src/components/CodeBlock.tsx
index 4c6aab48e..6a6846891 100644
--- a/packages/web/src/components/CodeBlock.tsx
+++ b/packages/web/src/components/CodeBlock.tsx
@@ -1,8 +1,6 @@
import {
type JSX,
- onCleanup,
splitProps,
- createEffect,
createResource,
} from "solid-js"
import { codeToHtml } from "shiki"
@@ -12,15 +10,15 @@ 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", "onRendered"])
- let containerRef!: HTMLDivElement
+ const [local, rest] = splitProps(props, ["code", "lang"])
const [html] = createResource(
() => [local.code, local.lang],
async ([code, lang]) => {
+ // TODO: For testing delays
+ // await new Promise((resolve) => setTimeout(resolve, 3000))
return (await codeToHtml(code || "", {
lang: lang || "text",
themes: {
@@ -32,25 +30,7 @@ function CodeBlock(props: CodeBlockProps) {
},
)
- onCleanup(() => {
- if (containerRef) containerRef.innerHTML = ""
- })
-
- createEffect(() => {
- if (html() && containerRef) {
- containerRef.innerHTML = html() as string
-
- local.onRendered?.()
- }
- })
-
- return (
- <>
- {html() ? (
- <div ref={containerRef} class={styles.codeblock} {...rest}></div>
- ) : null}
- </>
- )
+ return <div innerHTML={html()} class={styles.codeblock} {...rest}></div >
}
export default CodeBlock