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}
+
);
}