diff --git a/packages/app/src/app/_layout.tsx b/packages/app/src/app/_layout.tsx index d4c88d3ba..10616faf7 100644 --- a/packages/app/src/app/_layout.tsx +++ b/packages/app/src/app/_layout.tsx @@ -11,7 +11,8 @@ import { DaemonRegistryProvider, useDaemonRegistry } from "@/contexts/daemon-reg import { DaemonConnectionsProvider } from "@/contexts/daemon-connections-context"; import { MultiDaemonSessionHost } from "@/components/multi-daemon-session-host"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { useState, type ReactNode, useMemo } from "react"; +import { useState, useEffect, type ReactNode, useMemo } from "react"; +import { Platform } from "react-native"; import { SlidingSidebar } from "@/components/sliding-sidebar"; import { useSidebarStore } from "@/stores/sidebar-store"; import { runOnJS, interpolate, Extrapolation } from "react-native-reanimated"; @@ -46,7 +47,20 @@ interface AppContainerProps { function AppContainer({ children, selectedAgentId }: AppContainerProps) { const { theme } = useUnistyles(); - const { isOpen, open } = useSidebarStore(); + const { isOpen, open, toggle } = useSidebarStore(); + + // Cmd+B to toggle sidebar (web only) + useEffect(() => { + if (Platform.OS !== "web") return; + function handleKeyDown(event: KeyboardEvent) { + if ((event.metaKey || event.ctrlKey) && event.key === "b") { + event.preventDefault(); + toggle(); + } + } + window.addEventListener("keydown", handleKeyDown); + return () => window.removeEventListener("keydown", handleKeyDown); + }, [toggle]); const { translateX, backdropOpacity, diff --git a/packages/app/src/components/git-diff-pane.tsx b/packages/app/src/components/git-diff-pane.tsx index a3bc29e7c..6ebf8ef08 100644 --- a/packages/app/src/components/git-diff-pane.tsx +++ b/packages/app/src/components/git-diff-pane.tsx @@ -150,13 +150,21 @@ function DiffFileSection({ file, defaultExpanded = true }: DiffFileSectionProps) {isExpanded && ( - - {file.hunks.map((hunk, hunkIndex) => - hunk.lines.map((line, lineIndex) => ( - - )) - )} - + + + {file.hunks.map((hunk, hunkIndex) => + hunk.lines.map((line, lineIndex) => ( + + )) + )} + + )} ); @@ -340,6 +348,13 @@ const styles = StyleSheet.create((theme) => ({ borderTopColor: theme.colors.border, backgroundColor: "#0d1117", // GitHub dark background }, + diffContentInner: { + flexDirection: "column", + }, + linesContainer: { + alignSelf: "flex-start", + minWidth: "100%", + }, diffLineContainer: { paddingHorizontal: theme.spacing[3], paddingVertical: theme.spacing[1],