in src/components/agile-row/agile-row.tsx [72:136]
export default function BoardRow(props: Props) {
const {
row,
style,
collapsedColumnIds,
onCollapseToggle,
onTapIssue,
onTapCreateIssue,
renderIssueCard,
zoomedIn,
columns,
uiTheme,
} = props;
if (!row) {
return null;
}
const isResolved: boolean = !!row?.issue?.resolved;
return (
<View testID="agileRow" style={style}>
<View
testID="agile-row-header"
accessibilityLabel="agile-row-header"
accessible={true}
style={[styles.rowHeader, !zoomedIn ? styles.rowHeaderZoomedOut : null]}
>
<TouchableOpacity
testID="agileRowCollapseButton"
style={styles.collapseButton}
onPress={() => onCollapseToggle(row)}
>
<IconAngleDownRight
style={styles.collapseButtonIcon}
isDown={!row.collapsed}
size={19}
color={uiTheme.colors.$text}
/>
<Text
style={[
styles.rowHeaderText,
!zoomedIn ? styles.rowHeaderTextZoomedOut : null,
isResolved && styles.issueIdResolved,
]}
>
{row.id === 'orphans'
? i18n('Uncategorized Cards')
: (row.issue && row.issue.summary) || row.name}
</Text>
</TouchableOpacity>
{Boolean(row.issue) && (
<TouchableOpacity onPress={() => onTapIssue(row.issue)}>
<Text
testID="agileRowIssueId"
style={[
styles.headerIssueId,
isResolved && styles.issueResolved,
!zoomedIn ? styles.headerIssueIdZoomedOut : null,
]}
>
{ApiHelper.getIssueId(row.issue)}
</Text>
</TouchableOpacity>
)}