// Copyright (C) 2020 Intel Corporation // // SPDX-License-Identifier: MIT import './styles.scss'; import React from 'react'; import { RouteComponentProps } from 'react-router'; import { withRouter } from 'react-router-dom'; import { Row, Col } from 'antd/lib/grid'; import Layout from 'antd/lib/layout'; import Icon from 'antd/lib/icon'; import Button from 'antd/lib/button'; import Menu from 'antd/lib/menu'; import Dropdown from 'antd/lib/dropdown'; import Modal from 'antd/lib/modal'; import Text from 'antd/lib/typography/Text'; import { CVATLogo, AccountIcon } from 'icons'; import consts from 'consts'; import SettingsModal from './settings-modal/settings-modal'; interface HeaderContainerProps { onLogout: () => void; switchSettingsDialog: (show: boolean) => void; logoutFetching: boolean; installedAnalytics: boolean; installedAutoAnnotation: boolean; installedTFAnnotation: boolean; installedTFSegmentation: boolean; serverHost: string; username: string; toolName: string; serverVersion: string; serverDescription: string; coreVersion: string; canvasVersion: string; uiVersion: string; switchSettingsShortcut: string; settingsDialogShown: boolean; } type Props = HeaderContainerProps & RouteComponentProps; function HeaderContainer(props: Props): JSX.Element { const { installedTFSegmentation, installedAutoAnnotation, installedTFAnnotation, installedAnalytics, username, toolName, serverHost, serverVersion, serverDescription, coreVersion, canvasVersion, uiVersion, onLogout, logoutFetching, settingsDialogShown, switchSettingsShortcut, switchSettingsDialog, } = props; const renderModels = installedAutoAnnotation || installedTFAnnotation || installedTFSegmentation; const { CHANGELOG_URL, LICENSE_URL, GITTER_URL, FORUM_URL, GITHUB_URL, } = consts; function aboutModal(): void { Modal.info({ title: `${toolName}`, content: (

{`${serverDescription}`}

Server version: {` ${serverVersion}`}

Core version: {` ${coreVersion}`}

Canvas version: {` ${canvasVersion}`}

UI version: {` ${uiVersion}`}

{'What\'s new?'} License Need help? Forum on Intel Developer Zone
), width: 800, okButtonProps: { style: { width: '100px', }, }, }); } const menu = ( switchSettingsDialog(true) } > Settings aboutModal()}> About {logoutFetching ? : } Logout ); return (
{ renderModels && ( )} { installedAnalytics && ( )}
{username.length > 14 ? `${username.slice(0, 10)} ...` : username}
switchSettingsDialog(false)} />
); } export default withRouter(HeaderContainer);