| ... | @@ -746,49 +746,54 @@ export const ThreadListV2Row = memo(function ThreadListV2Row(props: { | ... | @@ -746,49 +746,54 @@ export const ThreadListV2Row = memo(function ThreadListV2Row(props: { |
| 746 | ) : thread.branch || props.environmentLabel ? ( | 746 | ) : thread.branch || props.environmentLabel ? ( |
| 747 | /* "branch · machine" share one truncating line. The machine sits | 747 | /* "branch · machine" share one truncating line. The machine sits |
| 748 | last so a tight fit cuts the repetitive label, not the branch — | 748 | last so a tight fit cuts the repetitive label, not the branch — |
| 749 | and machine-only fills the row for non-git projects. */ | 749 | and machine-only fills the row for non-git projects. The glyph |
| 750 | <Text | 750 | hugs the label (it cannot live inside the Text without breaking |
| 751 | className={cn( | 751 | truncation), and the wrapper takes the slack so the trailers |
| 752 | "flex-1 text-xs", | 752 | stay pinned right. */ |
| 753 | selected ? "text-user-bubble-foreground-muted" : "text-foreground-muted", | 753 | <View className="min-w-0 flex-1 flex-row items-center gap-1"> |
| 754 | )} | 754 | <Text |
| 755 | numberOfLines={1} | 755 | className={cn( |
| 756 | > | 756 | "shrink text-xs", |
| 757 | {thread.branch ? ( | 757 | selected ? "text-user-bubble-foreground-muted" : "text-foreground-muted", |
| 758 | <Text | 758 | )} |
| 759 | className={cn( | 759 | numberOfLines={1} |
| 760 | "text-xs", | 760 | > |
| 761 | selected ? "text-user-bubble-foreground-muted" : "text-foreground-muted", | 761 | {thread.branch ? ( |
| 762 | )} | 762 | <Text |
| 763 | style={{ fontFamily: MONO_FONT }} | 763 | className={cn( |
| 764 | > | 764 | "text-xs", |
| 765 | {thread.branch} | 765 | selected ? "text-user-bubble-foreground-muted" : "text-foreground-muted", |
| 766 | </Text> | 766 | )} |
| 767 | ) : null} | 767 | style={{ fontFamily: MONO_FONT }} |
| 768 | {thread.branch && props.environmentLabel ? " · " : null} | 768 | > |
| 769 | {props.environmentLabel ? ( | 769 | {thread.branch} |
| 770 | <Text | 770 | </Text> |
| 771 | className={cn( | 771 | ) : null} |
| 772 | "text-xs", | 772 | {thread.branch && props.environmentLabel ? " · " : null} |
| 773 | selected ? "text-user-bubble-foreground-muted" : "text-foreground-tertiary", | 773 | {props.environmentLabel ? ( |
| 774 | )} | 774 | <Text |
| 775 | > | 775 | className={cn( |
| 776 | {props.environmentLabel} | 776 | "text-xs", |
| 777 | </Text> | 777 | selected ? "text-user-bubble-foreground-muted" : "text-foreground-tertiary", |
| | 778 | )} |
| | 779 | > |
| | 780 | {props.environmentLabel} |
| | 781 | </Text> |
| | 782 | ) : null} |
| | 783 | </Text> |
| | 784 | {props.environmentLabel && props.environmentMachine ? ( |
| | 785 | <EnvironmentMachineSymbol |
| | 786 | kind={props.environmentMachine} |
| | 787 | size={11} |
| | 788 | tintColorClassName={ |
| | 789 | selected ? "accent-user-bubble-foreground-muted" : "accent-foreground-tertiary" |
| | 790 | } |
| | 791 | /> |
| 778 | ) : null} | 792 | ) : null} |
| 779 | </Text> | 793 | </View> |
| 780 | ) : ( | 794 | ) : ( |
| 781 | <View className="flex-1" /> | 795 | <View className="flex-1" /> |
| 782 | )} | 796 | )} |
| 783 | {status !== "failed" && props.environmentLabel && props.environmentMachine ? ( | | |
| 784 | <EnvironmentMachineSymbol | | |
| 785 | kind={props.environmentMachine} | | |
| 786 | size={11} | | |
| 787 | tintColorClassName={ | | |
| 788 | selected ? "accent-user-bubble-foreground-muted" : "accent-foreground-tertiary" | | |
| 789 | } | | |
| 790 | /> | | |
| 791 | ) : null} | | |
| 792 | {pr ? ( | 797 | {pr ? ( |
| 793 | <Text | 798 | <Text |
| 794 | accessibilityLabel={pr.accessibilityLabel} | 799 | accessibilityLabel={pr.accessibilityLabel} |