Improve styling of Hprof Analysis for Memory Tools plugin

Summary:
Improves the look of analyzed Hprof data for the Memory Tools plugin. Adds an expandable/collapsable tree using ElementsInspector and groups large objects/leaked objects.
https://pxl.cl/fxNs

Reviewed By: danielbuechele

Differential Revision: D8721141

fbshipit-source-id: f78fe32bd2ca1f11ce39b9e696f48a56dc5c9bff
This commit is contained in:
Benjamin Pankow
2018-07-31 14:52:00 -07:00
committed by Facebook Github Bot
parent 221cdda89d
commit a4638033b7
2 changed files with 16 additions and 1 deletions

View File

@@ -61,7 +61,11 @@ export default class ElementsInspector extends Component<{
root: ?ElementID, root: ?ElementID,
elements: {[key: ElementID]: Element}, elements: {[key: ElementID]: Element},
useAppSidebar?: boolean, useAppSidebar?: boolean,
alternateRowColor?: boolean,
}> { }> {
static defaultProps = {
alternateRowColor: true,
};
render() { render() {
const { const {
selected, selected,
@@ -71,6 +75,7 @@ export default class ElementsInspector extends Component<{
onElementSelected, onElementSelected,
onElementHovered, onElementHovered,
searchResults, searchResults,
alternateRowColor,
} = this.props; } = this.props;
return ( return (
@@ -83,6 +88,7 @@ export default class ElementsInspector extends Component<{
searchResults={searchResults} searchResults={searchResults}
root={root} root={root}
elements={elements} elements={elements}
alternateRowColor={alternateRowColor}
/> />
</FlexRow> </FlexRow>
); );

View File

@@ -391,6 +391,7 @@ type ElementsProps = {|
onElementSelected: (key: ElementID) => void, onElementSelected: (key: ElementID) => void,
onElementExpanded: (key: ElementID, deep: boolean) => void, onElementExpanded: (key: ElementID, deep: boolean) => void,
onElementHovered: ?(key: ?ElementID) => void, onElementHovered: ?(key: ?ElementID) => void,
alternateRowColor?: boolean,
|}; |};
type ElementsState = {| type ElementsState = {|
@@ -400,6 +401,9 @@ type ElementsState = {|
|}; |};
export class Elements extends PureComponent<ElementsProps, ElementsState> { export class Elements extends PureComponent<ElementsProps, ElementsState> {
static defaultProps = {
alternateRowColor: true,
};
constructor(props: ElementsProps, context: Object) { constructor(props: ElementsProps, context: Object) {
super(props, context); super(props, context);
this.state = { this.state = {
@@ -566,12 +570,17 @@ export class Elements extends PureComponent<ElementsProps, ElementsState> {
} }
} }
let isEven = false;
if (this.props.alternateRowColor) {
isEven = index % 2 === 0;
}
return ( return (
<ElementsRow <ElementsRow
level={row.level} level={row.level}
id={row.key} id={row.key}
key={row.key} key={row.key}
even={index % 2 === 0} even={isEven}
onElementExpanded={onElementExpanded} onElementExpanded={onElementExpanded}
onElementHovered={onElementHovered} onElementHovered={onElementHovered}
onElementSelected={onElementSelected} onElementSelected={onElementSelected}