fix(desktop): Refresh file contents when changing workspaces to not have stale contents (#11728)
This commit is contained in:
@@ -8,6 +8,7 @@ import { getFilename } from "@opencode-ai/util/path"
|
|||||||
import { useSDK } from "./sdk"
|
import { useSDK } from "./sdk"
|
||||||
import { useSync } from "./sync"
|
import { useSync } from "./sync"
|
||||||
import { useLanguage } from "@/context/language"
|
import { useLanguage } from "@/context/language"
|
||||||
|
import { decode64 } from "@/utils/base64"
|
||||||
import { Persist, persisted } from "@/utils/persist"
|
import { Persist, persisted } from "@/utils/persist"
|
||||||
|
|
||||||
export type FileSelection = {
|
export type FileSelection = {
|
||||||
@@ -275,9 +276,9 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
|
|||||||
const params = useParams()
|
const params = useParams()
|
||||||
const language = useLanguage()
|
const language = useLanguage()
|
||||||
|
|
||||||
const scope = createMemo(() => sdk.directory)
|
const directory = createMemo(() => decode64(params.dir) ?? sdk.directory)
|
||||||
|
|
||||||
const directory = createMemo(() => sync.data.path.directory)
|
const scope = createMemo(() => directory())
|
||||||
|
|
||||||
function normalize(input: string) {
|
function normalize(input: string) {
|
||||||
const root = directory()
|
const root = directory()
|
||||||
@@ -414,7 +415,7 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
|
|||||||
return entry.value
|
return entry.value
|
||||||
}
|
}
|
||||||
|
|
||||||
const view = createMemo(() => loadView(params.dir!, params.id))
|
const view = createMemo(() => loadView(directory(), params.id))
|
||||||
|
|
||||||
function ensure(path: string) {
|
function ensure(path: string) {
|
||||||
if (!path) return
|
if (!path) return
|
||||||
|
|||||||
@@ -1670,6 +1670,22 @@ export default function Page() {
|
|||||||
void (refresh ? file.tree.refresh("") : file.tree.list(""))
|
void (refresh ? file.tree.refresh("") : file.tree.list(""))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
createEffect(
|
||||||
|
on(
|
||||||
|
() => params.dir,
|
||||||
|
() => {
|
||||||
|
void file.tree.list("")
|
||||||
|
|
||||||
|
const active = tabs().active()
|
||||||
|
if (!active) return
|
||||||
|
const path = file.pathFromTab(active)
|
||||||
|
if (!path) return
|
||||||
|
void file.load(path, { force: true })
|
||||||
|
},
|
||||||
|
{ defer: true },
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
const autoScroll = createAutoScroll({
|
const autoScroll = createAutoScroll({
|
||||||
working: () => true,
|
working: () => true,
|
||||||
overflowAnchor: "dynamic",
|
overflowAnchor: "dynamic",
|
||||||
|
|||||||
Reference in New Issue
Block a user