import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import { t } from '@lingui/macro'; import { I18n } from '@lingui/react'; import { Dropdown, DropdownItem, DropdownToggle, DropdownPosition, Toolbar, ToolbarGroup, ToolbarItem, } from '@patternfly/react-core'; import { QuestionCircleIcon, UserIcon, } from '@patternfly/react-icons'; const DOCLINK = 'https://docs.ansible.com/ansible-tower/latest/html/userguide/index.html'; const KEY_ENTER = 13; class PageHeaderToolbar extends Component { constructor (props) { super(props); this.state = { isHelpOpen: false, isUserOpen: false }; this.onHelpSelect = this.onHelpSelect.bind(this); this.onHelpToggle = this.onHelpToggle.bind(this); this.onLogoutKeyDown = this.onLogoutKeyDown.bind(this); this.onUserSelect = this.onUserSelect.bind(this); this.onUserToggle = this.onUserToggle.bind(this); } onLogoutKeyDown ({ keyCode }) { const { onLogoutClick } = this.props; if (keyCode === KEY_ENTER) { onLogoutClick(); } } onHelpSelect () { const { isHelpOpen } = this.state; this.setState({ isHelpOpen: !isHelpOpen }); } onUserSelect () { const { isUserOpen } = this.state; this.setState({ isUserOpen: !isUserOpen }); } onHelpToggle (isOpen) { this.setState({ isHelpOpen: isOpen }); } onUserToggle (isOpen) { this.setState({ isUserOpen: isOpen }); } render () { const { isHelpOpen, isUserOpen } = this.state; const { isAboutDisabled, onAboutClick, onLogoutClick } = this.props; return ( {({ i18n }) => ( )} dropdownItems={[ {i18n._(t`Help`)} , {i18n._(t`About`)} ]} /> )} dropdownItems={[ {i18n._(t`User Details`)} , {i18n._(t`Logout`)} ]} /> )} ); } } export default PageHeaderToolbar;