summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/context
diff options
context:
space:
mode:
Diffstat (limited to 'packages/desktop/src/context')
-rw-r--r--packages/desktop/src/context/layout.tsx13
-rw-r--r--packages/desktop/src/context/local.tsx3
2 files changed, 10 insertions, 6 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)
},