authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-03 15:56:35-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-03 15:56:35-07:00
log409bc4fa6f3bb9869052bdba4244b30606457f20
tree349867abd3853dbd3ec1080cfff12f33a9dbeadf
parent12e8997e58dbca8f1bd8c63b67d662eb69cf0e0d
signature Signed by PGP key B5690EEEBB952194

fix(mobile): keep the machine glyph next to the environment label (#9486)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

1 files changed, 44 insertions(+), 39 deletions(-)

apps/mobile/src/features/threads/thread-list-v2-items.tsx+44-39
...@@ -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 sits747 /* "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 <Text750 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 <Text758 )}
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 <Text770 </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 <Text798 <Text
794 accessibilityLabel={pr.accessibilityLabel}799 accessibilityLabel={pr.accessibilityLabel}