fix: defer timeline diff rendering

This commit is contained in:
LukeParkerDev
2026-05-14 09:59:28 +10:00
parent 0d57ecd879
commit 3fd1bddca1

View File

@@ -360,7 +360,6 @@ function TimelineThinkingRow(props: { reasoningHeading?: string; showReasoningSu
function TimelineDiffSummaryRow(props: { diffs: SummaryDiff[] }) {
const language = useLanguage()
const fileComponent = useFileComponent()
const maxFiles = 10
const [state, setState] = createStore({
showAll: false,
@@ -394,7 +393,7 @@ function TimelineDiffSummaryRow(props: { diffs: SummaryDiff[] }) {
>
<For each={visible()}>
{(diff) => {
const view = normalize(diff)
const opened = createMemo(() => expanded().includes(diff.file))
return (
<Accordion.Item value={diff.file}>
@@ -419,9 +418,9 @@ function TimelineDiffSummaryRow(props: { diffs: SummaryDiff[] }) {
</Accordion.Trigger>
</StickyAccordionHeader>
<Accordion.Content>
<div data-slot="session-turn-diff-view" data-scrollable>
<Dynamic component={fileComponent} mode="diff" fileDiff={view.fileDiff} />
</div>
<Show when={opened()}>
<TimelineDiffView diff={diff} />
</Show>
</Accordion.Content>
</Accordion.Item>
)
@@ -438,6 +437,17 @@ function TimelineDiffSummaryRow(props: { diffs: SummaryDiff[] }) {
)
}
function TimelineDiffView(props: { diff: SummaryDiff }) {
const fileComponent = useFileComponent()
const view = normalize(props.diff)
return (
<div data-slot="session-turn-diff-view" data-scrollable>
<Dynamic component={fileComponent} mode="diff" fileDiff={view.fileDiff} />
</div>
)
}
export function MessageTimeline(props: {
mobileChanges: boolean
mobileFallback: JSX.Element