Skip to content
This repository was archived by the owner on Aug 6, 2026. It is now read-only.

Commit aa45fd1

Browse files
authored
fix(sidebar): show created task immediately (#1908)
Closes https://github.com/PostHog/code/issues/1820
1 parent c523435 commit aa45fd1

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

‎apps/code/src/renderer/features/sidebar/hooks/useSidebarData.ts‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { useArchivedTaskIds } from "@features/archive/hooks/useArchivedTaskIds";
2+
import { useProvisioningStore } from "@features/provisioning/stores/provisioningStore";
23
import { useSessions } from "@features/sessions/stores/sessionStore";
34
import { useSuspendedTaskIds } from "@features/suspension/hooks/useSuspendedTaskIds";
45
import { useTasks } from "@features/tasks/hooks/useTasks";
@@ -85,15 +86,18 @@ export function useSidebarData({
8586
const { data: workspaces, isFetched: isWorkspacesFetched } = useWorkspaces();
8687
const archivedTaskIds = useArchivedTaskIds();
8788
const suspendedTaskIds = useSuspendedTaskIds();
89+
const provisioningTaskIds = useProvisioningStore((s) => s.activeTasks);
8890
const isLoading = !isTasksFetched || !isWorkspacesFetched;
8991
const allTasks = useMemo(
9092
() =>
9193
rawTasks.filter(
9294
(task) =>
9395
!archivedTaskIds.has(task.id) &&
94-
(showAllUsers || !!workspaces?.[task.id]),
96+
(showAllUsers ||
97+
!!workspaces?.[task.id] ||
98+
provisioningTaskIds.has(task.id)),
9599
),
96-
[rawTasks, archivedTaskIds, workspaces, showAllUsers],
100+
[rawTasks, archivedTaskIds, workspaces, showAllUsers, provisioningTaskIds],
97101
);
98102
const sessions = useSessions();
99103
const { timestamps } = useTaskViewed();

‎apps/code/src/renderer/features/tasks/hooks/useTasks.ts‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,16 @@ export function useCreateTask() {
5151
const queryClient = useQueryClient();
5252

5353
const invalidateTasks = (newTask?: Task) => {
54-
// If a new task is provided, add it to cache immediately for instant UI update
5554
if (newTask) {
56-
queryClient.setQueryData<Task[]>(taskKeys.list(), (old) =>
57-
old ? [newTask, ...old] : [newTask],
55+
queryClient.setQueriesData<Task[]>(
56+
{ queryKey: taskKeys.lists() },
57+
(old) => {
58+
if (!old) return old;
59+
if (old.some((task) => task.id === newTask.id)) return old;
60+
return [newTask, ...old];
61+
},
5862
);
5963
}
60-
// Also invalidate to ensure we're in sync with server
6164
queryClient.invalidateQueries({ queryKey: taskKeys.lists() });
6265
};
6366

0 commit comments

Comments
 (0)