{children}
, + // Headings: more space above (1.5x) than below (0.5x) for visual grouping + h1: ({ children }: { children?: React.ReactNode }) => ( +{children}
+ ), + h2: ({ children }: { children?: React.ReactNode }) => ( +{children}
+ ), + h3: ({ children }: { children?: React.ReactNode }) => ( +{children}
+ ), + // Lists: consistent spacing with content + ul: ({ children }: { children?: React.ReactNode }) => ( +- {children}
- {children}
{children}
+ }
+ // Inline code
+ return (
+ {children}
+ )
+ },
+ pre: ({ children }: { children?: React.ReactNode }) => (
+
+ {children}
+
+ ),
+ // Links
+ a: ({ href, children }: { href?: string; children?: React.ReactNode }) => (
+
+ {children}
+
+ ),
+ // Blockquote: subtle styling
+ blockquote: ({ children }: { children?: React.ReactNode }) => (
+ + {children} ++ ), + hr: () =>
, + strong: ({ children }: { children?: React.ReactNode }) => ( + {children} + ), + em: ({ children }: { children?: React.ReactNode }) => {children}, + // Table components for GFM table support + table: ({ children }: { children?: React.ReactNode }) => ( +
{children}
, + code: ({ children }: { children?: React.ReactNode }) => ( +{children}
+ )
+}
+
interface ChatViewProps {
updates: StoredSessionUpdate[]
isProcessing: boolean
@@ -19,6 +110,8 @@ interface ChatViewProps {
isInitializing: boolean
currentSessionId: string | null
onSelectFolder?: () => void
+ /** Ref for bottom anchor - passed from parent for scroll management */
+ bottomRef?: React.RefObjectMultica
@@ -88,30 +162,28 @@ export function ChatView({ } return ( -
{children}
, - // Headings: more space above (1.5x) than below (0.5x) for visual grouping - h1: ({ children }) => ( -{children}
- ), - h2: ({ children }) => ( -{children}
- ), - h3: ({ children }) => ( -{children}
- ), - // Lists: consistent spacing with content - ul: ({ children }) => ( -- {children}
- {children}
{children}
- }
- // Inline code
- return (
-
- {children}
-
- )
- },
- pre: ({ children }) => (
-
- {children}
-
- ),
- // Links
- a: ({ href, children }) => (
-
- {children}
-
- ),
- // Blockquote: subtle styling
- blockquote: ({ children }) => (
- - {children} -- ), - hr: () =>
, - strong: ({ children }) => {children}, - em: ({ children }) => {children}, - // Table components for GFM table support - table: ({ children }) => ( -
{children}
, - code: ({ children }) => ( -
- {children}
-
- )
- }}
- >
- {text}
- {children}
, - code: ({ children }) => ( -
- {children}
-
- )
- }}
- >
- {text}
- {children}
, - code: ({ children }) => ( -
- {children}
-
- )
- }}
- >
- {text}
-