+ {hasProperties ? (
+
+ {properties.length > 0 ? (
+
{t.regularPropertiesTitle}:
+ ) : null}
+ {properties.map((property) => (
+ handleDeleteProperty(property.name)}
+ onNameChange={(newName) =>
+ handlePropertyNameChange(property.name, newName)
+ }
+ onRequiredChange={(required) =>
+ handlePropertyRequiredChange(property.name, required)
+ }
+ onSchemaChange={(schema) =>
+ handlePropertySchemaChange(property.name, schema)
+ }
+ depth={depth}
+ onPropertyToggle={(name, isPatternProperty) =>
+ handlePropertyToggle(
+ onChange,
+ normalizedSchema,
+ name,
+ isPatternProperty,
+ )
+ }
+ />
+ ))}
+ {patternProperties.length > 0 ? (
+ {t.patternPropertiesTitle}:
+ ) : null}
+ {patternProperties.map((property) => (
+ handleDeleteProperty(property.name, true)}
+ onNameChange={(newName) =>
+ handlePropertyNameChange(property.name, newName, true)
+ }
+ onRequiredChange={(required) =>
+ handlePropertyRequiredChange(property.name, required)
+ }
+ onSchemaChange={(schema) =>
+ handlePropertySchemaChange(property.name, schema, true)
+ }
+ depth={depth}
+ onPropertyToggle={(name, isPatternProperty) =>
+ handlePropertyToggle(
+ onChange,
+ normalizedSchema,
+ name,
+ isPatternProperty,
+ )
+ }
+ isPatternProperty
+ />
+ ))}
+
+ ) : (
+
+ {t.objectPropertiesNone}
+
+ )}
+
+ {!readOnly && (
+
- ) : (
-
- {t.objectPropertiesNone}
-
- )}
-
- {!readOnly && (
-
- )}
+ {/* Additional properties */}
+
+ {additionalProperties === false
+ ? t.additionalPropertiesForbid
+ : t.additionalPropertiesAllow}
+
+