authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-22 17:31:13-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-22 17:31:13-07:00
log6dcde218ad6c07af4dde2a69517c9316adaf732f
treebca250dc4bd434a55998004b8d2855c706038cc9
parent34096519121033ccf72cd43ea5350f9482df188a
signature Signed by PGP key B5690EEEBB952194

revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) (#13169)


5 files changed, 222 insertions(+), 57 deletions(-)

apps/mobile/src/features/threads/git/GitBranchesSheet.tsx+69-18
...@@ -63,7 +63,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -63,7 +63,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
63 return (63 return (
64 <View64 <View
65 collapsable={false}65 collapsable={false}
66 className="bg-sheet ios:flex-1"66 className={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"}
67 style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined}67 style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined}
68 >68 >
69 {Platform.OS === "android" ? (69 {Platform.OS === "android" ? (
...@@ -83,19 +83,31 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -83,19 +83,31 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
83 ) : null}83 ) : null}
84 <MaterialScreenContent fitToContents>84 <MaterialScreenContent fitToContents>
85 <ScrollView85 <ScrollView
86 className="android:shrink android:grow-0 ios:flex-1"86 className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"}
87 keyboardShouldPersistTaps="handled"87 keyboardShouldPersistTaps="handled"
88 showsVerticalScrollIndicator={false}88 showsVerticalScrollIndicator={false}
89 contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }}89 contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }}
90 contentContainerClassName="android:gap-2 android:p-2 ios:gap-4 ios:px-5 ios:pt-2"90 contentContainerClassName={Platform.OS === "android" ? "gap-2 p-2" : "gap-4 px-5 pt-2"}
91 contentContainerStyle={91 contentContainerStyle={
92 Platform.OS === "android"92 Platform.OS === "android"
93 ? { paddingBottom: Math.max(insets.bottom, 18) + 18 }93 ? { paddingBottom: Math.max(insets.bottom, 18) + 18 }
94 : undefined94 : undefined
95 }95 }
96 >96 >
97 <View className="bg-card android:gap-3 android:rounded-[20px] android:p-4 ios:gap-2 ios:rounded-[18px] ios:border ios:border-border ios:px-4 ios:py-4">97 <View
98 <Text className="android:text-foreground android:text-base android:font-t3-medium ios:text-foreground-secondary ios:text-2xs ios:font-t3-bold ios:tracking-[1px] ios:uppercase">98 className={
99 Platform.OS === "android"
100 ? "gap-3 rounded-[20px] bg-card p-4"
101 : "gap-2 rounded-[18px] border border-border bg-card px-4 py-4"
102 }
103 >
104 <Text
105 className={
106 Platform.OS === "android"
107 ? "text-foreground text-base font-t3-medium"
108 : "text-foreground-secondary text-2xs font-t3-bold tracking-[1px] uppercase"
109 }
110 >
99 New branch111 New branch
100 </Text>112 </Text>
101 <TextInput113 <TextInput
...@@ -103,7 +115,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -103,7 +115,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
103 onChangeText={setNewBranchName}115 onChangeText={setNewBranchName}
104 placeholder="feature/mobile-polish"116 placeholder="feature/mobile-polish"
105 accessibilityLabel="New branch name"117 accessibilityLabel="New branch name"
106 className="android:rounded-xl android:bg-sheet-solid ios:rounded-[18px]"118 className={Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[18px]"}
107 />119 />
108 <SheetActionButton120 <SheetActionButton
109 icon="plus"121 icon="plus"
...@@ -121,8 +133,20 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -121,8 +133,20 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
121 />133 />
122 </View>134 </View>
123135
124 <View className="bg-card android:gap-3 android:rounded-[20px] android:p-4 ios:gap-2 ios:rounded-[18px] ios:border ios:border-border ios:px-4 ios:py-4">136 <View
125 <Text className="android:text-foreground android:text-base android:font-t3-medium ios:text-foreground-secondary ios:text-2xs ios:font-t3-bold ios:tracking-[1px] ios:uppercase">137 className={
138 Platform.OS === "android"
139 ? "gap-3 rounded-[20px] bg-card p-4"
140 : "gap-2 rounded-[18px] border border-border bg-card px-4 py-4"
141 }
142 >
143 <Text
144 className={
145 Platform.OS === "android"
146 ? "text-foreground text-base font-t3-medium"
147 : "text-foreground-secondary text-2xs font-t3-bold tracking-[1px] uppercase"
148 }
149 >
126 New worktree150 New worktree
127 </Text>151 </Text>
128 {Platform.OS === "android" ? (152 {Platform.OS === "android" ? (
...@@ -133,7 +157,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -133,7 +157,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
133 onChangeText={setWorktreeBaseBranch}157 onChangeText={setWorktreeBaseBranch}
134 placeholder="main"158 placeholder="main"
135 accessibilityLabel="Worktree base branch"159 accessibilityLabel="Worktree base branch"
136 className="android:rounded-xl android:bg-sheet-solid ios:rounded-[18px]"160 className={Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[18px]"}
137 />161 />
138 {Platform.OS === "android" ? (162 {Platform.OS === "android" ? (
139 <Text className="text-foreground-secondary text-sm">New branch</Text>163 <Text className="text-foreground-secondary text-sm">New branch</Text>
...@@ -143,7 +167,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -143,7 +167,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
143 onChangeText={setWorktreeBranchName}167 onChangeText={setWorktreeBranchName}
144 placeholder="feature/mobile-thread"168 placeholder="feature/mobile-thread"
145 accessibilityLabel="Worktree branch name"169 accessibilityLabel="Worktree branch name"
146 className="android:rounded-xl android:bg-sheet-solid ios:rounded-[18px]"170 className={Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[18px]"}
147 />171 />
148 <SheetActionButton172 <SheetActionButton
149 icon="square.split.2x1"173 icon="square.split.2x1"
...@@ -169,16 +193,32 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -169,16 +193,32 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
169 </View>193 </View>
170194
171 <View className="gap-2">195 <View className="gap-2">
172 <Text className="text-foreground-secondary android:px-4 android:pb-1 android:pt-3 android:text-sm android:font-t3-medium ios:text-2xs ios:font-t3-bold ios:tracking-[1px] ios:uppercase">196 <Text
197 className={
198 Platform.OS === "android"
199 ? "px-4 pb-1 pt-3 text-foreground-secondary text-sm font-t3-medium"
200 : "text-foreground-secondary text-2xs font-t3-bold tracking-[1px] uppercase"
201 }
202 >
173 Existing branches203 Existing branches
174 </Text>204 </Text>
175 {branchesLoading ? (205 {branchesLoading ? (
176 <Text className="text-foreground-secondary text-sm font-medium android:px-4">206 <Text
207 className={cn(
208 "text-foreground-secondary text-sm font-medium",
209 Platform.OS === "android" && "px-4",
210 )}
211 >
177 Loading branches...212 Loading branches...
178 </Text>213 </Text>
179 ) : null}214 ) : null}
180 {!branchesLoading && availableBranches.length === 0 ? (215 {!branchesLoading && availableBranches.length === 0 ? (
181 <Text className="text-foreground-secondary text-sm font-medium android:px-4">216 <Text
217 className={cn(
218 "text-foreground-secondary text-sm font-medium",
219 Platform.OS === "android" && "px-4",
220 )}
221 >
182 No local branches found.222 No local branches found.
183 </Text>223 </Text>
184 ) : null}224 ) : null}
...@@ -196,10 +236,16 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -196,10 +236,16 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
196 <Pressable236 <Pressable
197 key={branch.name}237 key={branch.name}
198 className={cn(238 className={cn(
199 "gap-1 px-4 py-3 disabled:opacity-[0.45] android:rounded-[20px] android:active:bg-subtle ios:rounded-[18px] ios:border",239 "gap-1 px-4 py-3 disabled:opacity-[0.45]",
200 branch.current240 Platform.OS === "android"
201 ? "android:bg-secondary ios:border-subtle-strong"241 ? cn(
202 : "android:bg-card ios:border-border",242 "rounded-[20px] active:bg-subtle",
243 branch.current ? "bg-secondary" : "bg-card",
244 )
245 : cn(
246 "rounded-[18px] border",
247 branch.current ? "border-subtle-strong" : "border-border",
248 ),
203 )}249 )}
204 accessibilityRole="button"250 accessibilityRole="button"
205 accessibilityState={{ selected: branch.current, disabled: busy || disabled }}251 accessibilityState={{ selected: branch.current, disabled: busy || disabled }}
...@@ -213,7 +259,12 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -213,7 +259,12 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
213 {Platform.OS !== "android" ? (259 {Platform.OS !== "android" ? (
214 <View className="absolute inset-0 rounded-[18px] bg-card" />260 <View className="absolute inset-0 rounded-[18px] bg-card" />
215 ) : null}261 ) : null}
216 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">262 <Text
263 className={cn(
264 "text-foreground text-base",
265 Platform.OS === "android" ? "font-t3-medium" : "font-t3-bold",
266 )}
267 >
217 {branch.name}268 {branch.name}
218 </Text>269 </Text>
219 <Text className="text-foreground-secondary text-xs font-medium">{subtitle}</Text>270 <Text className="text-foreground-secondary text-xs font-medium">{subtitle}</Text>
apps/mobile/src/features/threads/git/GitCommitSheet.tsx+82-22
...@@ -72,7 +72,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -72,7 +72,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
72 return (72 return (
73 <View73 <View
74 collapsable={false}74 collapsable={false}
75 className="bg-sheet ios:flex-1"75 className={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"}
76 style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined}76 style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined}
77 >77 >
78 {Platform.OS === "android" ? (78 {Platform.OS === "android" ? (
...@@ -92,21 +92,35 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -92,21 +92,35 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
92 ) : null}92 ) : null}
93 <MaterialScreenContent fitToContents>93 <MaterialScreenContent fitToContents>
94 <ScrollView94 <ScrollView
95 className="android:shrink android:grow-0 ios:flex-1"95 className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"}
96 keyboardShouldPersistTaps="handled"96 keyboardShouldPersistTaps="handled"
97 showsVerticalScrollIndicator={false}97 showsVerticalScrollIndicator={false}
98 contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }}98 contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }}
99 contentContainerClassName="android:gap-2 android:p-2 ios:gap-4 ios:px-5 ios:pt-2"99 contentContainerClassName={Platform.OS === "android" ? "gap-2 p-2" : "gap-4 px-5 pt-2"}
100 contentContainerStyle={100 contentContainerStyle={
101 Platform.OS === "android"101 Platform.OS === "android"
102 ? { paddingBottom: Math.max(insets.bottom, 18) + 18 }102 ? { paddingBottom: Math.max(insets.bottom, 18) + 18 }
103 : undefined103 : undefined
104 }104 }
105 >105 >
106 <View className="gap-3 bg-card p-4 android:rounded-[20px] ios:rounded-[22px] ios:border ios:border-border">106 <View
107 <View className="android:gap-1 ios:flex-row ios:items-center ios:justify-between ios:gap-3">107 className={cn(
108 "gap-3 bg-card p-4",
109 Platform.OS === "android" ? "rounded-[20px]" : "rounded-[22px] border border-border",
110 )}
111 >
112 <View
113 className={
114 Platform.OS === "android" ? "gap-1" : "flex-row items-center justify-between gap-3"
115 }
116 >
108 <Text className="text-foreground-muted text-sm font-medium">Branch</Text>117 <Text className="text-foreground-muted text-sm font-medium">Branch</Text>
109 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">118 <Text
119 className={cn(
120 "text-foreground text-base",
121 Platform.OS === "android" ? "font-t3-medium" : "font-t3-bold",
122 )}
123 >
110 {gitStatus.data?.refName ?? "(detached HEAD)"}124 {gitStatus.data?.refName ?? "(detached HEAD)"}
111 </Text>125 </Text>
112 </View>126 </View>
...@@ -117,10 +131,20 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -117,10 +131,20 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
117 ) : null}131 ) : null}
118 </View>132 </View>
119133
120 <View className="gap-3 bg-card p-4 android:rounded-[20px] ios:rounded-[22px] ios:border ios:border-border">134 <View
135 className={cn(
136 "gap-3 bg-card p-4",
137 Platform.OS === "android" ? "rounded-[20px]" : "rounded-[22px] border border-border",
138 )}
139 >
121 <View className="flex-row items-center justify-between gap-3">140 <View className="flex-row items-center justify-between gap-3">
122 <View className="gap-1">141 <View className="gap-1">
123 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">142 <Text
143 className={cn(
144 "text-foreground text-base",
145 Platform.OS === "android" ? "font-t3-medium" : "font-t3-bold",
146 )}
147 >
124 Files148 Files
125 </Text>149 </Text>
126 <Text className="text-foreground-muted text-xs leading-normal">150 <Text className="text-foreground-muted text-xs leading-normal">
...@@ -130,19 +154,39 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -130,19 +154,39 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
130 <View className="flex-row items-center gap-2">154 <View className="flex-row items-center gap-2">
131 {!allSelected && isEditingFiles ? (155 {!allSelected && isEditingFiles ? (
132 <Pressable156 <Pressable
133 className="rounded-full px-3 android:min-h-12 android:justify-center android:active:bg-subtle ios:bg-subtle ios:py-2"157 className={
158 Platform.OS === "android"
159 ? "min-h-12 justify-center rounded-full px-3 active:bg-subtle"
160 : "bg-subtle rounded-full px-3 py-2"
161 }
134 onPress={() => setExcludedFiles(new Set())}162 onPress={() => setExcludedFiles(new Set())}
135 >163 >
136 <Text className="android:text-primary-text android:text-sm android:font-t3-medium ios:text-foreground ios:text-2xs ios:font-t3-bold ios:uppercase">164 <Text
165 className={
166 Platform.OS === "android"
167 ? "text-primary-text text-sm font-t3-medium"
168 : "text-foreground text-2xs font-t3-bold uppercase"
169 }
170 >
137 Reset171 Reset
138 </Text>172 </Text>
139 </Pressable>173 </Pressable>
140 ) : null}174 ) : null}
141 <Pressable175 <Pressable
142 className="rounded-full px-3 android:min-h-12 android:justify-center android:active:bg-subtle ios:bg-subtle ios:py-2"176 className={
177 Platform.OS === "android"
178 ? "min-h-12 justify-center rounded-full px-3 active:bg-subtle"
179 : "bg-subtle rounded-full px-3 py-2"
180 }
143 onPress={() => setIsEditingFiles((current) => !current)}181 onPress={() => setIsEditingFiles((current) => !current)}
144 >182 >
145 <Text className="android:text-primary-text android:text-sm android:font-t3-medium ios:text-foreground ios:text-2xs ios:font-t3-bold ios:uppercase">183 <Text
184 className={
185 Platform.OS === "android"
186 ? "text-primary-text text-sm font-t3-medium"
187 : "text-foreground text-2xs font-t3-bold uppercase"
188 }
189 >
146 {isEditingFiles ? "Done" : "Edit"}190 {isEditingFiles ? "Done" : "Edit"}
147 </Text>191 </Text>
148 </Pressable>192 </Pressable>
...@@ -182,10 +226,15 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -182,10 +226,15 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
182 <Pressable226 <Pressable
183 key={file.path}227 key={file.path}
184 className={cn(228 className={cn(
185 "px-4 py-3 android:rounded-xl ios:rounded-[18px] ios:border",229 "px-4 py-3",
186 included230 Platform.OS === "android"
187 ? "android:bg-subtle ios:border-border"231 ? included
188 : "ios:border-border-subtle",232 ? "rounded-xl bg-subtle"
233 : "rounded-xl"
234 : cn(
235 "rounded-[18px] border",
236 included ? "border-border" : "border-border-subtle",
237 ),
189 )}238 )}
190 accessibilityRole="checkbox"239 accessibilityRole="checkbox"
191 accessibilityLabel={file.path}240 accessibilityLabel={file.path}
...@@ -254,8 +303,16 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -254,8 +303,16 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
254 )}303 )}
255 </View>304 </View>
256305
257 <View className="android:gap-3 android:rounded-[20px] android:bg-card android:p-4 ios:gap-2">306 <View
258 <Text className="text-foreground android:text-base android:font-t3-medium ios:text-sm ios:font-t3-bold">307 className={Platform.OS === "android" ? "gap-3 rounded-[20px] bg-card p-4" : "gap-2"}
308 >
309 <Text
310 className={
311 Platform.OS === "android"
312 ? "text-foreground text-base font-t3-medium"
313 : "text-foreground text-sm font-t3-bold"
314 }
315 >
259 Commit message316 Commit message
260 </Text>317 </Text>
261 <TextInput318 <TextInput
...@@ -265,12 +322,15 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -265,12 +322,15 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
265 onChangeText={setDialogCommitMessage}322 onChangeText={setDialogCommitMessage}
266 placeholder="Leave empty to auto-generate"323 placeholder="Leave empty to auto-generate"
267 textAlignVertical="top"324 textAlignVertical="top"
268 className="min-h-[128px] px-4 py-3.5 android:rounded-xl android:bg-sheet-solid ios:rounded-[20px]"325 className={cn(
326 "min-h-[128px] px-4 py-3.5",
327 Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[20px]",
328 )}
269 />329 />
270 </View>330 </View>
271331
272 <View className="android:gap-2 ios:flex-row ios:gap-3">332 <View className={Platform.OS === "android" ? "gap-2" : "flex-row gap-3"}>
273 <View className="ios:flex-1">333 <View className={Platform.OS === "android" ? undefined : "flex-1"}>
274 <SheetActionButton334 <SheetActionButton
275 icon="arrow.branch"335 icon="arrow.branch"
276 label="Commit on new branch"336 label="Commit on new branch"
...@@ -278,7 +338,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -278,7 +338,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
278 onPress={() => void runCommitAction(true)}338 onPress={() => void runCommitAction(true)}
279 />339 />
280 </View>340 </View>
281 <View className="ios:flex-1">341 <View className={Platform.OS === "android" ? undefined : "flex-1"}>
282 <SheetActionButton342 <SheetActionButton
283 icon="checkmark.circle"343 icon="checkmark.circle"
284 label="Commit"344 label="Commit"
apps/mobile/src/features/threads/git/GitConfirmSheet.tsx+25-7
...@@ -107,7 +107,7 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) {...@@ -107,7 +107,7 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) {
107 return (107 return (
108 <View108 <View
109 collapsable={false}109 collapsable={false}
110 className="bg-sheet ios:flex-1"110 className={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"}
111 style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined}111 style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined}
112 >112 >
113 {Platform.OS === "android" ? (113 {Platform.OS === "android" ? (
...@@ -130,31 +130,49 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) {...@@ -130,31 +130,49 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) {
130130
131 <MaterialScreenContent fitToContents>131 <MaterialScreenContent fitToContents>
132 <ScrollView132 <ScrollView
133 className="android:shrink android:grow-0 ios:flex-1"133 className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"}
134 showsVerticalScrollIndicator={false}134 showsVerticalScrollIndicator={false}
135 contentContainerClassName="android:gap-2 android:p-2"135 contentContainerClassName={Platform.OS === "android" ? "gap-2 p-2" : undefined}
136 contentContainerStyle={136 contentContainerStyle={
137 Platform.OS === "android"137 Platform.OS === "android"
138 ? { paddingBottom: Math.max(insets.bottom, 18) + 8 }138 ? { paddingBottom: Math.max(insets.bottom, 18) + 8 }
139 : undefined139 : undefined
140 }140 }
141 >141 >
142 <View className="android:gap-2 android:rounded-[20px] android:bg-card android:p-3 ios:items-center ios:gap-1 ios:px-5 ios:pb-3 ios:pt-4">142 <View
143 className={
144 Platform.OS === "android"
145 ? "gap-2 rounded-[20px] bg-card p-3"
146 : "items-center gap-1 px-5 pb-3 pt-4"
147 }
148 >
143 {Platform.OS !== "android" ? (149 {Platform.OS !== "android" ? (
144 <Text className="text-xs font-t3-bold tracking-[1px] uppercase text-foreground-muted">150 <Text className="text-xs font-t3-bold tracking-[1px] uppercase text-foreground-muted">
145 Confirm151 Confirm
146 </Text>152 </Text>
147 ) : null}153 ) : null}
148 <Text className="android:text-xl android:font-t3-medium ios:text-center ios:text-3xl ios:font-t3-bold">154 <Text
155 className={
156 Platform.OS === "android"
157 ? "text-xl font-t3-medium"
158 : "text-center text-3xl font-t3-bold"
159 }
160 >
149 {copy?.title ?? "Run action on default branch?"}161 {copy?.title ?? "Run action on default branch?"}
150 </Text>162 </Text>
151 <Text className="text-foreground-secondary leading-normal android:text-base ios:text-center ios:text-sm ios:font-medium">163 <Text
164 className={
165 Platform.OS === "android"
166 ? "text-foreground-secondary text-base leading-normal"
167 : "text-center text-foreground-secondary text-sm font-medium leading-normal"
168 }
169 >
152 {copy?.description ?? "Choose how to continue."}170 {copy?.description ?? "Choose how to continue."}
153 </Text>171 </Text>
154 </View>172 </View>
155173
156 <View174 <View
157 className="android:gap-2 ios:gap-3 ios:px-5 ios:pt-2"175 className={Platform.OS === "android" ? "gap-2" : "gap-3 px-5 pt-2"}
158 style={176 style={
159 Platform.OS === "android"177 Platform.OS === "android"
160 ? undefined178 ? undefined
apps/mobile/src/features/threads/git/GitOverviewSheet.tsx+20-6
...@@ -234,7 +234,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -234,7 +234,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
234 const content = (234 const content = (
235 <ScrollView235 <ScrollView
236 alwaysBounceVertical236 alwaysBounceVertical
237 className="flex-1 android:bg-sheet-solid ios:bg-screen"237 className={Platform.OS === "android" ? "flex-1 bg-sheet-solid" : "flex-1 bg-screen"}
238 contentInsetAdjustmentBehavior={Platform.OS === "ios" ? "automatic" : "never"}238 contentInsetAdjustmentBehavior={Platform.OS === "ios" ? "automatic" : "never"}
239 showsVerticalScrollIndicator={false}239 showsVerticalScrollIndicator={false}
240 contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }}240 contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }}
...@@ -248,9 +248,13 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -248,9 +248,13 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
248 }248 }
249 >249 >
250 <View250 <View
251 className={`overflow-hidden bg-card android:rounded-[20px] ios:border ios:border-border ${251 className={
252 isInspector ? "ios:rounded-2xl ios:px-3 ios:py-1" : "ios:rounded-[22px] ios:px-4 ios:py-1"252 Platform.OS === "android"
253 }`}253 ? "overflow-hidden rounded-[20px] bg-card"
254 : isInspector
255 ? "overflow-hidden rounded-2xl border border-border bg-card px-3 py-1"
256 : "overflow-hidden rounded-[22px] border border-border bg-card px-4 py-1"
257 }
254 >258 >
255 {sheetMenuItems.map(({ item, disabledReason }, index) => (259 {sheetMenuItems.map(({ item, disabledReason }, index) => (
256 <View key={`${item.id}-${item.label}`}>260 <View key={`${item.id}-${item.label}`}>
...@@ -316,7 +320,11 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -316,7 +320,11 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
316 {linkedPrChains.map((chain) => (320 {linkedPrChains.map((chain) => (
317 <View321 <View
318 key={threadPullRequestKeyOf(chain.layers[0]!)}322 key={threadPullRequestKeyOf(chain.layers[0]!)}
319 className="overflow-hidden bg-card android:rounded-[20px] ios:rounded-2xl ios:border ios:border-border ios:px-3 ios:py-1"323 className={
324 Platform.OS === "android"
325 ? "overflow-hidden rounded-[20px] bg-card"
326 : "overflow-hidden rounded-2xl border border-border bg-card px-3 py-1"
327 }
320 >328 >
321 {chain.layers.length > 1 ? (329 {chain.layers.length > 1 ? (
322 <View className="flex-row items-center gap-2 px-1 pt-2 pb-1">330 <View className="flex-row items-center gap-2 px-1 pt-2 pb-1">
...@@ -475,7 +483,13 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -475,7 +483,13 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
475 ) : null}483 ) : null}
476484
477 {isInspector ? (485 {isInspector ? (
478 <View className="gap-1 px-4 pb-4 pt-3 android:bg-header ios:border-b ios:border-border">486 <View
487 className={
488 Platform.OS === "android"
489 ? "gap-1 bg-header px-4 pb-4 pt-3"
490 : "gap-1 border-b border-border px-4 pb-4 pt-3"
491 }
492 >
479 {Platform.OS === "android" ? (493 {Platform.OS === "android" ? (
480 <View className="absolute right-3 top-4 z-[1]">{refreshMenu}</View>494 <View className="absolute right-3 top-4 z-[1]">{refreshMenu}</View>
481 ) : (495 ) : (
apps/mobile/src/features/threads/git/gitSheetComponents.tsx+26-4
...@@ -71,7 +71,13 @@ export function SheetActionButton(props: {...@@ -71,7 +71,13 @@ export function SheetActionButton(props: {
7171
72export function MetaCard(props: { readonly label: string; readonly value: string }) {72export function MetaCard(props: { readonly label: string; readonly value: string }) {
73 return (73 return (
74 <View className="bg-card px-4 py-3 android:rounded-[20px] ios:rounded-[18px] ios:border ios:border-border">74 <View
75 className={
76 Platform.OS === "android"
77 ? "rounded-[20px] bg-card px-4 py-3"
78 : "rounded-[18px] border border-border bg-card px-4 py-3"
79 }
80 >
75 <Text className="text-foreground-muted text-2xs font-t3-bold tracking-[0.9px] uppercase">81 <Text className="text-foreground-muted text-2xs font-t3-bold tracking-[0.9px] uppercase">
76 {props.label}82 {props.label}
77 </Text>83 </Text>
...@@ -91,11 +97,21 @@ export function SheetListRow(props: {...@@ -91,11 +97,21 @@ export function SheetListRow(props: {
91}) {97}) {
92 return (98 return (
93 <Pressable99 <Pressable
94 className="flex-row items-center py-3 disabled:opacity-[0.45] android:min-h-16 android:gap-4 android:px-4 android:active:bg-subtle ios:gap-3 ios:px-1"100 className={
101 Platform.OS === "android"
102 ? "min-h-16 flex-row items-center gap-4 px-4 py-3 active:bg-subtle disabled:opacity-[0.45]"
103 : "flex-row items-center gap-3 px-1 py-3 disabled:opacity-[0.45]"
104 }
95 disabled={props.disabled}105 disabled={props.disabled}
96 onPress={props.onPress}106 onPress={props.onPress}
97 >107 >
98 <View className="items-center justify-center android:size-6 ios:bg-subtle ios:h-9 ios:w-9 ios:rounded-full">108 <View
109 className={
110 Platform.OS === "android"
111 ? "size-6 items-center justify-center"
112 : "bg-subtle h-9 w-9 items-center justify-center rounded-full"
113 }
114 >
99 <SymbolView115 <SymbolView
100 name={props.icon}116 name={props.icon}
101 size={Platform.OS === "android" ? 24 : 16}117 size={Platform.OS === "android" ? 24 : 16}
...@@ -104,7 +120,13 @@ export function SheetListRow(props: {...@@ -104,7 +120,13 @@ export function SheetListRow(props: {
104 />120 />
105 </View>121 </View>
106 <View className="flex-1 gap-0.5">122 <View className="flex-1 gap-0.5">
107 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">123 <Text
124 className={
125 Platform.OS === "android"
126 ? "text-foreground text-base font-t3-medium"
127 : "text-foreground text-base font-t3-bold"
128 }
129 >
108 {props.title}130 {props.title}
109 </Text>131 </Text>
110 {props.subtitle ? (132 {props.subtitle ? (