Skip to content

Commit 4c89b82

Browse files
committed
Open single-thread projects directly
- Navigate to the lone thread when expanding a collapsed project - Keep the project toggle behavior unchanged for multi-thread projects
1 parent 4a7fe84 commit 4c89b82

1 file changed

Lines changed: 28 additions & 2 deletions

File tree

apps/web/src/components/Sidebar.tsx

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,9 +1435,22 @@ export default function Sidebar() {
14351435
if (selectedThreadIds.size > 0) {
14361436
clearSelection();
14371437
}
1438+
// When expanding a project with exactly one thread, navigate directly to it.
1439+
const project = projects.find((p) => p.id === projectId);
1440+
if (project && !project.expanded) {
1441+
const projectThreads = threads.filter((t) => t.projectId === projectId);
1442+
if (projectThreads.length === 1) {
1443+
toggleProject(projectId);
1444+
void navigate({
1445+
to: "/$threadId",
1446+
params: { threadId: projectThreads[0]!.id },
1447+
});
1448+
return;
1449+
}
1450+
}
14381451
toggleProject(projectId);
14391452
},
1440-
[clearSelection, selectedThreadIds.size, toggleProject],
1453+
[clearSelection, navigate, projects, selectedThreadIds.size, threads, toggleProject],
14411454
);
14421455

14431456
const handleProjectTitleKeyDown = useCallback(
@@ -1447,9 +1460,22 @@ export default function Sidebar() {
14471460
if (dragInProgressRef.current) {
14481461
return;
14491462
}
1463+
// When expanding a project with exactly one thread, navigate directly to it.
1464+
const project = projects.find((p) => p.id === projectId);
1465+
if (project && !project.expanded) {
1466+
const projectThreads = threads.filter((t) => t.projectId === projectId);
1467+
if (projectThreads.length === 1) {
1468+
toggleProject(projectId);
1469+
void navigate({
1470+
to: "/$threadId",
1471+
params: { threadId: projectThreads[0]!.id },
1472+
});
1473+
return;
1474+
}
1475+
}
14501476
toggleProject(projectId);
14511477
},
1452-
[toggleProject],
1478+
[navigate, projects, threads, toggleProject],
14531479
);
14541480

14551481
useEffect(() => {

0 commit comments

Comments
 (0)