()
| 77 | } |
| 78 | |
| 79 | render() { |
| 80 | const {isMac} = this.props; |
| 81 | const props = getTabsProps(this.props, { |
| 82 | tabs: this.props.tabs, |
| 83 | borderColor: this.props.borderColor, |
| 84 | onClose: this.props.onCloseTab, |
| 85 | onChange: this.onChangeIntent, |
| 86 | fullScreen: this.props.fullScreen |
| 87 | }); |
| 88 | const {borderColor} = props; |
| 89 | let title = 'Hyper'; |
| 90 | if (props.tabs.length === 1 && props.tabs[0].title) { |
| 91 | // if there's only one tab we use its title as the window title |
| 92 | title = props.tabs[0].title; |
| 93 | } |
| 94 | const {hambMenu, winCtrls} = this.getWindowHeaderConfig(); |
| 95 | const left = winCtrls === 'left'; |
| 96 | const maxButtonHref = this.props.maximized |
| 97 | ? './renderer/assets/icons.svg#restore-window' |
| 98 | : './renderer/assets/icons.svg#maximize-window'; |
| 99 | |
| 100 | return ( |
| 101 | <header |
| 102 | className={`header_header ${isMac && 'header_headerRounded'}`} |
| 103 | onMouseDown={this.handleHeaderMouseDown} |
| 104 | onMouseUp={() => window.focusActiveTerm()} |
| 105 | onDoubleClick={this.handleMaximizeClick} |
| 106 | > |
| 107 | {!isMac && ( |
| 108 | <div |
| 109 | className={`header_windowHeader ${props.tabs.length > 1 ? 'header_windowHeaderWithBorder' : ''}`} |
| 110 | style={{borderColor}} |
| 111 | > |
| 112 | {hambMenu && ( |
| 113 | <svg |
| 114 | className={`header_shape ${left ? 'header_hamburgerMenuRight' : 'header_hamburgerMenuLeft'}`} |
| 115 | onClick={this.handleHamburgerMenuClick} |
| 116 | > |
| 117 | <use xlinkHref="./renderer/assets/icons.svg#hamburger-menu" /> |
| 118 | </svg> |
| 119 | )} |
| 120 | <span className="header_appTitle">{title}</span> |
| 121 | {winCtrls && ( |
| 122 | <div className={`header_windowControls ${left ? 'header_windowControlsLeft' : ''}`}> |
| 123 | <div className={`${left ? 'header_minimizeWindowLeft' : ''}`} onClick={this.handleMinimizeClick}> |
| 124 | <svg className="header_shape"> |
| 125 | <use xlinkHref="./renderer/assets/icons.svg#minimize-window" /> |
| 126 | </svg> |
| 127 | </div> |
| 128 | <div className={`${left ? 'header_maximizeWindowLeft' : ''}`} onClick={this.handleMaximizeClick}> |
| 129 | <svg className="header_shape"> |
| 130 | <use xlinkHref={maxButtonHref} /> |
| 131 | </svg> |
| 132 | </div> |
| 133 | <div |
| 134 | className={`header_closeWindow ${left ? 'header_closeWindowLeft' : ''}`} |
| 135 | onClick={this.handleCloseClick} |
| 136 | > |
nothing calls this directly
no test coverage detected