| author | |
| committer | |
| log | 6dcde218ad6c07af4dde2a69517c9316adaf732f |
| tree | bca250dc4bd434a55998004b8d2855c706038cc9 |
| parent | 34096519121033ccf72cd43ea5350f9482df188a |
| signature | Signed by PGP key B5690EEEBB952194 |
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 | 63 | return ( |
| 64 | 64 | <View |
| 65 | 65 | collapsable={false} |
| 66 | className="bg-sheet ios:flex-1" | |
| 66 | className={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"} | |
| 67 | 67 | style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined} |
| 68 | 68 | > |
| 69 | 69 | {Platform.OS === "android" ? ( |
| ... | ... | @@ -83,19 +83,31 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 83 | 83 | ) : null} |
| 84 | 84 | <MaterialScreenContent fitToContents> |
| 85 | 85 | <ScrollView |
| 86 | className="android:shrink android:grow-0 ios:flex-1" | |
| 86 | className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"} | |
| 87 | 87 | keyboardShouldPersistTaps="handled" |
| 88 | 88 | showsVerticalScrollIndicator={false} |
| 89 | 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 | 91 | contentContainerStyle={ |
| 92 | 92 | Platform.OS === "android" |
| 93 | 93 | ? { paddingBottom: Math.max(insets.bottom, 18) + 18 } |
| 94 | 94 | : 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"> | |
| 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"> | |
| 97 | <View | |
| 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 | 111 | New branch |
| 100 | 112 | </Text> |
| 101 | 113 | <TextInput |
| ... | ... | @@ -103,7 +115,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 103 | 115 | onChangeText={setNewBranchName} |
| 104 | 116 | placeholder="feature/mobile-polish" |
| 105 | 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 | 120 | <SheetActionButton |
| 109 | 121 | icon="plus" |
| ... | ... | @@ -121,8 +133,20 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 121 | 133 | /> |
| 122 | 134 | </View> |
| 123 | 135 | |
| 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"> | |
| 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"> | |
| 136 | <View | |
| 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 | 150 | New worktree |
| 127 | 151 | </Text> |
| 128 | 152 | {Platform.OS === "android" ? ( |
| ... | ... | @@ -133,7 +157,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 133 | 157 | onChangeText={setWorktreeBaseBranch} |
| 134 | 158 | placeholder="main" |
| 135 | 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 | 162 | {Platform.OS === "android" ? ( |
| 139 | 163 | <Text className="text-foreground-secondary text-sm">New branch</Text> |
| ... | ... | @@ -143,7 +167,7 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 143 | 167 | onChangeText={setWorktreeBranchName} |
| 144 | 168 | placeholder="feature/mobile-thread" |
| 145 | 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 | 172 | <SheetActionButton |
| 149 | 173 | icon="square.split.2x1" |
| ... | ... | @@ -169,16 +193,32 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 169 | 193 | </View> |
| 170 | 194 | |
| 171 | 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 | 203 | Existing branches |
| 174 | 204 | </Text> |
| 175 | 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 | 212 | Loading branches... |
| 178 | 213 | </Text> |
| 179 | 214 | ) : null} |
| 180 | 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 | 222 | No local branches found. |
| 183 | 223 | </Text> |
| 184 | 224 | ) : null} |
| ... | ... | @@ -196,10 +236,16 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 196 | 236 | <Pressable |
| 197 | 237 | key={branch.name} |
| 198 | 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", | |
| 200 | branch.current | |
| 201 | ? "android:bg-secondary ios:border-subtle-strong" | |
| 202 | : "android:bg-card ios:border-border", | |
| 239 | "gap-1 px-4 py-3 disabled:opacity-[0.45]", | |
| 240 | Platform.OS === "android" | |
| 241 | ? cn( | |
| 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 | 250 | accessibilityRole="button" |
| 205 | 251 | accessibilityState={{ selected: branch.current, disabled: busy || disabled }} |
| ... | ... | @@ -213,7 +259,12 @@ export function GitBranchesSheet(_props: GitBranchesSheetProps) { |
| 213 | 259 | {Platform.OS !== "android" ? ( |
| 214 | 260 | <View className="absolute inset-0 rounded-[18px] bg-card" /> |
| 215 | 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 | 268 | {branch.name} |
| 218 | 269 | </Text> |
| 219 | 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 | 72 | return ( |
| 73 | 73 | <View |
| 74 | 74 | collapsable={false} |
| 75 | className="bg-sheet ios:flex-1" | |
| 75 | className={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"} | |
| 76 | 76 | style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined} |
| 77 | 77 | > |
| 78 | 78 | {Platform.OS === "android" ? ( |
| ... | ... | @@ -92,21 +92,35 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 92 | 92 | ) : null} |
| 93 | 93 | <MaterialScreenContent fitToContents> |
| 94 | 94 | <ScrollView |
| 95 | className="android:shrink android:grow-0 ios:flex-1" | |
| 95 | className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"} | |
| 96 | 96 | keyboardShouldPersistTaps="handled" |
| 97 | 97 | showsVerticalScrollIndicator={false} |
| 98 | 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 | 100 | contentContainerStyle={ |
| 101 | 101 | Platform.OS === "android" |
| 102 | 102 | ? { paddingBottom: Math.max(insets.bottom, 18) + 18 } |
| 103 | 103 | : 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"> | |
| 107 | <View className="android:gap-1 ios:flex-row ios:items-center ios:justify-between ios:gap-3"> | |
| 106 | <View | |
| 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 | 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 | 124 | {gitStatus.data?.refName ?? "(detached HEAD)"} |
| 111 | 125 | </Text> |
| 112 | 126 | </View> |
| ... | ... | @@ -117,10 +131,20 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 117 | 131 | ) : null} |
| 118 | 132 | </View> |
| 119 | 133 | |
| 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 | 140 | <View className="flex-row items-center justify-between gap-3"> |
| 122 | 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 | 148 | Files |
| 125 | 149 | </Text> |
| 126 | 150 | <Text className="text-foreground-muted text-xs leading-normal"> |
| ... | ... | @@ -130,19 +154,39 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 130 | 154 | <View className="flex-row items-center gap-2"> |
| 131 | 155 | {!allSelected && isEditingFiles ? ( |
| 132 | 156 | <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 | 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 | 171 | Reset |
| 138 | 172 | </Text> |
| 139 | 173 | </Pressable> |
| 140 | 174 | ) : null} |
| 141 | 175 | <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 | 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 | 190 | {isEditingFiles ? "Done" : "Edit"} |
| 147 | 191 | </Text> |
| 148 | 192 | </Pressable> |
| ... | ... | @@ -182,10 +226,15 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 182 | 226 | <Pressable |
| 183 | 227 | key={file.path} |
| 184 | 228 | className={cn( |
| 185 | "px-4 py-3 android:rounded-xl ios:rounded-[18px] ios:border", | |
| 186 | included | |
| 187 | ? "android:bg-subtle ios:border-border" | |
| 188 | : "ios:border-border-subtle", | |
| 229 | "px-4 py-3", | |
| 230 | Platform.OS === "android" | |
| 231 | ? included | |
| 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 | 239 | accessibilityRole="checkbox" |
| 191 | 240 | accessibilityLabel={file.path} |
| ... | ... | @@ -254,8 +303,16 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 254 | 303 | )} |
| 255 | 304 | </View> |
| 256 | 305 | |
| 257 | <View className="android:gap-3 android:rounded-[20px] android:bg-card android:p-4 ios:gap-2"> | |
| 258 | <Text className="text-foreground android:text-base android:font-t3-medium ios:text-sm ios:font-t3-bold"> | |
| 306 | <View | |
| 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 | 316 | Commit message |
| 260 | 317 | </Text> |
| 261 | 318 | <TextInput |
| ... | ... | @@ -265,12 +322,15 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 265 | 322 | onChangeText={setDialogCommitMessage} |
| 266 | 323 | placeholder="Leave empty to auto-generate" |
| 267 | 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 | 330 | </View> |
| 271 | 331 | |
| 272 | <View className="android:gap-2 ios:flex-row ios:gap-3"> | |
| 273 | <View className="ios:flex-1"> | |
| 332 | <View className={Platform.OS === "android" ? "gap-2" : "flex-row gap-3"}> | |
| 333 | <View className={Platform.OS === "android" ? undefined : "flex-1"}> | |
| 274 | 334 | <SheetActionButton |
| 275 | 335 | icon="arrow.branch" |
| 276 | 336 | label="Commit on new branch" |
| ... | ... | @@ -278,7 +338,7 @@ export function GitCommitSheet(_props: GitCommitSheetProps) { |
| 278 | 338 | onPress={() => void runCommitAction(true)} |
| 279 | 339 | /> |
| 280 | 340 | </View> |
| 281 | <View className="ios:flex-1"> | |
| 341 | <View className={Platform.OS === "android" ? undefined : "flex-1"}> | |
| 282 | 342 | <SheetActionButton |
| 283 | 343 | icon="checkmark.circle" |
| 284 | 344 | label="Commit" |
apps/mobile/src/features/threads/git/GitConfirmSheet.tsx+25-7| ... | ... | @@ -107,7 +107,7 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) { |
| 107 | 107 | return ( |
| 108 | 108 | <View |
| 109 | 109 | collapsable={false} |
| 110 | className="bg-sheet ios:flex-1" | |
| 110 | className={Platform.OS === "android" ? "bg-sheet" : "flex-1 bg-sheet"} | |
| 111 | 111 | style={Platform.OS === "android" ? { maxHeight: windowHeight * 0.92 } : undefined} |
| 112 | 112 | > |
| 113 | 113 | {Platform.OS === "android" ? ( |
| ... | ... | @@ -130,31 +130,49 @@ export function GitConfirmSheet(props: GitConfirmSheetProps) { |
| 130 | 130 | |
| 131 | 131 | <MaterialScreenContent fitToContents> |
| 132 | 132 | <ScrollView |
| 133 | className="android:shrink android:grow-0 ios:flex-1" | |
| 133 | className={Platform.OS === "android" ? "shrink grow-0" : "flex-1"} | |
| 134 | 134 | showsVerticalScrollIndicator={false} |
| 135 | contentContainerClassName="android:gap-2 android:p-2" | |
| 135 | contentContainerClassName={Platform.OS === "android" ? "gap-2 p-2" : undefined} | |
| 136 | 136 | contentContainerStyle={ |
| 137 | 137 | Platform.OS === "android" |
| 138 | 138 | ? { paddingBottom: Math.max(insets.bottom, 18) + 8 } |
| 139 | 139 | : 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 | 149 | {Platform.OS !== "android" ? ( |
| 144 | 150 | <Text className="text-xs font-t3-bold tracking-[1px] uppercase text-foreground-muted"> |
| 145 | 151 | Confirm |
| 146 | 152 | </Text> |
| 147 | 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 | 161 | {copy?.title ?? "Run action on default branch?"} |
| 150 | 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 | 170 | {copy?.description ?? "Choose how to continue."} |
| 153 | 171 | </Text> |
| 154 | 172 | </View> |
| 155 | 173 | |
| 156 | 174 | <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 | 176 | style={ |
| 159 | 177 | Platform.OS === "android" |
| 160 | 178 | ? undefined |
apps/mobile/src/features/threads/git/GitOverviewSheet.tsx+20-6| ... | ... | @@ -234,7 +234,7 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) { |
| 234 | 234 | const content = ( |
| 235 | 235 | <ScrollView |
| 236 | 236 | 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 | 238 | contentInsetAdjustmentBehavior={Platform.OS === "ios" ? "automatic" : "never"} |
| 239 | 239 | showsVerticalScrollIndicator={false} |
| 240 | 240 | contentInset={{ bottom: Math.max(insets.bottom, 18) + 18 }} |
| ... | ... | @@ -248,9 +248,13 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) { |
| 248 | 248 | } |
| 249 | 249 | > |
| 250 | 250 | <View |
| 251 | className={`overflow-hidden bg-card android:rounded-[20px] ios:border ios:border-border ${ | |
| 252 | isInspector ? "ios:rounded-2xl ios:px-3 ios:py-1" : "ios:rounded-[22px] ios:px-4 ios:py-1" | |
| 253 | }`} | |
| 251 | className={ | |
| 252 | Platform.OS === "android" | |
| 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 | 259 | {sheetMenuItems.map(({ item, disabledReason }, index) => ( |
| 256 | 260 | <View key={`${item.id}-${item.label}`}> |
| ... | ... | @@ -316,7 +320,11 @@ export function GitOverviewSheet(props: GitOverviewSheetProps) { |
| 316 | 320 | {linkedPrChains.map((chain) => ( |
| 317 | 321 | <View |
| 318 | 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 | 329 | {chain.layers.length > 1 ? ( |
| 322 | 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 | 483 | ) : null} |
| 476 | 484 | |
| 477 | 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 | 493 | {Platform.OS === "android" ? ( |
| 480 | 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 | 71 | |
| 72 | 72 | export function MetaCard(props: { readonly label: string; readonly value: string }) { |
| 73 | 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 | 81 | <Text className="text-foreground-muted text-2xs font-t3-bold tracking-[0.9px] uppercase"> |
| 76 | 82 | {props.label} |
| 77 | 83 | </Text> |
| ... | ... | @@ -91,11 +97,21 @@ export function SheetListRow(props: { |
| 91 | 97 | }) { |
| 92 | 98 | return ( |
| 93 | 99 | <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 | 105 | disabled={props.disabled} |
| 96 | 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 | 115 | <SymbolView |
| 100 | 116 | name={props.icon} |
| 101 | 117 | size={Platform.OS === "android" ? 24 : 16} |
| ... | ... | @@ -104,7 +120,13 @@ export function SheetListRow(props: { |
| 104 | 120 | /> |
| 105 | 121 | </View> |
| 106 | 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 | 130 | {props.title} |
| 109 | 131 | </Text> |
| 110 | 132 | {props.subtitle ? ( |