| author | |
| committer | |
| log | 85f2479ffe5c9d8ffa91f1bfae5234df4061292f |
| tree | bbedb0a2a3a5410e418d8c681eaa879abf61caa0 |
| parent | b9b1b8fdddf9d006fdb820af770063e1f968345b |
| signature | Signed by PGP key B5690EEEBB952194 |
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>5 files changed, 17 insertions(+), 64 deletions(-)
apps/mobile/src/features/settings/appearance/components/FontSizeSliderRow.tsx+4-9| ... | ... | @@ -12,7 +12,6 @@ import Animated, { |
| 12 | 12 | import type { ComponentProps } from "react"; |
| 13 | 13 | |
| 14 | 14 | import { AppText as Text } from "../../../../components/AppText"; |
| 15 | import { useUniwindTheme } from "../../../../lib/useUniwindTheme"; | |
| 16 | 15 | |
| 17 | 16 | type SymbolName = ComponentProps<typeof SymbolView>["name"]; |
| 18 | 17 | |
| ... | ... | @@ -36,10 +35,6 @@ export function FontSizeSliderRow(props: { |
| 36 | 35 | readonly value: number; |
| 37 | 36 | readonly onChange: (value: number) => void; |
| 38 | 37 | }) { |
| 39 | const theme = useUniwindTheme(); | |
| 40 | const trackColor = theme["--color-secondary-border"]; | |
| 41 | const fillColor = theme["--color-primary"]; | |
| 42 | ||
| 43 | 38 | const latest = useRef(props); |
| 44 | 39 | latest.current = props; |
| 45 | 40 | |
| ... | ... | @@ -172,12 +167,12 @@ export function FontSizeSliderRow(props: { |
| 172 | 167 | }} |
| 173 | 168 | > |
| 174 | 169 | <View |
| 175 | className="w-full rounded-full" | |
| 176 | style={{ backgroundColor: trackColor, height: TRACK_HEIGHT }} | |
| 170 | className="w-full rounded-full bg-secondary-border" | |
| 171 | style={{ height: TRACK_HEIGHT }} | |
| 177 | 172 | > |
| 178 | 173 | <Animated.View |
| 179 | className="absolute inset-y-0 left-0 rounded-full" | |
| 180 | style={[{ backgroundColor: fillColor }, fillStyle]} | |
| 174 | className="absolute inset-y-0 left-0 rounded-full bg-primary" | |
| 175 | style={fillStyle} | |
| 181 | 176 | /> |
| 182 | 177 | </View> |
| 183 | 178 | <Animated.View |
apps/mobile/src/features/threads/NewTaskContextPickerScreens.tsx+1-6| ... | ... | @@ -23,8 +23,6 @@ import { SymbolView } from "../../components/AppSymbol"; |
| 23 | 23 | import { AppText as Text } from "../../components/AppText"; |
| 24 | 24 | import { ThemedSwitch } from "../../components/ThemedSwitch"; |
| 25 | 25 | import { cn } from "../../lib/cn"; |
| 26 | import { useFontFamily } from "../../lib/useFontFamily"; | |
| 27 | import { useUniwindTheme } from "../../lib/useUniwindTheme"; | |
| 28 | 26 | import { NativeHeaderToolbar, NativeStackScreenOptions } from "../../native/StackHeader"; |
| 29 | 27 | import { useAtomCommand } from "../../state/use-atom-command"; |
| 30 | 28 | import { vcsEnvironment } from "../../state/vcs"; |
| ... | ... | @@ -193,8 +191,6 @@ export function NewTaskBranchPickerRouteScreen() { |
| 193 | 191 | const flow = useNewTaskFlow(); |
| 194 | 192 | const navigation = useNavigation(); |
| 195 | 193 | const insets = useSafeAreaInsets(); |
| 196 | const foregroundColor = useUniwindTheme()["--color-foreground"]; | |
| 197 | const fontFamily = useFontFamily("regular"); | |
| 198 | 194 | const switchRef = useAtomCommand(vcsEnvironment.switchRef, { reportFailure: false }); |
| 199 | 195 | const [switchingBranchName, setSwitchingBranchName] = useState<string | null>(null); |
| 200 | 196 | const selectingBranchNameRef = useRef<string | null>(null); |
| ... | ... | @@ -417,11 +413,10 @@ export function NewTaskBranchPickerRouteScreen() { |
| 417 | 413 | <TextInput |
| 418 | 414 | autoCapitalize="none" |
| 419 | 415 | autoCorrect={false} |
| 420 | className="h-11 rounded-xl bg-card px-4 text-base text-foreground" | |
| 416 | className="h-11 rounded-xl bg-card px-4 font-sans text-base text-foreground" | |
| 421 | 417 | onChangeText={flow.setBranchQuery} |
| 422 | 418 | placeholder="Find a branch" |
| 423 | 419 | placeholderTextColorClassName={"accent-placeholder"} |
| 424 | style={{ color: foregroundColor, fontFamily }} | |
| 425 | 420 | value={flow.branchQuery} |
| 426 | 421 | /> |
| 427 | 422 | </View> |
apps/mobile/src/features/threads/thread-list-items.tsx+9-41| ... | ... | @@ -276,9 +276,6 @@ export const PendingTaskListRow = memo(function PendingTaskListRow(props: { |
| 276 | 276 | readonly onDeletePendingTask: (pendingTask: PendingNewTask) => void; |
| 277 | 277 | }) { |
| 278 | 278 | const compact = props.variant === "compact"; |
| 279 | const theme = useUniwindTheme(); | |
| 280 | const separatorColor = theme["--color-separator"]; | |
| 281 | const pressedBackgroundColor = theme["--color-subtle"]; | |
| 282 | 279 | |
| 283 | 280 | const { pendingTask, onSelectPendingTask, onDeletePendingTask } = props; |
| 284 | 281 | const timestamp = relativeTime(pendingTask.message.createdAt); |
| ... | ... | @@ -333,25 +330,11 @@ export const PendingTaskListRow = memo(function PendingTaskListRow(props: { |
| 333 | 330 | accessibilityHint="Opens the queued task for editing" |
| 334 | 331 | accessibilityLabel={pendingTask.title} |
| 335 | 332 | accessibilityRole="button" |
| 336 | className="bg-screen" | |
| 333 | className="bg-screen active:opacity-70" | |
| 337 | 334 | onPress={() => onSelectPendingTask(pendingTask)} |
| 338 | style={({ pressed }) => ({ opacity: pressed ? 0.7 : 1 })} | |
| 339 | 335 | > |
| 340 | <View | |
| 341 | style={{ | |
| 342 | paddingLeft: THREAD_LIST_COMPACT_INSET, | |
| 343 | paddingRight: 18, | |
| 344 | paddingTop: 10, | |
| 345 | }} | |
| 346 | > | |
| 347 | <View | |
| 348 | style={{ | |
| 349 | gap: 3, | |
| 350 | borderBottomWidth: props.isLast ? 0 : 1, | |
| 351 | borderBottomColor: separatorColor, | |
| 352 | paddingBottom: 10, | |
| 353 | }} | |
| 354 | > | |
| 336 | <View className="pr-[18px] pt-[10px]" style={{ paddingLeft: THREAD_LIST_COMPACT_INSET }}> | |
| 337 | <View className={cn("gap-[3px] pb-[10px]", !props.isLast && "border-b border-separator")}> | |
| 355 | 338 | <View className="flex-row items-center justify-between gap-2"> |
| 356 | 339 | <Text className="flex-1 text-lg font-t3-bold text-foreground" numberOfLines={1}> |
| 357 | 340 | {pendingTask.title} |
| ... | ... | @@ -376,16 +359,16 @@ export const PendingTaskListRow = memo(function PendingTaskListRow(props: { |
| 376 | 359 | accessibilityHint="Opens the queued task for editing" |
| 377 | 360 | accessibilityLabel={pendingTask.title} |
| 378 | 361 | accessibilityRole="button" |
| 362 | className="active:bg-subtle" | |
| 379 | 363 | onPress={() => onSelectPendingTask(pendingTask)} |
| 380 | style={({ pressed }) => ({ | |
| 381 | backgroundColor: pressed ? pressedBackgroundColor : "transparent", | |
| 364 | style={{ | |
| 382 | 365 | borderRadius: SIDEBAR_ROW_RADIUS, |
| 383 | 366 | cursor: "pointer", |
| 384 | 367 | minHeight: 64, |
| 385 | 368 | justifyContent: "center", |
| 386 | 369 | paddingHorizontal: 12, |
| 387 | 370 | paddingVertical: 10, |
| 388 | })} | |
| 371 | }} | |
| 389 | 372 | > |
| 390 | 373 | <View className="gap-[3px]"> |
| 391 | 374 | <View className="flex-row items-center justify-between gap-2"> |
| ... | ... | @@ -455,7 +438,6 @@ export const ThreadListRow = memo(function ThreadListRow(props: { |
| 455 | 438 | const [hovered, setHovered] = useRecyclingState(false); |
| 456 | 439 | |
| 457 | 440 | const theme = useUniwindTheme(); |
| 458 | const separatorColor = theme["--color-separator"]; | |
| 459 | 441 | const screenColor = theme["--color-screen"]; |
| 460 | 442 | const drawerColor = theme["--color-drawer"]; |
| 461 | 443 | const pressedBackgroundColor = theme["--color-subtle"]; |
| ... | ... | @@ -589,28 +571,14 @@ export const ThreadListRow = memo(function ThreadListRow(props: { |
| 589 | 571 | accessibilityHint="Swipe left for archive and delete actions" |
| 590 | 572 | accessibilityLabel={threadAccessibilityLabel} |
| 591 | 573 | accessibilityRole="button" |
| 592 | className="bg-screen" | |
| 574 | className="bg-screen active:opacity-70" | |
| 593 | 575 | onPress={() => { |
| 594 | 576 | close(); |
| 595 | 577 | onSelectThread(thread); |
| 596 | 578 | }} |
| 597 | style={({ pressed }) => ({ opacity: pressed ? 0.7 : 1 })} | |
| 598 | 579 | > |
| 599 | <View | |
| 600 | style={{ | |
| 601 | paddingLeft: THREAD_LIST_COMPACT_INSET, | |
| 602 | paddingRight: 18, | |
| 603 | paddingTop: 10, | |
| 604 | }} | |
| 605 | > | |
| 606 | <View | |
| 607 | style={{ | |
| 608 | gap: 3, | |
| 609 | borderBottomWidth: props.isLast ? 0 : 1, | |
| 610 | borderBottomColor: separatorColor, | |
| 611 | paddingBottom: 10, | |
| 612 | }} | |
| 613 | > | |
| 580 | <View className="pr-[18px] pt-[10px]" style={{ paddingLeft: THREAD_LIST_COMPACT_INSET }}> | |
| 581 | <View className={cn("gap-[3px] pb-[10px]", !props.isLast && "border-b border-separator")}> | |
| 614 | 582 | <View className="flex-row items-center justify-between gap-2"> |
| 615 | 583 | <Text className="flex-1 text-lg font-t3-bold text-foreground" numberOfLines={1}> |
| 616 | 584 | {thread.title} |
apps/mobile/src/features/threads/thread-list-v2-items.tsx+3-6| ... | ... | @@ -214,9 +214,6 @@ export const ThreadListV2PendingRow = memo(function ThreadListV2PendingRow(props |
| 214 | 214 | readonly onDeletePendingTask: (pendingTask: PendingNewTask) => void; |
| 215 | 215 | }) { |
| 216 | 216 | const { pendingTask, onSelectPendingTask, onDeletePendingTask } = props; |
| 217 | const theme = useUniwindTheme(); | |
| 218 | const drawerColor = theme["--color-drawer"]; | |
| 219 | const pressedBackgroundColor = theme["--color-subtle"]; | |
| 220 | 217 | const sidebarPane = props.pane === "sidebar"; |
| 221 | 218 | const projectTitle = |
| 222 | 219 | props.projectTitle ?? props.project?.title ?? pendingTask.creation.projectTitle ?? ""; |
| ... | ... | @@ -291,15 +288,15 @@ export const ThreadListV2PendingRow = memo(function ThreadListV2PendingRow(props |
| 291 | 288 | accessibilityHint="Opens the queued task for editing" |
| 292 | 289 | accessibilityLabel={pendingTask.title} |
| 293 | 290 | accessibilityRole="button" |
| 291 | className={sidebarPane ? "bg-drawer active:bg-subtle" : undefined} | |
| 294 | 292 | onPress={() => onSelectPendingTask(pendingTask)} |
| 295 | 293 | style={ |
| 296 | 294 | sidebarPane |
| 297 | ? ({ pressed }) => ({ | |
| 298 | backgroundColor: pressed ? pressedBackgroundColor : drawerColor, | |
| 295 | ? { | |
| 299 | 296 | borderRadius: SIDEBAR_V2_ROW_RADIUS, |
| 300 | 297 | paddingHorizontal: 12, |
| 301 | 298 | paddingVertical: 10, |
| 302 | }) | |
| 299 | } | |
| 303 | 300 | : ({ pressed }) => ({ opacity: pressed ? 0.7 : 1 }) |
| 304 | 301 | } |
| 305 | 302 | > |
vite.config.ts-2| ... | ... | @@ -144,9 +144,7 @@ export default defineConfig({ |
| 144 | 144 | "apps/mobile/src/features/review/useNativeReviewDiffBridge.ts", |
| 145 | 145 | "apps/mobile/src/features/settings/SettingsEnvironmentsRouteScreen.tsx", |
| 146 | 146 | "apps/mobile/src/features/settings/appearance/components/AppearancePreviews.tsx", |
| 147 | "apps/mobile/src/features/settings/appearance/components/FontSizeSliderRow.tsx", | |
| 148 | 147 | "apps/mobile/src/features/threads/GitActionProgressOverlay.tsx", |
| 149 | "apps/mobile/src/features/threads/NewTaskContextPickerScreens.tsx", | |
| 150 | 148 | "apps/mobile/src/features/threads/NewTaskDraftScreen.tsx", |
| 151 | 149 | "apps/mobile/src/features/threads/ThreadComposer.tsx", |
| 152 | 150 | "apps/mobile/src/features/threads/ThreadFeed.tsx", |