From 5005898468d5076503cc99535287d493effe8ad7 Mon Sep 17 00:00:00 2001 From: LukeParkerDev <10430890+Hona@users.noreply.github.com> Date: Thu, 6 Aug 2026 13:19:06 +1000 Subject: [PATCH] fix(app): support fallback local workspace state when draft id is absent --- packages/app/src/pages/new-session.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/app/src/pages/new-session.tsx b/packages/app/src/pages/new-session.tsx index 8ceced9e840..0bf9d0a8533 100644 --- a/packages/app/src/pages/new-session.tsx +++ b/packages/app/src/pages/new-session.tsx @@ -4,7 +4,7 @@ import { useTitlebarRightMount } from "@/components/titlebar" import { useSettings } from "@/context/settings" import { useTabs, type DraftTab } from "@/context/tabs" import { useSearchParams } from "@solidjs/router" -import { createEffect, createMemo, createResource } from "solid-js" +import { createEffect, createMemo, createResource, createSignal } from "solid-js" import { createNewSessionDraftController } from "./new-session/new-session-draft-controller" import { NewSessionStatus, NewSessionView } from "./new-session/new-session-view" import { createNewSessionWorkspaceController } from "./new-session/new-session-workspace-controller" @@ -17,13 +17,18 @@ export default function NewSessionPage() { const [search] = useSearchParams<{ draftId?: string }>() const tabs = useTabs() const openWorkspaces = useSettingsDialog("workspaces") + const [localWorktree, setLocalWorktree] = createSignal() const draftTab = createMemo(() => tabs.store.find((tab): tab is DraftTab => tab.type === "draft" && tab.draftID === search.draftId), ) const workspace = createNewSessionWorkspaceController({ - selected: () => draftTab()?.worktree, + selected: () => (search.draftId ? draftTab()?.worktree : localWorktree()), setSelected: (worktree) => { - if (search.draftId) tabs.updateDraft(search.draftId, { worktree }) + if (search.draftId) { + tabs.updateDraft(search.draftId, { worktree }) + return + } + setLocalWorktree(worktree) }, onViewAll: openWorkspaces, })