From 779abfb2fa4c8c03561ccaa4ab4b063fca54bbc4 Mon Sep 17 00:00:00 2001 From: Ann Balina Date: Thu, 19 Nov 2020 22:21:38 +0200 Subject: [PATCH] Add onExpand callback --- packages/react-json-tree/src/JSONNestedNode.tsx | 5 +++++ packages/react-json-tree/src/index.tsx | 1 + 2 files changed, 6 insertions(+) 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 {