diff --git a/apps/web/src/components/ChatMarkdown.tsx b/apps/web/src/components/ChatMarkdown.tsx index 4b53f8534f..5d9fcea50a 100644 --- a/apps/web/src/components/ChatMarkdown.tsx +++ b/apps/web/src/components/ChatMarkdown.tsx @@ -211,6 +211,32 @@ function SuspenseShikiCodeBlock({ ); } + return ( + + ); +} + +interface UncachedShikiCodeBlockProps { + code: string; + language: string; + themeName: DiffThemeName; + cacheKey: string; + isStreaming: boolean; +} + +function UncachedShikiCodeBlock({ + code, + language, + themeName, + cacheKey, + isStreaming, +}: UncachedShikiCodeBlockProps) { const highlighter = use(getHighlighterPromise(language)); const highlightedHtml = useMemo(() => { try { diff --git a/apps/web/src/components/chat/MessagesTimeline.tsx b/apps/web/src/components/chat/MessagesTimeline.tsx index e4b683592e..f34c2a56ed 100644 --- a/apps/web/src/components/chat/MessagesTimeline.tsx +++ b/apps/web/src/components/chat/MessagesTimeline.tsx @@ -87,6 +87,8 @@ interface TimelineRowSharedState { } const TimelineRowCtx = createContext(null!); +const TIMELINE_LIST_HEADER =
; +const TIMELINE_LIST_FOOTER =
; // --------------------------------------------------------------------------- // Props (public API) @@ -261,8 +263,8 @@ export const MessagesTimeline = memo(function MessagesTimeline({ maintainVisibleContentPosition onScroll={handleScroll} className="h-full overflow-x-hidden overscroll-y-contain px-3 sm:px-5" - ListHeaderComponent={
} - ListFooterComponent={
} + ListHeaderComponent={TIMELINE_LIST_HEADER} + ListFooterComponent={TIMELINE_LIST_FOOTER} /> );