summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorshuv <[email protected]>2026-01-03 03:46:42 -0800
committerGitHub <[email protected]>2026-01-03 05:46:42 -0600
commit5f93beed779d754b9e84240e21578ed3c82bee3c (patch)
treeb45489d86f5fd2f4dba15f4aa4c688d7eb933dad
parent527553ada25568f770179c20c30a721493b6cccd (diff)
downloadopencode-5f93beed779d754b9e84240e21578ed3c82bee3c.tar.gz
opencode-5f93beed779d754b9e84240e21578ed3c82bee3c.zip
feat(app): add image preview support in session viewer (#6678)
-rw-r--r--packages/app/src/pages/session.tsx14
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}