Skip to content

Commit 41bc4ec

Browse files
authored
fix(desktop): Refresh file contents when changing workspaces to not have stale contents (anomalyco#11728)
1 parent 9120989 commit 41bc4ec

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

packages/app/src/context/file.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { getFilename } from "@opencode-ai/util/path"
88
import { useSDK } from "./sdk"
99
import { useSync } from "./sync"
1010
import { useLanguage } from "@/context/language"
11+
import { decode64 } from "@/utils/base64"
1112
import { Persist, persisted } from "@/utils/persist"
1213

1314
export type FileSelection = {
@@ -275,9 +276,9 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
275276
const params = useParams()
276277
const language = useLanguage()
277278

278-
const scope = createMemo(() => sdk.directory)
279+
const directory = createMemo(() => decode64(params.dir) ?? sdk.directory)
279280

280-
const directory = createMemo(() => sync.data.path.directory)
281+
const scope = createMemo(() => directory())
281282

282283
function normalize(input: string) {
283284
const root = directory()
@@ -414,7 +415,7 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
414415
return entry.value
415416
}
416417

417-
const view = createMemo(() => loadView(params.dir!, params.id))
418+
const view = createMemo(() => loadView(directory(), params.id))
418419

419420
function ensure(path: string) {
420421
if (!path) return

packages/app/src/pages/session.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1670,6 +1670,22 @@ export default function Page() {
16701670
void (refresh ? file.tree.refresh("") : file.tree.list(""))
16711671
})
16721672

1673+
createEffect(
1674+
on(
1675+
() => params.dir,
1676+
() => {
1677+
void file.tree.list("")
1678+
1679+
const active = tabs().active()
1680+
if (!active) return
1681+
const path = file.pathFromTab(active)
1682+
if (!path) return
1683+
void file.load(path, { force: true })
1684+
},
1685+
{ defer: true },
1686+
),
1687+
)
1688+
16731689
const autoScroll = createAutoScroll({
16741690
working: () => true,
16751691
overflowAnchor: "dynamic",

0 commit comments

Comments
 (0)