Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
private cloneStagePanelElement(panelDef: StagePanelDef | undefined, runtimeProps: FrontstageRuntimeProps): React.ReactNode {
if (!this.state.isUiVisible && UiShowHideManager.showHidePanels)
return null;
if (panelDef) {
const { location } = panelDef;
const panelElement = Frontstage.getStagePanelElement(location, this.props);
// istanbul ignore else
if (panelElement && React.isValidElement(panelElement)) {
const panelKey = getNestedStagePanelKey(panelDef.location);
const panels = runtimeProps.nineZone.nested.panels[panelKey.id];
const panel = StagePanelsManager.getPanel(panelKey.type, panels);
const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;
const panelRuntimeProps: StagePanelRuntimeProps = {
draggedWidgetId: draggedWidget ? draggedWidget.id : undefined,
getWidgetContentRef: this._getContentRef,
isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,
isTargeted: !!runtimeProps.nineZone.zones.target,
panel,
panelDef,
stagePanelChangeHandler: runtimeProps.stagePanelChangeHandler,
widgetChangeHandler: runtimeProps.widgetChangeHandler,
widgets: runtimeProps.nineZone.zones.widgets,
widgetTabs: runtimeProps.widgetTabs,
zoneDefProvider: runtimeProps.zoneDefProvider,
};
}, () => {
const frontstage = FrontstageManager.activeFrontstageDef;
const stagePanel = frontstage && frontstage.getStagePanelDef(panelLocation);
if (stagePanel) {
const panels = this.state.nineZone.nested.panels[nestedPanelKey.id];
const panel = StagePanelsManager.getPanel(nestedPanelKey.type, panels);
const panelState = isCollapsedToPanelState(panel.isCollapsed);
stagePanel.panelState = panelState;
}
});
}