From bb61908005f25730686a32cf4ab09d9acf075e92 Mon Sep 17 00:00:00 2001 From: "[dyad]" Date: Tue, 20 Jan 2026 15:15:50 +0100 Subject: [PATCH] [dyad] Improved nested schema layout - wrote 1 file(s) --- src/components/pretty-schema-display.tsx | 28 ++++++++++++++++-------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/components/pretty-schema-display.tsx b/src/components/pretty-schema-display.tsx index 091b57e..fa0859b 100644 --- a/src/components/pretty-schema-display.tsx +++ b/src/components/pretty-schema-display.tsx @@ -52,7 +52,7 @@ const keyIcons: { [key: string]: React.ElementType } = { text: Text, }; -const renderValue = (value: any): React.ReactNode => { +const renderValue = (value: any, level: number): React.ReactNode => { if (typeof value === "string") { if (value.startsWith("http://") || value.startsWith("https://")) { try { @@ -81,16 +81,16 @@ const renderValue = (value: any): React.ReactNode => { if (typeof value === "object" && value !== null) { if (Array.isArray(value)) { return ( -
+
{value.map((item, index) => ( -
- {renderValue(item)} -
+ + {renderValue(item, level + 1)} + ))}
); } - return ; + return ; } return {String(value)}; @@ -99,12 +99,20 @@ const renderValue = (value: any): React.ReactNode => { const SchemaObjectRenderer = ({ data, isNested = false, + level = 0, }: { data: any; isNested?: boolean; + level?: number; }) => { + const gridClasses = + level > 0 ? "md:grid-cols-[10rem_1fr]" : "md:grid-cols-[12rem_1fr]"; + const paddingClasses = level > 1 ? "p-1.5" : "p-2"; + const content = ( -
+
{Object.entries(data).map(([key, value]) => { if (key === "@context") return null; const label = @@ -121,7 +129,7 @@ const SchemaObjectRenderer = ({ {key === "@type" ? ( {value as string} ) : ( - renderValue(value) + renderValue(value, level) )}
@@ -132,7 +140,9 @@ const SchemaObjectRenderer = ({ if (isNested) { return ( -
{content}
+
+ {content} +
); }