diff options
| author | shuv <[email protected]> | 2026-01-03 03:46:42 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-03 05:46:42 -0600 |
| commit | 5f93beed779d754b9e84240e21578ed3c82bee3c (patch) | |
| tree | b45489d86f5fd2f4dba15f4aa4c688d7eb933dad | |
| parent | 527553ada25568f770179c20c30a721493b6cccd (diff) | |
| download | opencode-5f93beed779d754b9e84240e21578ed3c82bee3c.tar.gz opencode-5f93beed779d754b9e84240e21578ed3c82bee3c.zip | |
feat(app): add image preview support in session viewer (#6678)
| -rw-r--r-- | packages/app/src/pages/session.tsx | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 883565dd3..97780241f 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -1151,6 +1151,15 @@ export default function Page() { }) const contents = createMemo(() => state()?.content?.content ?? "") const cacheKey = createMemo(() => checksum(contents())) + const isImage = createMemo(() => { + const c = state()?.content + return c?.encoding === "base64" && c?.mimeType?.startsWith("image/") + }) + const imageDataUrl = createMemo(() => { + if (!isImage()) return + const c = state()?.content + return `data:${c?.mimeType};base64,${c?.content}` + }) const selectedLines = createMemo(() => { const p = path() if (!p) return null @@ -1253,6 +1262,11 @@ export default function Page() { )} </Show> <Switch> + <Match when={state()?.loaded && isImage()}> + <div class="px-6 py-4 pb-40"> + <img src={imageDataUrl()} alt={path()} class="max-w-full" /> + </div> + </Match> <Match when={state()?.loaded}> <Dynamic component={codeComponent} |
