diff --git a/packages/react-json-tree/src/JSONNestedNode.tsx b/packages/react-json-tree/src/JSONNestedNode.tsx index e8dbb261..27f05da0 100644 --- a/packages/react-json-tree/src/JSONNestedNode.tsx +++ b/packages/react-json-tree/src/JSONNestedNode.tsx @@ -95,6 +95,7 @@ interface Props extends CircularPropsPassedThroughJSONNestedNode { nodeTypeIndicator: string; createItemString: (data: any, collectionLimit: number) => string; expandable: boolean; + onExpand?: () => void; } interface State { @@ -131,6 +132,7 @@ export default class JSONNestedNode extends React.Component { sortObjectKeys: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]), isCircular: PropTypes.bool, expandable: PropTypes.bool, + onExpand: PropTypes.func }; static defaultProps = { @@ -234,6 +236,9 @@ export default class JSONNestedNode extends React.Component { handleClick = () => { if (this.props.expandable) { + if (this.props.onExpand && this.state.expanded) { + this.props.onExpand(); + } this.setState({ expanded: !this.state.expanded }); } }; diff --git a/packages/react-json-tree/src/index.tsx b/packages/react-json-tree/src/index.tsx index 50a5524b..f03d94a1 100644 --- a/packages/react-json-tree/src/index.tsx +++ b/packages/react-json-tree/src/index.tsx @@ -20,6 +20,7 @@ interface Props extends CircularPropsPassedThroughJSONTree { data: any; theme?: Theme; invertTheme: boolean; + onExpand?: () => void; } interface State {