MULTI schema handling
This commit is contained in:
@@ -62,5 +62,9 @@ export function ListCellRenderer({ field, value, displayFormat }: ListCellProps)
|
|||||||
return <Chip label={value ? "Yes" : "No"} size="small" color={value ? "success" : "default"} />;
|
return <Chip label={value ? "Yes" : "No"} size="small" color={value ? "success" : "default"} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (typeof value === "object") {
|
||||||
|
return <Typography variant="body2">{applyDisplayFormat(value, displayFormat ?? "")}</Typography>;
|
||||||
|
}
|
||||||
|
|
||||||
return <Typography variant="body2">{String(value)}</Typography>;
|
return <Typography variant="body2">{String(value)}</Typography>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,12 +13,15 @@ export function extractFields(schemaName: string, schema: any, schemas: Record<s
|
|||||||
.map(([name, prop]: [string, any]) => {
|
.map(([name, prop]: [string, any]) => {
|
||||||
const isDirectRef = !!prop.$ref;
|
const isDirectRef = !!prop.$ref;
|
||||||
const isItemsRef = prop.type === "array" && !!prop.items?.$ref;
|
const isItemsRef = prop.type === "array" && !!prop.items?.$ref;
|
||||||
const isRef = isDirectRef || isItemsRef;
|
const isOneOf = !!prop.oneOf;
|
||||||
|
const isRef = isDirectRef || isItemsRef || isOneOf;
|
||||||
|
|
||||||
const refSchemaName = isDirectRef
|
const refSchemaName = isDirectRef
|
||||||
? resolveRef(prop.$ref)
|
? resolveRef(prop.$ref)
|
||||||
: isItemsRef
|
: isItemsRef
|
||||||
? resolveRef(prop.items.$ref)
|
? resolveRef(prop.items.$ref)
|
||||||
|
: isOneOf && prop.oneOf[0]?.$ref
|
||||||
|
? resolveRef(prop.oneOf[0].$ref)
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
const refSchema = refSchemaName ? schemas[refSchemaName] : undefined;
|
const refSchema = refSchemaName ? schemas[refSchemaName] : undefined;
|
||||||
@@ -31,7 +34,7 @@ export function extractFields(schemaName: string, schema: any, schemas: Record<s
|
|||||||
name,
|
name,
|
||||||
label: prop["x-label"],
|
label: prop["x-label"],
|
||||||
description: prop["x-description"] ?? prop["x-label"] ?? name,
|
description: prop["x-description"] ?? prop["x-label"] ?? name,
|
||||||
type: isRef && refSchema ? "object" : (prop.type ?? "string"),
|
type: isRef && refSchema ? "object" : isOneOf ? "object" : (prop.type ?? "string"),
|
||||||
format: prop.format,
|
format: prop.format,
|
||||||
order: prop["x-order"],
|
order: prop["x-order"],
|
||||||
hidden: prop["x-hidden"] ?? {},
|
hidden: prop["x-hidden"] ?? {},
|
||||||
|
|||||||
Reference in New Issue
Block a user