authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-09-08 14:40:54-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-08 14:40:54-07:00
logde545c41737aca08359244b7778ab52e55934f17
tree269217a8e2263eee6c0b0a5d4a5306c246d956db
parent3faeee49ac67dfd9534369f1e1c627c0356b75ac
signature Signed by PGP key B5690EEEBB952194

fix(web): stop the bar under the composer popping in after threads load (#10727)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

3 files changed, 6 insertions(+), 8 deletions(-)

apps/web/src/components/BranchToolbar.tsx+2-2
...@@ -12,7 +12,7 @@ import { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useStat...@@ -12,7 +12,7 @@ import { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useStat
1212
13import { useComposerDraftStore, type DraftId } from "../composerDraftStore";13import { useComposerDraftStore, type DraftId } from "../composerDraftStore";
14import { EnvironmentMachineIcon } from "./EnvironmentMachineIcon";14import { EnvironmentMachineIcon } from "./EnvironmentMachineIcon";
15import { useProject, useThread, useThreadShellsForProjectRefs } from "../state/entities";15import { useProject, useThreadShell, useThreadShellsForProjectRefs } from "../state/entities";
16import {16import {
17 type EnvMode,17 type EnvMode,
18 type EnvironmentOption,18 type EnvironmentOption,
...@@ -465,7 +465,7 @@ export const BranchToolbar = memo(function BranchToolbar({...@@ -465,7 +465,7 @@ export const BranchToolbar = memo(function BranchToolbar({
465 const draftThread = useComposerDraftStore((store) =>465 const draftThread = useComposerDraftStore((store) =>
466 draftId ? store.getDraftSession(draftId) : store.getDraftThreadByRef(threadRef),466 draftId ? store.getDraftSession(draftId) : store.getDraftThreadByRef(threadRef),
467 );467 );
468 const serverThread = useThread(threadRef, { waitForShell: draftThread !== null });468 const serverThread = useThreadShell(threadRef);
469 const setDraftThreadContext = useComposerDraftStore((store) => store.setDraftThreadContext);469 const setDraftThreadContext = useComposerDraftStore((store) => store.setDraftThreadContext);
470 const activeProjectRef = serverThread470 const activeProjectRef = serverThread
471 ? scopeProjectRef(serverThread.environmentId, serverThread.projectId)471 ? scopeProjectRef(serverThread.environmentId, serverThread.projectId)
apps/web/src/components/BranchToolbarBranchSelector.tsx+2-2
...@@ -27,7 +27,7 @@ import { readLocalApi } from "../localApi";...@@ -27,7 +27,7 @@ import { readLocalApi } from "../localApi";
27import { useOpenPrLink } from "../lib/openPullRequestLink";27import { useOpenPrLink } from "../lib/openPullRequestLink";
28import { shouldLoadNextBranchPageAfterScroll } from "../state/paginatedBranches";28import { shouldLoadNextBranchPageAfterScroll } from "../state/paginatedBranches";
29import { usePaginatedBranches } from "../state/queries";29import { usePaginatedBranches } from "../state/queries";
30import { useProject, useThread } from "../state/entities";30import { useProject, useThreadShell } from "../state/entities";
31import { useEnvironmentQuery } from "../state/query";31import { useEnvironmentQuery } from "../state/query";
32import { threadEnvironment } from "../state/threads";32import { threadEnvironment } from "../state/threads";
33import { useAtomCommand } from "../state/use-atom-command";33import { useAtomCommand } from "../state/use-atom-command";
...@@ -119,7 +119,7 @@ export function BranchToolbarBranchSelector({...@@ -119,7 +119,7 @@ export function BranchToolbarBranchSelector({
119 const draftThread = useComposerDraftStore((store) =>119 const draftThread = useComposerDraftStore((store) =>
120 draftId ? store.getDraftSession(draftId) : store.getDraftThreadByRef(threadRef),120 draftId ? store.getDraftSession(draftId) : store.getDraftThreadByRef(threadRef),
121 );121 );
122 const serverThread = useThread(threadRef, { waitForShell: draftThread !== null });122 const serverThread = useThreadShell(threadRef);
123 const serverSession = serverThread?.session ?? null;123 const serverSession = serverThread?.session ?? null;
124 const setDraftThreadContext = useComposerDraftStore((store) => store.setDraftThreadContext);124 const setDraftThreadContext = useComposerDraftStore((store) => store.setDraftThreadContext);
125125
apps/web/src/components/GitActionsControl.tsx+2-4
...@@ -87,7 +87,7 @@ import {...@@ -87,7 +87,7 @@ import {
87 useVcsInitAction,87 useVcsInitAction,
88 useVcsPullAction,88 useVcsPullAction,
89} from "~/lib/sourceControlActions";89} from "~/lib/sourceControlActions";
90import { useThread } from "~/state/entities";90import { useThreadShell } from "~/state/entities";
91import { useEnvironmentQuery } from "~/state/query";91import { useEnvironmentQuery } from "~/state/query";
92import { serverEnvironment } from "~/state/server";92import { serverEnvironment } from "~/state/server";
93import { sourceControlEnvironment } from "~/state/sourceControl";93import { sourceControlEnvironment } from "~/state/sourceControl";
...@@ -950,9 +950,7 @@ export default function GitActionsControl({...@@ -950,9 +950,7 @@ export default function GitActionsControl({
950 ? store.getDraftThreadByRef(activeThreadRef)950 ? store.getDraftThreadByRef(activeThreadRef)
951 : null,951 : null,
952 );952 );
953 const activeServerThread = useThread(activeThreadRef, {953 const activeServerThread = useThreadShell(activeThreadRef);
954 waitForShell: activeDraftThread !== null,
955 });
956 const setDraftThreadContext = useComposerDraftStore((store) => store.setDraftThreadContext);954 const setDraftThreadContext = useComposerDraftStore((store) => store.setDraftThreadContext);
957 const [isCommitDialogOpen, setIsCommitDialogOpen] = useState(false);955 const [isCommitDialogOpen, setIsCommitDialogOpen] = useState(false);
958 const [dialogCommitMessage, setDialogCommitMessage] = useState("");956 const [dialogCommitMessage, setDialogCommitMessage] = useState("");