Browse Source

share page bugs

Jay V 8 months ago
parent
commit
8206da4d9e

+ 4 - 1
packages/web/src/components/CodeBlock.tsx

@@ -12,9 +12,10 @@ import { transformerNotationDiff } from "@shikijs/transformers"
 interface CodeBlockProps extends JSX.HTMLAttributes<HTMLDivElement> {
 interface CodeBlockProps extends JSX.HTMLAttributes<HTMLDivElement> {
   code: string
   code: string
   lang?: string
   lang?: string
+  onRendered?: () => void
 }
 }
 function CodeBlock(props: CodeBlockProps) {
 function CodeBlock(props: CodeBlockProps) {
-  const [local, rest] = splitProps(props, ["code", "lang"])
+  const [local, rest] = splitProps(props, ["code", "lang", "onRendered"])
   let containerRef!: HTMLDivElement
   let containerRef!: HTMLDivElement
 
 
   const [html] = createResource(async () => {
   const [html] = createResource(async () => {
@@ -35,6 +36,8 @@ function CodeBlock(props: CodeBlockProps) {
   createEffect(() => {
   createEffect(() => {
     if (html() && containerRef) {
     if (html() && containerRef) {
       containerRef.innerHTML = html() as string
       containerRef.innerHTML = html() as string
+
+      local.onRendered?.()
     }
     }
   })
   })
 
 

+ 3 - 8
packages/web/src/components/Share.tsx

@@ -188,7 +188,7 @@ function TextPart(props: TextPartProps) {
       {...rest}
       {...rest}
     >
     >
       <pre ref={(el) => (preEl = el)}>{local.text}</pre>
       <pre ref={(el) => (preEl = el)}>{local.text}</pre>
-      {overflowed() && (
+      {((!local.expand && overflowed()) || expanded()) && (
         <button
         <button
           type="button"
           type="button"
           data-element-button-text
           data-element-button-text
@@ -223,15 +223,9 @@ function TerminalPart(props: TerminalPartProps) {
   }
   }
 
 
   onMount(() => {
   onMount(() => {
-    checkOverflow()
     window.addEventListener("resize", checkOverflow)
     window.addEventListener("resize", checkOverflow)
   })
   })
 
 
-  createEffect(() => {
-    local.text
-    setTimeout(checkOverflow, 0)
-  })
-
   onCleanup(() => {
   onCleanup(() => {
     window.removeEventListener("resize", checkOverflow)
     window.removeEventListener("resize", checkOverflow)
   })
   })
@@ -247,12 +241,13 @@ function TerminalPart(props: TerminalPartProps) {
         <div data-section="content">
         <div data-section="content">
           <CodeBlock
           <CodeBlock
             lang="ansi"
             lang="ansi"
+            onRendered={checkOverflow}
             ref={(el) => (preEl = el)}
             ref={(el) => (preEl = el)}
             code={`\x1b[90m>\x1b[0m ${local.text}`}
             code={`\x1b[90m>\x1b[0m ${local.text}`}
           />
           />
         </div>
         </div>
       </div>
       </div>
-      {overflowed() && (
+      {((!local.expand && overflowed()) || expanded()) && (
         <button
         <button
           type="button"
           type="button"
           data-element-button-text
           data-element-button-text