From 39223e8d89b1d2de7c3c4e0d9ff27e883db7b7d9 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 21 Mar 2023 09:32:15 -0700 Subject: [PATCH] Fix workspace deletion --- src-tauri/icons/icon.icns | Bin 616124 -> 616124 bytes src-tauri/sqlx-data.json | 10 ++++++++++ src-tauri/src/models.rs | 2 +- src-web/components/GraphQLEditor.tsx | 2 +- src-web/components/Sidebar.tsx | 2 +- src-web/hooks/useDeleteWorkspace.ts | 3 +-- src-web/hooks/useRoutes.ts | 9 +++++++-- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns index 077ecfe252f917a871f5e58ace431eb91a0148bd..c7d360aa7437771d88390ddbdacba254f875a013 100644 GIT binary patch delta 88 zcmdmUR&~!=RgTQ$ykZ8>\"\n FROM http_requests\n WHERE workspace_id = ?\n " }, + "84be2b954870ab181738656ecd4d03fca2ff21012947014c79626abfce8e999b": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Right": 1 + } + }, + "query": "\n DELETE FROM workspaces\n WHERE id = ?\n " + }, "a83698dcf9a815b881097133edb31a34ba25e7c6c114d463c495342a85371639": { "describe": { "columns": [], diff --git a/src-tauri/src/models.rs b/src-tauri/src/models.rs index 5be0266f..4a08152a 100644 --- a/src-tauri/src/models.rs +++ b/src-tauri/src/models.rs @@ -148,7 +148,7 @@ pub async fn delete_workspace(id: &str, pool: &Pool) -> Result +
diff --git a/src-web/hooks/useDeleteWorkspace.ts b/src-web/hooks/useDeleteWorkspace.ts index 950042b6..6d024d4b 100644 --- a/src-web/hooks/useDeleteWorkspace.ts +++ b/src-web/hooks/useDeleteWorkspace.ts @@ -1,6 +1,5 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { invoke } from '@tauri-apps/api'; -import { useNavigate } from 'react-router-dom'; import { useActiveWorkspaceId } from './useActiveWorkspaceId'; import { useRoutes } from './useRoutes'; import { workspacesQueryKey } from './useWorkspaces'; @@ -18,7 +17,7 @@ export function useDeleteWorkspace(id: string | null) { if (id === null) return; await queryClient.invalidateQueries(workspacesQueryKey()); if (id === activeWorkspaceId) { - routes.navigate('workspace', { workspaceId: id }); + routes.navigate('workspaces'); } }, }); diff --git a/src-web/hooks/useRoutes.ts b/src-web/hooks/useRoutes.ts index ce158e72..563d595c 100644 --- a/src-web/hooks/useRoutes.ts +++ b/src-web/hooks/useRoutes.ts @@ -1,3 +1,5 @@ +import { useNavigate } from 'react-router-dom'; + export type RouteParamsWorkspace = { workspaceId: string; }; @@ -24,15 +26,18 @@ export const routePaths = { }; export function useRoutes() { + const navigate = useNavigate(); return { navigate( path: T, - params: Parameters<(typeof routePaths)[T]>[0], + ...params: Parameters<(typeof routePaths)[T]> ) { // Not sure how to make TS work here, but it's good from the // outside caller perspective. // eslint-disable-next-line @typescript-eslint/no-explicit-any - routePaths[path](params as any); + const resolvedPath = routePaths[path](...(params as any)); + console.log('NAVIGATE TO', resolvedPath, 'WITH PARAMS', params, 'AND PATH', path); + navigate(resolvedPath); }, paths: routePaths, };