_renderHeader()

in src/views/issue/issue.tsx [504:558]


  _renderHeader() {
    const {
      editMode,
      summaryCopy,
      isSavingEditedIssue,
      saveIssueSummaryAndDescriptionChange,
      stopEditingIssue,
    } = this.props;
    const issueTitle: React.ReactNode = this.renderHeaderIssueTitle();
    if (!editMode) {
      const isIssueLoaded: boolean = this.isIssueLoaded();
      return (
        <Header
          leftButton={this.renderBackIcon()}
          extra={
            isIssueLoaded ? (
              <View style={styles.headerExtraContainer}>
                {this.renderIssueVotes()}
                {this.renderStar()}
                {this.renderActions()}
              </View>
            ) : null
          }
          onBack={this.handleOnBack}
        >
          {issueTitle}
        </Header>
      );
    } else {
      const canSave: boolean = Boolean(summaryCopy) && !isSavingEditedIssue;
      const linkColor: string = this.uiTheme.colors.$link;
      const textSecondaryColor: string = this.uiTheme.colors.$textSecondary;
      return (
        <Header
          style={styles.header}
          leftButton={
            <IconClose
              color={isSavingEditedIssue ? textSecondaryColor : linkColor}
            />
          }
          onBack={stopEditingIssue}
          rightButton={
            <IconCheck
              color={canSave ? linkColor : textSecondaryColor}
            />
          }
          onRightButtonClick={
            canSave ? saveIssueSummaryAndDescriptionChange : () => {}
          }
        >
          {issueTitle}
        </Header>
      );
    }
  }