authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-22 19:35:56-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-22 19:35:56-07:00
log21be723addfc01c797acd0b7a1e6547c9be6bff0
treed3c4217475860289552139bfa14ce374f147efa9
parentb9199617d57178b136ece0b8d649565cd463a0ff
signature Signed by PGP key B5690EEEBB952194

refactor(mobile): git sheets use uniwind platform variants instead of className ternaries (#13185)


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

apps/mobile/src/features/threads/git/GitBranchesSheet.tsx+18-69
...@@ -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={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"}66 className="bg-sheet ios:flex-1"
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,31 +83,19 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -83,31 +83,19 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
83 ) : null}83 ) : null}
84 <MaterialScreenContent fitToContents>84 <MaterialScreenContent fitToContents>
85 <ScrollView85 <ScrollView
86 className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"}86 className="android:shrink android:grow-0 ios: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={Platform.OS === "android" ? "gap-2 p-2" : "gap-4 px-5 pt-2"}90 contentContainerClassName="android:gap-2 android:p-2 ios:gap-4 ios:px-5 ios: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 <View97 <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">
98 className={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">
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 >
111 New branch99 New branch
112 </Text>100 </Text>
113 <TextInput101 <TextInput
...@@ -115,7 +103,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -115,7 +103,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
115 onChangeText={setNewBranchName}103 onChangeText={setNewBranchName}
116 placeholder="feature/mobile-polish"104 placeholder="feature/mobile-polish"
117 accessibilityLabel="New branch name"105 accessibilityLabel="New branch name"
118 className={Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[18px]"}106 className="android:rounded-xl android:bg-sheet-solid ios:rounded-[18px]"
119 />107 />
120 <SheetActionButton108 <SheetActionButton
121 icon="plus"109 icon="plus"
...@@ -133,20 +121,8 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -133,20 +121,8 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
133 />121 />
134 </View>122 </View>
135123
136 <View124 <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">
137 className={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">
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 >
150 New worktree126 New worktree
151 </Text>127 </Text>
152 {Platform.OS === "android" ? (128 {Platform.OS === "android" ? (
...@@ -157,7 +133,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -157,7 +133,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
157 onChangeText={setWorktreeBaseBranch}133 onChangeText={setWorktreeBaseBranch}
158 placeholder="main"134 placeholder="main"
159 accessibilityLabel="Worktree base branch"135 accessibilityLabel="Worktree base branch"
160 className={Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[18px]"}136 className="android:rounded-xl android:bg-sheet-solid ios:rounded-[18px]"
161 />137 />
162 {Platform.OS === "android" ? (138 {Platform.OS === "android" ? (
163 <Text className="text-foreground-secondary text-sm">New branch</Text>139 <Text className="text-foreground-secondary text-sm">New branch</Text>
...@@ -167,7 +143,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -167,7 +143,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
167 onChangeText={setWorktreeBranchName}143 onChangeText={setWorktreeBranchName}
168 placeholder="feature/mobile-thread"144 placeholder="feature/mobile-thread"
169 accessibilityLabel="Worktree branch name"145 accessibilityLabel="Worktree branch name"
170 className={Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[18px]"}146 className="android:rounded-xl android:bg-sheet-solid ios:rounded-[18px]"
171 />147 />
172 <SheetActionButton148 <SheetActionButton
173 icon="square.split.2x1"149 icon="square.split.2x1"
...@@ -193,32 +169,16 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -193,32 +169,16 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
193 </View>169 </View>
194170
195 <View className="gap-2">171 <View className="gap-2">
196 <Text172 <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">
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 >
203 Existing branches173 Existing branches
204 </Text>174 </Text>
205 {branchesLoading ? (175 {branchesLoading ? (
206 <Text176 <Text className="text-foreground-secondary text-sm font-medium android:px-4">
207 className={cn(
208 "text-foreground-secondary text-sm font-medium",
209 Platform.OS === "android" && "px-4",
210 )}
211 >
212 Loading branches...177 Loading branches...
213 </Text>178 </Text>
214 ) : null}179 ) : null}
215 {!branchesLoading && availableBranches.length === 0 ? (180 {!branchesLoading && availableBranches.length === 0 ? (
216 <Text181 <Text className="text-foreground-secondary text-sm font-medium android:px-4">
217 className={cn(
218 "text-foreground-secondary text-sm font-medium",
219 Platform.OS === "android" && "px-4",
220 )}
221 >
222 No local branches found.182 No local branches found.
223 </Text>183 </Text>
224 ) : null}184 ) : null}
...@@ -236,16 +196,10 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -236,16 +196,10 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
236 <Pressable196 <Pressable
237 key={branch.name}197 key={branch.name}
238 className={cn(198 className={cn(
239 "gap-1 px-4 py-3 disabled:opacity-[0.45]",199 "gap-1 px-4 py-3 disabled:opacity-[0.45] android:rounded-[20px] android:active:bg-subtle ios:rounded-[18px] ios:border",
240 Platform.OS === "android"200 branch.current
241 ? cn(201 ? "android:bg-secondary ios:border-subtle-strong"
242 "rounded-[20px] active:bg-subtle",202 : "android:bg-card ios:border-border",
243 branch.current ? "bg-secondary" : "bg-card",
244 )
245 : cn(
246 "rounded-[18px] border",
247 branch.current ? "border-subtle-strong" : "border-border",
248 ),
249 )}203 )}
250 accessibilityRole="button"204 accessibilityRole="button"
251 accessibilityState={{ selected: branch.current, disabled: busy || disabled }}205 accessibilityState={{ selected: branch.current, disabled: busy || disabled }}
...@@ -259,12 +213,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {...@@ -259,12 +213,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) {
259 {Platform.OS !== "android" ? (213 {Platform.OS !== "android" ? (
260 <View className="absolute inset-0 rounded-[18px] bg-card" />214 <View className="absolute inset-0 rounded-[18px] bg-card" />
261 ) : null}215 ) : null}
262 <Text216 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">
263 className={cn(
264 "text-foreground text-base",
265 Platform.OS === "android" ? "font-t3-medium" : "font-t3-bold",
266 )}
267 >
268 {branch.name}217 {branch.name}
269 </Text>218 </Text>
270 <Text className="text-foreground-secondary text-xs font-medium">{subtitle}</Text>219 <Text className="text-foreground-secondary text-xs font-medium">{subtitle}</Text>
apps/mobile/src/features/threads/git/GitCommitSheet.tsx+22-82
...@@ -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={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"}75 className="bg-sheet ios:flex-1"
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,35 +92,21 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -92,35 +92,21 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
92 ) : null}92 ) : null}
93 <MaterialScreenContent fitToContents>93 <MaterialScreenContent fitToContents>
94 <ScrollView94 <ScrollView
95 className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"}95 className="android:shrink android:grow-0 ios: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={Platform.OS === "android" ? "gap-2 p-2" : "gap-4 px-5 pt-2"}99 contentContainerClassName="android:gap-2 android:p-2 ios:gap-4 ios:px-5 ios: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 <View106 <View className="gap-3 bg-card p-4 android:rounded-[20px] ios:rounded-[22px] ios:border ios:border-border">
107 className={cn(107 <View className="android:gap-1 ios:flex-row ios:items-center ios:justify-between ios:gap-3">
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 >
117 <Text className="text-foreground-muted text-sm font-medium">Branch</Text>108 <Text className="text-foreground-muted text-sm font-medium">Branch</Text>
118 <Text109 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">
119 className={cn(
120 "text-foreground text-base",
121 Platform.OS === "android" ? "font-t3-medium" : "font-t3-bold",
122 )}
123 >
124 {gitStatus.data?.refName ?? "(detached HEAD)"}110 {gitStatus.data?.refName ?? "(detached HEAD)"}
125 </Text>111 </Text>
126 </View>112 </View>
...@@ -131,20 +117,10 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -131,20 +117,10 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
131 ) : null}117 ) : null}
132 </View>118 </View>
133119
134 <View120 <View className="gap-3 bg-card p-4 android:rounded-[20px] ios:rounded-[22px] ios:border ios:border-border">
135 className={cn(
136 "gap-3 bg-card p-4",
137 Platform.OS === "android" ? "rounded-[20px]" : "rounded-[22px] border border-border",
138 )}
139 >
140 <View className="flex-row items-center justify-between gap-3">121 <View className="flex-row items-center justify-between gap-3">
141 <View className="gap-1">122 <View className="gap-1">
142 <Text123 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">
143 className={cn(
144 "text-foreground text-base",
145 Platform.OS === "android" ? "font-t3-medium" : "font-t3-bold",
146 )}
147 >
148 Files124 Files
149 </Text>125 </Text>
150 <Text className="text-foreground-muted text-xs leading-normal">126 <Text className="text-foreground-muted text-xs leading-normal">
...@@ -154,39 +130,19 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -154,39 +130,19 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
154 <View className="flex-row items-center gap-2">130 <View className="flex-row items-center gap-2">
155 {!allSelected && isEditingFiles ? (131 {!allSelected && isEditingFiles ? (
156 <Pressable132 <Pressable
157 className={133 className="rounded-full px-3 android:min-h-12 android:justify-center android:active:bg-subtle ios:bg-subtle ios:py-2"
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 }
162 onPress={() => setExcludedFiles(new Set())}134 onPress={() => setExcludedFiles(new Set())}
163 >135 >
164 <Text136 <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">
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 >
171 Reset137 Reset
172 </Text>138 </Text>
173 </Pressable>139 </Pressable>
174 ) : null}140 ) : null}
175 <Pressable141 <Pressable
176 className={142 className="rounded-full px-3 android:min-h-12 android:justify-center android:active:bg-subtle ios:bg-subtle ios:py-2"
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 }
181 onPress={() => setIsEditingFiles((current) => !current)}143 onPress={() => setIsEditingFiles((current) => !current)}
182 >144 >
183 <Text145 <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">
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 >
190 {isEditingFiles ? "Done" : "Edit"}146 {isEditingFiles ? "Done" : "Edit"}
191 </Text>147 </Text>
192 </Pressable>148 </Pressable>
...@@ -226,15 +182,10 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -226,15 +182,10 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
226 <Pressable182 <Pressable
227 key={file.path}183 key={file.path}
228 className={cn(184 className={cn(
229 "px-4 py-3",185 "px-4 py-3 android:rounded-xl ios:rounded-[18px] ios:border",
230 Platform.OS === "android"186 included
231 ? included187 ? "android:bg-subtle ios:border-border"
232 ? "rounded-xl bg-subtle"188 : "ios:border-border-subtle",
233 : "rounded-xl"
234 : cn(
235 "rounded-[18px] border",
236 included ? "border-border" : "border-border-subtle",
237 ),
238 )}189 )}
239 accessibilityRole="checkbox"190 accessibilityRole="checkbox"
240 accessibilityLabel={file.path}191 accessibilityLabel={file.path}
...@@ -303,16 +254,8 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -303,16 +254,8 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
303 )}254 )}
304 </View>255 </View>
305256
306 <View257 <View className="android:gap-3 android:rounded-[20px] android:bg-card android:p-4 ios:gap-2">
307 className={Platform.OS === "android" ? "gap-3 rounded-[20px] bg-card p-4" : "gap-2"}258 <Text className="text-foreground android:text-base android:font-t3-medium ios:text-sm ios:font-t3-bold">
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 >
316 Commit message259 Commit message
317 </Text>260 </Text>
318 <TextInput261 <TextInput
...@@ -322,15 +265,12 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -322,15 +265,12 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
322 onChangeText={setDialogCommitMessage}265 onChangeText={setDialogCommitMessage}
323 placeholder="Leave empty to auto-generate"266 placeholder="Leave empty to auto-generate"
324 textAlignVertical="top"267 textAlignVertical="top"
325 className={cn(268 className="min-h-[128px] px-4 py-3.5 android:rounded-xl android:bg-sheet-solid ios:rounded-[20px]"
326 "min-h-[128px] px-4 py-3.5",
327 Platform.OS === "android" ? "rounded-xl bg-sheet-solid" : "rounded-[20px]",
328 )}
329 />269 />
330 </View>270 </View>
331271
332 <View className={Platform.OS === "android" ? "gap-2" : "flex-row gap-3"}>272 <View className="android:gap-2 ios:flex-row ios:gap-3">
333 <View className={Platform.OS === "android" ? undefined : "flex-1"}>273 <View className="ios:flex-1">
334 <SheetActionButton274 <SheetActionButton
335 icon="arrow.branch"275 icon="arrow.branch"
336 label="Commit on new branch"276 label="Commit on new branch"
...@@ -338,7 +278,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {...@@ -338,7 +278,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) {
338 onPress={() => void runCommitAction(true)}278 onPress={() => void runCommitAction(true)}
339 />279 />
340 </View>280 </View>
341 <View className={Platform.OS === "android" ? undefined : "flex-1"}>281 <View className="ios:flex-1">
342 <SheetActionButton282 <SheetActionButton
343 icon="checkmark.circle"283 icon="checkmark.circle"
344 label="Commit"284 label="Commit"
apps/mobile/src/features/threads/git/GitConfirmSheet.tsx+7-25
...@@ -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={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"}110 className="bg-sheet ios:flex-1"
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,49 +130,31 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) {...@@ -130,49 +130,31 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) {
130130
131 <MaterialScreenContent fitToContents>131 <MaterialScreenContent fitToContents>
132 <ScrollView132 <ScrollView
133 className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"}133 className="android:shrink android:grow-0 ios:flex-1"
134 showsVerticalScrollIndicator={false}134 showsVerticalScrollIndicator={false}
135 contentContainerClassName={Platform.OS === "android" ? "gap-2 p-2" : undefined}135 contentContainerClassName="android:gap-2 android:p-2"
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 <View142 <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">
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 >
149 {Platform.OS !== "android" ? (143 {Platform.OS !== "android" ? (
150 <Text className="text-xs font-t3-bold tracking-[1px] uppercase text-foreground-muted">144 <Text className="text-xs font-t3-bold tracking-[1px] uppercase text-foreground-muted">
151 Confirm145 Confirm
152 </Text>146 </Text>
153 ) : null}147 ) : null}
154 <Text148 <Text className="android:text-xl android:font-t3-medium ios:text-center ios:text-3xl ios:font-t3-bold">
155 className={
156 Platform.OS === "android"
157 ? "text-xl font-t3-medium"
158 : "text-center text-3xl font-t3-bold"
159 }
160 >
161 {copy?.title ?? "Run action on default branch?"}149 {copy?.title ?? "Run action on default branch?"}
162 </Text>150 </Text>
163 <Text151 <Text className="text-foreground-secondary leading-normal android:text-base ios:text-center ios:text-sm ios:font-medium">
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 >
170 {copy?.description ?? "Choose how to continue."}152 {copy?.description ?? "Choose how to continue."}
171 </Text>153 </Text>
172 </View>154 </View>
173155
174 <View156 <View
175 className={Platform.OS === "android" ? "gap-2" : "gap-3 px-5 pt-2"}157 className="android:gap-2 ios:gap-3 ios:px-5 ios:pt-2"
176 style={158 style={
177 Platform.OS === "android"159 Platform.OS === "android"
178 ? undefined160 ? undefined
apps/mobile/src/features/threads/git/GitOverviewSheet.tsx+6-20
...@@ -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={Platform.OS === "android" ? "flex-1 bg-sheet-solid" : "flex-1 bg-screen"}237 className="flex-1 android:bg-sheet-solid ios: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,13 +248,9 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -248,13 +248,9 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
248 }248 }
249 >249 >
250 <View250 <View
251 className={251 className={`overflow-hidden bg-card android:rounded-[20px] ios:border ios:border-border ${
252 Platform.OS === "android"252 isInspector ? "ios:rounded-2xl ios:px-3 ios:py-1" : "ios:rounded-[22px] ios:px-4 ios:py-1"
253 ? "overflow-hidden rounded-[20px] bg-card"253 }`}
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 }
258 >254 >
259 {sheetMenuItems.map(({ item, disabledReason }, index) => (255 {sheetMenuItems.map(({ item, disabledReason }, index) => (
260 <View key={`${item.id}-${item.label}`}>256 <View key={`${item.id}-${item.label}`}>
...@@ -320,11 +316,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -320,11 +316,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
320 {linkedPrChains.map((chain) => (316 {linkedPrChains.map((chain) => (
321 <View317 <View
322 key={threadPullRequestKeyOf(chain.layers[0]!)}318 key={threadPullRequestKeyOf(chain.layers[0]!)}
323 className={319 className="overflow-hidden bg-card android:rounded-[20px] ios:rounded-2xl ios:border ios:border-border ios:px-3 ios:py-1"
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 }
328 >320 >
329 {chain.layers.length > 1 ? (321 {chain.layers.length > 1 ? (
330 <View className="flex-row items-center gap-2 px-1 pt-2 pb-1">322 <View className="flex-row items-center gap-2 px-1 pt-2 pb-1">
...@@ -483,13 +475,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {...@@ -483,13 +475,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) {
483 ) : null}475 ) : null}
484476
485 {isInspector ? (477 {isInspector ? (
486 <View478 <View className="gap-1 px-4 pb-4 pt-3 android:bg-header ios:border-b ios:border-border">
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 >
493 {Platform.OS === "android" ? (479 {Platform.OS === "android" ? (
494 <View className="absolute right-3 top-4 z-[1]">{refreshMenu}</View>480 <View className="absolute right-3 top-4 z-[1]">{refreshMenu}</View>
495 ) : (481 ) : (
apps/mobile/src/features/threads/git/gitSheetComponents.tsx+4-26
...@@ -71,13 +71,7 @@ export function SheetActionButton(props: {...@@ -71,13 +71,7 @@ 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 <View74 <View className="bg-card px-4 py-3 android:rounded-[20px] ios:rounded-[18px] ios:border ios:border-border">
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 >
81 <Text className="text-foreground-muted text-2xs font-t3-bold tracking-[0.9px] uppercase">75 <Text className="text-foreground-muted text-2xs font-t3-bold tracking-[0.9px] uppercase">
82 {props.label}76 {props.label}
83 </Text>77 </Text>
...@@ -97,21 +91,11 @@ export function SheetListRow(props: {...@@ -97,21 +91,11 @@ export function SheetListRow(props: {
97}) {91}) {
98 return (92 return (
99 <Pressable93 <Pressable
100 className={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"
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 }
105 disabled={props.disabled}95 disabled={props.disabled}
106 onPress={props.onPress}96 onPress={props.onPress}
107 >97 >
108 <View98 <View className="items-center justify-center android:size-6 ios:bg-subtle ios:h-9 ios:w-9 ios:rounded-full">
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 >
115 <SymbolView99 <SymbolView
116 name={props.icon}100 name={props.icon}
117 size={Platform.OS === "android" ? 24 : 16}101 size={Platform.OS === "android" ? 24 : 16}
...@@ -120,13 +104,7 @@ export function SheetListRow(props: {...@@ -120,13 +104,7 @@ export function SheetListRow(props: {
120 />104 />
121 </View>105 </View>
122 <View className="flex-1 gap-0.5">106 <View className="flex-1 gap-0.5">
123 <Text107 <Text className="text-foreground text-base android:font-t3-medium ios:font-t3-bold">
124 className={
125 Platform.OS === "android"
126 ? "text-foreground text-base font-t3-medium"
127 : "text-foreground text-base font-t3-bold"
128 }
129 >
130 {props.title}108 {props.title}
131 </Text>109 </Text>
132 {props.subtitle ? (110 {props.subtitle ? (