diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/$defs.jsx b/src/core/plugins/json-schema-2020-12/components/keywords/$defs.jsx index 6af86286..7bc83188 100644 --- a/src/core/plugins/json-schema-2020-12/components/keywords/$defs.jsx +++ b/src/core/plugins/json-schema-2020-12/components/keywords/$defs.jsx @@ -5,6 +5,7 @@ import React, { useCallback, useState } from "react" import { schema } from "../../prop-types" import { useComponent, useIsExpandedDeeply } from "../../hooks" +import { JSONSchemaDeepExpansionContext } from "../../context" const $defs = ({ schema }) => { const $defs = schema?.$defs || {} @@ -15,31 +16,43 @@ const $defs = ({ schema }) => { const isExpandedDeeply = useIsExpandedDeeply() const [expanded, setExpanded] = useState(isExpandedDeeply) + const [expandedDeeply, setExpandedDeeply] = useState(false) const Accordion = useComponent("Accordion") + const ExpandDeepButton = useComponent("ExpandDeepButton") const JSONSchema = useComponent("JSONSchema") + /** + * Event handlers. + */ const handleExpansion = useCallback(() => { setExpanded((prev) => !prev) }, []) + const handleExpansionDeep = useCallback((e, expandedDeepNew) => { + setExpanded(expandedDeepNew) + setExpandedDeeply(expandedDeepNew) + }, []) return ( -
- - - $defs - - - object - {expanded && ( - - )} -
+ +
+ + + $defs + + + + object + {expanded && ( +
    + {Object.entries($defs).map(([schemaName, schema]) => ( +
  • + +
  • + ))} +
+ )} +
+
) }