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>
);
}
}