summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-05 08:42:50 -0600
committerAdam <[email protected]>2026-03-05 08:42:50 -0600
commit7665b8e30def396059516ef6d870830baa1faedd (patch)
tree0f0261b66bc0547e48787c6fe2c744401a4bb0f8 /packages/app/src
parenta3d4ea0de17ec208d73d27fdfe2f9a226db902f1 (diff)
downloadopencode-7665b8e30def396059516ef6d870830baa1faedd.tar.gz
opencode-7665b8e30def396059516ef6d870830baa1faedd.zip
fix(app): stale keyed show errors
Diffstat (limited to 'packages/app/src')
-rw-r--r--packages/app/src/pages/session/message-timeline.tsx6
-rw-r--r--packages/app/src/pages/session/session-side-panel.tsx4
-rw-r--r--packages/app/src/pages/session/terminal-panel.tsx16
3 files changed, 14 insertions, 12 deletions
diff --git a/packages/app/src/pages/session/message-timeline.tsx b/packages/app/src/pages/session/message-timeline.tsx
index 433c36e2e..7a3b72ae4 100644
--- a/packages/app/src/pages/session/message-timeline.tsx
+++ b/packages/app/src/pages/session/message-timeline.tsx
@@ -611,7 +611,7 @@ export function MessageTimeline(props: {
</Show>
</Show>
</div>
- <Show when={sessionID()}>
+ <Show when={sessionID()} keyed>
{(id) => (
<div class="shrink-0 flex items-center gap-3">
<SessionContextUsage placement="bottom" />
@@ -646,12 +646,12 @@ export function MessageTimeline(props: {
>
<DropdownMenu.ItemLabel>{language.t("common.rename")}</DropdownMenu.ItemLabel>
</DropdownMenu.Item>
- <DropdownMenu.Item onSelect={() => void archiveSession(id())}>
+ <DropdownMenu.Item onSelect={() => void archiveSession(id)}>
<DropdownMenu.ItemLabel>{language.t("common.archive")}</DropdownMenu.ItemLabel>
</DropdownMenu.Item>
<DropdownMenu.Separator />
<DropdownMenu.Item
- onSelect={() => dialog.show(() => <DialogDeleteSession sessionID={id()} />)}
+ onSelect={() => dialog.show(() => <DialogDeleteSession sessionID={id} />)}
>
<DropdownMenu.ItemLabel>{language.t("common.delete")}</DropdownMenu.ItemLabel>
</DropdownMenu.Item>
diff --git a/packages/app/src/pages/session/session-side-panel.tsx b/packages/app/src/pages/session/session-side-panel.tsx
index ad802d15d..55c1607a0 100644
--- a/packages/app/src/pages/session/session-side-panel.tsx
+++ b/packages/app/src/pages/session/session-side-panel.tsx
@@ -331,7 +331,9 @@ export function SessionSidePanel(props: {
const path = createMemo(() => file.pathFromTab(tab))
return (
<div data-component="tabs-drag-preview">
- <Show when={path()}>{(p) => <FileVisual active path={p()} />}</Show>
+ <Show when={path()} keyed>
+ {(p) => <FileVisual active path={p} />}
+ </Show>
</div>
)
}}
diff --git a/packages/app/src/pages/session/terminal-panel.tsx b/packages/app/src/pages/session/terminal-panel.tsx
index cc4c17ee2..c8bfc1405 100644
--- a/packages/app/src/pages/session/terminal-panel.tsx
+++ b/packages/app/src/pages/session/terminal-panel.tsx
@@ -191,8 +191,8 @@ export function TerminalPanel() {
<SortableProvider ids={ids()}>
<For each={ids()}>
{(id) => (
- <Show when={byId().get(id)}>
- {(pty) => <SortableTerminalTab terminal={pty()} onClose={close} />}
+ <Show when={byId().get(id)} keyed>
+ {(pty) => <SortableTerminalTab terminal={pty} onClose={close} />}
</Show>
)}
</For>
@@ -217,10 +217,10 @@ export function TerminalPanel() {
<div class="flex-1 min-h-0 relative">
<Show when={terminal.active()} keyed>
{(id) => (
- <Show when={byId().get(id)}>
+ <Show when={byId().get(id)} keyed>
{(pty) => (
<div id={`terminal-wrapper-${id}`} class="absolute inset-0">
- <Terminal pty={pty()} onCleanup={terminal.update} onConnectError={() => terminal.clone(id)} />
+ <Terminal pty={pty} onCleanup={terminal.update} onConnectError={() => terminal.clone(id)} />
</div>
)}
</Show>
@@ -229,14 +229,14 @@ export function TerminalPanel() {
</div>
</div>
<DragOverlay>
- <Show when={store.activeDraggable}>
+ <Show when={store.activeDraggable} keyed>
{(draggedId) => (
- <Show when={byId().get(draggedId())}>
+ <Show when={byId().get(draggedId)} keyed>
{(t) => (
<div class="relative p-1 h-10 flex items-center bg-background-stronger text-14-regular">
{terminalTabLabel({
- title: t().title,
- titleNumber: t().titleNumber,
+ title: t.title,
+ titleNumber: t.titleNumber,
t: language.t as (key: string, vars?: Record<string, string | number | boolean>) => string,
})}
</div>