authorgravatar for 78961478+murataslan1@users.noreply.github.comMurat Aslan <78961478+murataslan1@users.noreply.github.com> 2026-04-30 21:10:37+03:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-04-30 11:10:37-07:00
loga4298f1ceb13dc496bd20eb5372ae691dbd3ca62
tree7366002301174c03b300affc5a080c2faf8b6fe0
parent86c94b48522b279ca411067529dc89a9aca8ee7b
signature Signed by PGP key B5690EEEBB952194

fix(web): hide mobile sidebar after thread selection or creation (#1293)

Co-authored-by: Murat Aslan <murataslan1@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>

1 files changed, 27 insertions(+), 4 deletions(-)

apps/web/src/components/Sidebar.tsx+27-4
......@@ -143,6 +143,7 @@ import {
143143 SidebarMenuSubItem,
144144 SidebarSeparator,
145145 SidebarTrigger,
146 useSidebar,
146147} from "./ui/sidebar";
147148import { useThreadSelectionStore } from "../threadSelectionStore";
148149import { useCommandPaletteStore } from "../commandPaletteStore";
......@@ -931,6 +932,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec
931932 }));
932933 const { updateSettings } = useUpdateSettings();
933934 const router = useRouter();
935 const { isMobile, setOpenMobile } = useSidebar();
934936 const markThreadUnread = useUiStateStore((state) => state.markThreadUnread);
935937 const toggleProject = useUiStateStore((state) => state.toggleProject);
936938 const toggleThreadSelection = useThreadSelectionStore((state) => state.toggleThread);
......@@ -1519,12 +1521,15 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec
15191521 clearSelection();
15201522 }
15211523 setSelectionAnchor(scopedThreadKey(threadRef));
1524 if (isMobile) {
1525 setOpenMobile(false);
1526 }
15221527 void router.navigate({
15231528 to: "/$environmentId/$threadId",
15241529 params: buildThreadRouteParams(threadRef),
15251530 });
15261531 },
1527 [clearSelection, router, setSelectionAnchor],
1532 [clearSelection, isMobile, router, setOpenMobile, setSelectionAnchor],
15281533 );
15291534
15301535 const handleThreadClick = useCallback(
......@@ -1555,12 +1560,23 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec
15551560 clearSelection();
15561561 }
15571562 setSelectionAnchor(threadKey);
1563 if (isMobile) {
1564 setOpenMobile(false);
1565 }
15581566 void router.navigate({
15591567 to: "/$environmentId/$threadId",
15601568 params: buildThreadRouteParams(threadRef),
15611569 });
15621570 },
1563 [clearSelection, rangeSelectTo, router, setSelectionAnchor, toggleThreadSelection],
1571 [
1572 clearSelection,
1573 isMobile,
1574 rangeSelectTo,
1575 router,
1576 setOpenMobile,
1577 setSelectionAnchor,
1578 toggleThreadSelection,
1579 ],
15641580 );
15651581
15661582 const handleMultiSelectContextMenu = useCallback(
......@@ -1658,6 +1674,9 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec
16581674 }
16591675 : null,
16601676 });
1677 if (isMobile) {
1678 setOpenMobile(false);
1679 }
16611680 void handleNewThread(scopeProjectRef(member.environmentId, member.id), {
16621681 ...(seedContext.branch !== undefined ? { branch: seedContext.branch } : {}),
16631682 ...(seedContext.worktreePath !== undefined
......@@ -1666,7 +1685,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec
16661685 envMode: seedContext.envMode,
16671686 });
16681687 },
1669 [defaultThreadEnvMode, handleNewThread, router],
1688 [defaultThreadEnvMode, handleNewThread, isMobile, router, setOpenMobile],
16701689 );
16711690
16721691 const handleCreateThreadClick = useCallback(
......@@ -2703,6 +2722,7 @@ export default function Sidebar() {
27032722 const { updateSettings } = useUpdateSettings();
27042723 const { handleNewThread } = useNewThreadHandler();
27052724 const { archiveThread, deleteThread } = useThreadActions();
2725 const { isMobile, setOpenMobile } = useSidebar();
27062726 const routeThreadRef = useParams({
27072727 strict: false,
27082728 select: (params) => resolveThreadRouteRef(params),
......@@ -2855,12 +2875,15 @@ export default function Sidebar() {
28552875 clearSelection();
28562876 }
28572877 setSelectionAnchor(scopedThreadKey(threadRef));
2878 if (isMobile) {
2879 setOpenMobile(false);
2880 }
28582881 void navigate({
28592882 to: "/$environmentId/$threadId",
28602883 params: buildThreadRouteParams(threadRef),
28612884 });
28622885 },
2863 [clearSelection, navigate, setSelectionAnchor],
2886 [clearSelection, isMobile, navigate, setOpenMobile, setSelectionAnchor],
28642887 );
28652888
28662889 const projectDnDSensors = useSensors(