Преглед на файлове

fix: guard undefined contents in diff renderer to fix share viewer SSR crash (#21763)

YGoetschel преди 4 месеца
родител
ревизия
fea9a0bd4c
променени са 2 файла, в които са добавени 8 реда и са изтрити 4 реда
  1. 6 2
      packages/ui/src/components/file-ssr.tsx
  2. 2 2
      packages/ui/src/components/message-part.tsx

+ 6 - 2
packages/ui/src/components/file-ssr.tsx

@@ -128,8 +128,12 @@ function DiffSSRViewer<T>(props: SSRDiffFileProps<T>) {
             prerenderedHTML: local.preloadedDiff.prerenderedHTML,
           }
         : {
-            oldFile: local.before,
-            newFile: local.after,
+            oldFile: local.before
+              ? { ...local.before, contents: typeof local.before.contents === "string" ? local.before.contents : "" }
+              : local.before,
+            newFile: local.after
+              ? { ...local.after, contents: typeof local.after.contents === "string" ? local.after.contents : "" }
+              : local.after,
             lineAnnotations: annotations,
             fileContainer: fileDiffRef,
             containerWrapper: container,

+ 2 - 2
packages/ui/src/components/message-part.tsx

@@ -1906,11 +1906,11 @@ ToolRegistry.register({
                   mode="diff"
                   before={{
                     name: props.metadata?.filediff?.file || props.input.filePath,
-                    contents: props.metadata?.filediff?.before || props.input.oldString,
+                    contents: props.metadata?.filediff?.before || props.input.oldString || "",
                   }}
                   after={{
                     name: props.metadata?.filediff?.file || props.input.filePath,
-                    contents: props.metadata?.filediff?.after || props.input.newString,
+                    contents: props.metadata?.filediff?.after || props.input.newString || "",
                   }}
                 />
               </div>