fix(ui): render selected session diff payload

Pass the selected diff object through Solid's Show so MonacoDiffViewer receives before/after content.
This commit is contained in:
Shantur Rathore
2026-02-11 12:31:09 +00:00
parent 5bfb09c73b
commit d7c4bf1e45

View File

@@ -68,16 +68,6 @@ const ChangesTab: Component<ChangesTabProps> = (props) => {
const scopeKey = `${props.instanceId}:${hasSession ? sessionId : "no-session"}` const scopeKey = `${props.instanceId}:${hasSession ? sessionId : "no-session"}`
const isBinaryDiff = (item: any) => {
const before = typeof item?.before === "string" ? item.before : ""
const after = typeof item?.after === "string" ? item.after : ""
if (before.length === 0 && after.length === 0) {
// OpenCode stores empty before/after for binaries.
return true
}
return false
}
const emptyViewerMessage = () => { const emptyViewerMessage = () => {
if (!hasSession) return props.t("instanceShell.sessionChanges.noSessionSelected") if (!hasSession) return props.t("instanceShell.sessionChanges.noSessionSelected")
if (diffs === undefined) return props.t("instanceShell.sessionChanges.loading") if (diffs === undefined) return props.t("instanceShell.sessionChanges.loading")
@@ -97,7 +87,7 @@ const ChangesTab: Component<ChangesTabProps> = (props) => {
</div> </div>
<div class="file-viewer-content file-viewer-content--monaco"> <div class="file-viewer-content file-viewer-content--monaco">
<Show <Show
when={selectedFileData && hasSession && Array.isArray(diffs) && diffs.length > 0} when={selectedFileData && hasSession && Array.isArray(diffs) && diffs.length > 0 ? selectedFileData : null}
fallback={ fallback={
<div class="file-viewer-empty"> <div class="file-viewer-empty">
<span class="file-viewer-empty-text">{emptyViewerMessage()}</span> <span class="file-viewer-empty-text">{emptyViewerMessage()}</span>
@@ -105,23 +95,14 @@ const ChangesTab: Component<ChangesTabProps> = (props) => {
} }
> >
{(file) => ( {(file) => (
<Show <MonacoDiffViewer
when={!isBinaryDiff(file())} scopeKey={scopeKey}
fallback={ path={String(file().file || "")}
<div class="file-viewer-empty"> before={String((file() as any).before || "")}
<span class="file-viewer-empty-text">Binary file cannot be displayed</span> after={String((file() as any).after || "")}
</div> viewMode={props.diffViewMode()}
} contextMode={props.diffContextMode()}
> />
<MonacoDiffViewer
scopeKey={scopeKey}
path={String(file().file || "")}
before={String((file() as any).before || "")}
after={String((file() as any).after || "")}
viewMode={props.diffViewMode()}
contextMode={props.diffContextMode()}
/>
</Show>
)} )}
</Show> </Show>
</div> </div>