/** * @author Martin Karkowski * @email m.karkowski@zema.de * @create date 2019-02-20 09:19:06 * @modify date 2020-07-22 22:06:39 * @desc [description] */ import React from 'react'; import { Badge, Col, Container, Nav, Row } from 'react-bootstrap'; import { FaTimesCircle } from 'react-icons/fa'; import DefaultNavbar from '../defaultNavbar'; import Selection, { SelecitonProps } from './selection'; const mainStyle = { minHeight: '90vh', } const sidebarStyle = { padding: '10px', background: "primary" } const contentStyle = { padding: '10px', } export interface ITab { label: string, id: string, delteable: boolean } export interface LayoutProps extends SelecitonProps { onResize?: () => void; onMount?: (_ref: React.RefObject) => void; onUnmount?: () => void; onNewTab?: () => ITab; onTabSelect?: (tabId: string) => void; tabs?: { active: string, items: ITab[] } } export interface LayoutState { update: null } class Layout extends React.Component, LayoutState> { protected _ref: React.RefObject; protected _handleResize: () => void; componentDidMount() { const _this = this; function handleResize() { if (typeof _this.props.onResize === 'function') { _this.props.onResize(); } } if (typeof this.props.onMount === 'function') { this.props.onMount(this._ref); } this._handleResize = handleResize; window.addEventListener('resize', this._handleResize); } componentWillUnmount() { window.removeEventListener('resize', this._handleResize); // Call the unmount if (typeof this.props.onUnmount === 'function') { this.props.onUnmount(); } } constructor(props) { super(props); this._ref = React.createRef(); } public requestRerender() { this.setState({ update: null }) } public render() { return (<> {this.props.tabs ? : '' } {/* style={{height: '100%'}} */}
); } } export default Layout;