import * as React from "react"; import { Panel, PanelType } from "office-ui-fabric-react"; export interface PanelContainerProps { headerText: string; panelContent: JSX.Element; isConsoleExpanded: boolean; isOpen: boolean; closePanel: () => void; } export class PanelContainerComponent extends React.Component { private static readonly consoleHeaderHeight = 32; private static readonly consoleContentHeight = 220; render(): JSX.Element { if (!this.props.panelContent) { return <>; } return ( {this.props.panelContent} ); } private onDissmiss = (ev?: React.SyntheticEvent): void => { if ((ev.target as HTMLElement).id === "notificationConsoleHeader") { ev.preventDefault(); } else { this.props.closePanel(); } }; private getPanelHeight = (): string => { const consoleHeight = this.props.isConsoleExpanded ? PanelContainerComponent.consoleContentHeight + PanelContainerComponent.consoleHeaderHeight : PanelContainerComponent.consoleHeaderHeight; const panelHeight = window.innerHeight - consoleHeight; return panelHeight + "px"; }; }