From 624b20676fedf1b1a5871f916a5c1d5c38a5d2cb Mon Sep 17 00:00:00 2001 From: Andrej Date: Sat, 18 Jan 2025 21:39:33 +0100 Subject: [PATCH] fix: :bug: fixing deleted workspaces being cached --- .../workspaces/components/workspace-menu.tsx | 13 ++++++++++--- apps/web/src/store/workspace.ts | 8 ++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/web/src/components/common/sidebar/sections/workspaces/components/workspace-menu.tsx b/apps/web/src/components/common/sidebar/sections/workspaces/components/workspace-menu.tsx index ff9ec75..fa1eb6e 100644 --- a/apps/web/src/components/common/sidebar/sections/workspaces/components/workspace-menu.tsx +++ b/apps/web/src/components/common/sidebar/sections/workspaces/components/workspace-menu.tsx @@ -2,7 +2,9 @@ import * as DropdownMenu from "@radix-ui/react-dropdown-menu"; import useDeleteWorkspace from "@/hooks/mutations/workspace/use-delete-workspace"; import { cn } from "@/lib/utils"; -import queryClient from "@/query-client"; +import useProjectStore from "@/store/project"; +import useWorkspaceStore from "@/store/workspace"; +import { useQueryClient } from "@tanstack/react-query"; import { MoreHorizontal, Pencil, Plus, Trash2 } from "lucide-react"; import { useState } from "react"; import AddProjectModal from "../../projects/add-project-modal"; @@ -13,14 +15,19 @@ type WorkspaceMenuProps = { function WorkspaceMenu({ id }: WorkspaceMenuProps) { const [isCreateProjectModalOpen, setCreateProjectModalOpen] = useState(false); + const { setWorkspace } = useWorkspaceStore(); + const { setProject } = useProjectStore(); + const queryClient = useQueryClient(); const { mutateAsync: deleteWorkspace } = useDeleteWorkspace({ id, }); async function handleDeleteWorkspace() { await deleteWorkspace(); - queryClient.invalidateQueries({ - queryKey: ["workspaces", "projects"], + setWorkspace(undefined); + setProject(undefined); + queryClient.removeQueries({ + queryKey: ["workspaces"], }); } diff --git a/apps/web/src/store/workspace.ts b/apps/web/src/store/workspace.ts index 7c6759c..43c66a7 100644 --- a/apps/web/src/store/workspace.ts +++ b/apps/web/src/store/workspace.ts @@ -2,11 +2,11 @@ import type { Workspace } from "@/types/workspace"; import { create } from "zustand"; const useWorkspaceStore = create<{ - workspace: Workspace | null; - setWorkspace: (updatedWorkspace: Workspace) => void; + workspace: Workspace | undefined; + setWorkspace: (updatedWorkspace: Workspace | undefined) => void; }>((set) => ({ - workspace: null, - setWorkspace: (updatedWorkspace: Workspace) => + workspace: undefined, + setWorkspace: (updatedWorkspace) => set(() => ({ workspace: updatedWorkspace })), }));