summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/app/src/context/file.tsx7
-rw-r--r--packages/app/src/pages/session.tsx16
2 files changed, 20 insertions, 3 deletions
diff --git a/packages/app/src/context/file.tsx b/packages/app/src/context/file.tsx
index 7509334ed..d05e1ee2a 100644
--- a/packages/app/src/context/file.tsx
+++ b/packages/app/src/context/file.tsx
@@ -8,6 +8,7 @@ import { getFilename } from "@opencode-ai/util/path"
import { useSDK } from "./sdk"
import { useSync } from "./sync"
import { useLanguage } from "@/context/language"
+import { decode64 } from "@/utils/base64"
import { Persist, persisted } from "@/utils/persist"
export type FileSelection = {
@@ -275,9 +276,9 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
const params = useParams()
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) {
const root = directory()
@@ -414,7 +415,7 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
return entry.value
}
- const view = createMemo(() => loadView(params.dir!, params.id))
+ const view = createMemo(() => loadView(directory(), params.id))
function ensure(path: string) {
if (!path) return
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 7f005c56e..3fa71244b 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -1670,6 +1670,22 @@ export default function Page() {
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({
working: () => true,
overflowAnchor: "dynamic",