diff options
| author | Adam <[email protected]> | 2025-12-19 14:38:25 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-20 04:25:16 -0600 |
| commit | 742cf10deeffb31292cdbf8a5ca7afb07698d9dc (patch) | |
| tree | c3f6f7269527bae0c1f4cdea2bc3a7ebd37cdfe2 /packages/desktop | |
| parent | 7664453f947f736ccf4710e90bae4ac24511decc (diff) | |
| download | opencode-742cf10deeffb31292cdbf8a5ca7afb07698d9dc.tar.gz opencode-742cf10deeffb31292cdbf8a5ca7afb07698d9dc.zip | |
fix(desktop): removed projects
Diffstat (limited to 'packages/desktop')
| -rw-r--r-- | packages/desktop/src/context/layout.tsx | 13 | ||||
| -rw-r--r-- | packages/desktop/src/context/local.tsx | 3 | ||||
| -rw-r--r-- | packages/desktop/src/pages/layout.tsx | 2 |
3 files changed, 11 insertions, 7 deletions
diff --git a/packages/desktop/src/context/layout.tsx b/packages/desktop/src/context/layout.tsx index 01e0bdf52..b30d3f350 100644 --- a/packages/desktop/src/context/layout.tsx +++ b/packages/desktop/src/context/layout.tsx @@ -61,21 +61,22 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( function enrich(project: { worktree: string; expanded: boolean }) { const metadata = globalSync.data.project.find((x) => x.worktree === project.worktree) - if (!metadata) return [] return [ { ...project, - ...metadata, + ...(metadata ?? {}), }, ] } - function colorize(project: Project & { expanded: boolean }) { + function colorize(project: Partial<Project> & { worktree: string; expanded: boolean }) { if (project.icon?.color) return project const color = pickAvailableColor() usedColors.add(color) project.icon = { ...project.icon, color } - globalSdk.client.project.update({ projectID: project.id, icon: { color } }) + if (project.id) { + globalSdk.client.project.update({ projectID: project.id, icon: { color } }) + } return project } @@ -95,7 +96,9 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( projects: { list, open(directory: string) { - if (store.projects.find((x) => x.worktree === directory)) return + if (store.projects.find((x) => x.worktree === directory)) { + return + } globalSync.project.loadSessions(directory) setStore("projects", (x) => [{ worktree: directory, expanded: true }, ...x]) }, diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx index 2ea4de524..f56973835 100644 --- a/packages/desktop/src/context/local.tsx +++ b/packages/desktop/src/context/local.tsx @@ -337,6 +337,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ const load = async (path: string) => { const relativePath = relative(path) await sdk.client.file.read({ path: relativePath }).then((x) => { + if (!store.node[relativePath]) return setStore( "node", relativePath, @@ -425,7 +426,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ init, expand(path: string) { setStore("node", path, "expanded", true) - if (store.node[path].loaded) return + if (store.node[path]?.loaded) return setStore("node", path, "loaded", true) list(path) }, diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx index 626bceb22..6272071f9 100644 --- a/packages/desktop/src/pages/layout.tsx +++ b/packages/desktop/src/pages/layout.tsx @@ -517,7 +517,7 @@ export default function Layout(props: ParentProps) { ) } - const SortableProject = (props: { project: Project & { expanded: boolean } }): JSX.Element => { + const SortableProject = (props: { project: Project & { worktree: string; expanded: boolean } }): JSX.Element => { const sortable = createSortable(props.project.worktree) const slug = createMemo(() => base64Encode(props.project.worktree)) const name = createMemo(() => getFilename(props.project.worktree)) |
