summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages/session
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-12 15:04:27 -0500
committerAdam <[email protected]>2026-03-12 15:04:27 -0500
commitf0542fae7a917fabb9e943c3112a3d0b4b03302d (patch)
tree58bf65d9becf087a10efe33b27a5497f5475dee5 /packages/app/src/pages/session
parent02c75821a897657a3512ad157e9666a830b76253 (diff)
downloadopencode-f0542fae7a917fabb9e943c3112a3d0b4b03302d.tar.gz
opencode-f0542fae7a917fabb9e943c3112a3d0b4b03302d.zip
fix(app): optimistic revert/restore
Diffstat (limited to 'packages/app/src/pages/session')
-rw-r--r--packages/app/src/pages/session/composer/session-composer-region.tsx9
-rw-r--r--packages/app/src/pages/session/composer/session-revert-dock.tsx13
2 files changed, 18 insertions, 4 deletions
diff --git a/packages/app/src/pages/session/composer/session-composer-region.tsx b/packages/app/src/pages/session/composer/session-composer-region.tsx
index 6d60d81b5..0cca90180 100644
--- a/packages/app/src/pages/session/composer/session-composer-region.tsx
+++ b/packages/app/src/pages/session/composer/session-composer-region.tsx
@@ -24,6 +24,7 @@ export function SessionComposerRegion(props: {
revert?: {
items: { id: string; text: string }[]
restoring?: string
+ disabled?: boolean
onRestore: (id: string) => void
}
setPromptDockRef: (el: HTMLDivElement) => void
@@ -156,6 +157,7 @@ export function SessionComposerRegion(props: {
<SessionRevertDock
items={revert.items}
restoring={revert.restoring}
+ disabled={revert.disabled}
onRestore={revert.onRestore}
/>
</div>
@@ -195,7 +197,12 @@ export function SessionComposerRegion(props: {
"margin-top": `${-36 * value()}px`,
}}
>
- <SessionRevertDock items={revert.items} restoring={revert.restoring} onRestore={revert.onRestore} />
+ <SessionRevertDock
+ items={revert.items}
+ restoring={revert.restoring}
+ disabled={revert.disabled}
+ onRestore={revert.onRestore}
+ />
</div>
)}
</Show>
diff --git a/packages/app/src/pages/session/composer/session-revert-dock.tsx b/packages/app/src/pages/session/composer/session-revert-dock.tsx
index ce7644b67..fd4b39ee7 100644
--- a/packages/app/src/pages/session/composer/session-revert-dock.tsx
+++ b/packages/app/src/pages/session/composer/session-revert-dock.tsx
@@ -1,4 +1,4 @@
-import { For, Show, createMemo } from "solid-js"
+import { For, Show, createEffect, createMemo } from "solid-js"
import { createStore } from "solid-js/store"
import { Button } from "@opencode-ai/ui/button"
import { DockTray } from "@opencode-ai/ui/dock-surface"
@@ -8,11 +8,18 @@ import { useLanguage } from "@/context/language"
export function SessionRevertDock(props: {
items: { id: string; text: string }[]
restoring?: string
+ disabled?: boolean
onRestore: (id: string) => void
}) {
const language = useLanguage()
const [store, setStore] = createStore({
- collapsed: false,
+ collapsed: true,
+ })
+
+ createEffect(() => {
+ props.items.length
+ props.items[0]?.id
+ setStore("collapsed", true)
})
const toggle = () => setStore("collapsed", (value) => !value)
@@ -77,7 +84,7 @@ export function SessionRevertDock(props: {
size="small"
variant="secondary"
class="shrink-0"
- disabled={!!props.restoring}
+ disabled={props.disabled || !!props.restoring}
onClick={() => props.onRestore(item.id)}
>
{language.t("session.revertDock.restore")}