[Metrics UI] Don't mount AlertFlyout and NodeContextPopover when they aren't visible (#99039)

This commit is contained in:
Ester Martí Vilaseca 2021-05-04 10:50:12 +02:00 committed by GitHub
parent fda2ad4575
commit 8426024f6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 31 deletions

View file

@ -106,26 +106,32 @@ export class Node extends React.PureComponent<Props, State> {
</NodeContainer>
</ConditionalToolTip>
</NodeContextMenu>
<NodeContextPopover
openAlertFlyout={this.openAlertFlyout}
node={node}
nodeType={nodeType}
isOpen={this.state.isOverlayOpen}
options={options}
currentTime={currentTime}
onClose={this.toggleNewOverlay}
/>
<AlertFlyout
filter={
options.fields
? `${findInventoryFields(nodeType, options.fields).id}: "${node.id}"`
: ''
}
options={options}
nodeType={nodeType}
setVisible={this.setAlertFlyoutVisible}
visible={isAlertFlyoutVisible}
/>
{this.state.isOverlayOpen && (
<NodeContextPopover
openAlertFlyout={this.openAlertFlyout}
node={node}
nodeType={nodeType}
isOpen={this.state.isOverlayOpen}
options={options}
currentTime={currentTime}
onClose={this.toggleNewOverlay}
/>
)}
{isAlertFlyoutVisible && (
<AlertFlyout
filter={
options.fields
? `${findInventoryFields(nodeType, options.fields).id}: "${node.id}"`
: ''
}
options={options}
nodeType={nodeType}
setVisible={this.setAlertFlyoutVisible}
visible={isAlertFlyoutVisible}
/>
)}
</>
);
}

View file

@ -201,17 +201,19 @@ export const NodeContextMenu: React.FC<Props & { theme?: EuiTheme }> = withTheme
</Section>
</div>
</ActionMenu>
<AlertFlyout
filter={
options.fields
? `${findInventoryFields(nodeType, options.fields).id}: "${node.id}"`
: ''
}
options={options}
nodeType={nodeType}
setVisible={setFlyoutVisible}
visible={flyoutVisible}
/>
{flyoutVisible && (
<AlertFlyout
filter={
options.fields
? `${findInventoryFields(nodeType, options.fields).id}: "${node.id}"`
: ''
}
options={options}
nodeType={nodeType}
setVisible={setFlyoutVisible}
visible={flyoutVisible}
/>
)}
</>
);
}