PromucFlow_constructor/app/client/src/pages/common/AppHeader.tsx

47 lines
1.3 KiB
TypeScript
Raw Normal View History

import React from "react";
import ReactDOM from "react-dom";
import PageHeader from "pages/common/PageHeader";
import LoginHeader from "pages/common/LoginHeader";
import { Route, Switch } from "react-router";
import {
VIEWER_URL,
BASE_URL,
BUILDER_URL,
SETUP,
USER_AUTH_URL,
} from "constants/routes";
import { withRouter, RouteComponentProps } from "react-router";
2020-08-06 11:06:53 +00:00
import AppViewerHeader from "pages/AppViewer/viewer/AppViewerHeader";
2020-08-07 06:56:47 +00:00
import AppEditorHeader from "pages/Editor/EditorHeader";
type Props = RouteComponentProps;
const headerRoot = document.getElementById("header-root");
class AppHeader extends React.Component<Props, any> {
private container = document.createElement("div");
componentDidMount() {
headerRoot?.appendChild(this.container);
}
componentWillUnmount() {
headerRoot?.removeChild(this.container);
}
get header() {
return (
<Switch>
<Route component={AppEditorHeader} path={BUILDER_URL} />
<Route component={AppViewerHeader} exact path={VIEWER_URL} />
<Route component={LoginHeader} path={USER_AUTH_URL} />
<Route path={SETUP} />
<Route component={PageHeader} path={BASE_URL} />
</Switch>
);
}
render() {
return ReactDOM.createPortal(this.header, this.container);
}
}
export default withRouter(AppHeader);