diff --git a/src-web/components/WorkspaceActionsDropdown.tsx b/src-web/components/WorkspaceActionsDropdown.tsx index e3993a3a..63f1b52e 100644 --- a/src-web/components/WorkspaceActionsDropdown.tsx +++ b/src-web/components/WorkspaceActionsDropdown.tsx @@ -68,7 +68,9 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({ id: 'workspace-settings', title: 'Workspace Settings', size: 'md', - render: () => , + render: ({ hide }) => ( + + ), }); }, }, diff --git a/src-web/components/WorkspaceSettingsDialog.tsx b/src-web/components/WorkspaceSettingsDialog.tsx index 1fdfd4d4..338c5d52 100644 --- a/src-web/components/WorkspaceSettingsDialog.tsx +++ b/src-web/components/WorkspaceSettingsDialog.tsx @@ -1,4 +1,4 @@ -import { useDeleteWorkspace } from '../hooks/useDeleteWorkspace'; +import { useDeleteActiveWorkspace } from '../hooks/useDeleteActiveWorkspace'; import { useUpdateWorkspace } from '../hooks/useUpdateWorkspace'; import { useWorkspaces } from '../hooks/useWorkspaces'; import { Button } from './core/Button'; @@ -9,13 +9,14 @@ import { SelectFile } from './SelectFile'; interface Props { workspaceId: string | null; + hide: () => void; } -export function WorkspaceSettingsDialog({ workspaceId }: Props) { +export function WorkspaceSettingsDialog({ workspaceId, hide }: Props) { const workspaces = useWorkspaces(); const workspace = workspaces.find((w) => w.id === workspaceId); const { mutate: updateWorkspace } = useUpdateWorkspace(workspaceId ?? null); - const { mutate: deleteWorkspace } = useDeleteWorkspace(); + const { mutateAsync: deleteActiveWorkspace } = useDeleteActiveWorkspace(); if (workspace == null) return null; @@ -44,7 +45,15 @@ export function WorkspaceSettingsDialog({ workspaceId }: Props) { filePath={workspace.settingSyncDir} onChange={({ filePath: settingSyncDir }) => updateWorkspace({ settingSyncDir })} /> - diff --git a/src-web/hooks/useDeleteWorkspace.tsx b/src-web/hooks/useDeleteActiveWorkspace.tsx similarity index 85% rename from src-web/hooks/useDeleteWorkspace.tsx rename to src-web/hooks/useDeleteActiveWorkspace.tsx index 685f4025..2746f3f1 100644 --- a/src-web/hooks/useDeleteWorkspace.tsx +++ b/src-web/hooks/useDeleteActiveWorkspace.tsx @@ -10,7 +10,7 @@ import { useFastMutation } from './useFastMutation'; import { removeModelById } from './useSyncModelStores'; import { workspacesAtom } from './useWorkspaces'; -export function useDeleteWorkspace() { +export function useDeleteActiveWorkspace() { const confirm = useConfirm(); const setWorkspaces = useSetAtom(workspacesAtom); const navigate = useNavigate(); @@ -39,11 +39,7 @@ export function useDeleteWorkspace() { // Optimistic update setWorkspaces(removeModelById(workspace)); - const { id: workspaceId } = workspace; - const activeWorkspace = getActiveWorkspace(); - if (workspaceId === activeWorkspace?.id) { - await navigate({ to: '/workspaces' }); - } + await navigate({ to: '/workspaces' }); }, }); } diff --git a/src-web/hooks/useRecentWorkspaces.ts b/src-web/hooks/useRecentWorkspaces.ts index 6c2ca8fb..e40a21fe 100644 --- a/src-web/hooks/useRecentWorkspaces.ts +++ b/src-web/hooks/useRecentWorkspaces.ts @@ -18,8 +18,6 @@ export function useRecentWorkspaces() { [value, workspaces], ); - - console.log("HELLO", {isLoading, value}) if (isLoading) return null; return onlyValidIds; @@ -29,18 +27,15 @@ export function useSubscribeRecentWorkspaces() { useEffect(() => { return jotaiStore.sub(activeWorkspaceIdAtom, async () => { const activeWorkspaceId = jotaiStore.get(activeWorkspaceIdAtom); - console.log("AAA"); if (activeWorkspaceId == null) return; const key = kvKey(); const recentIds = await getKeyValue({ namespace, key, fallback }); - console.log("BBB", recentIds, activeWorkspaceId); if (recentIds[0] === activeWorkspaceId) return; // Short-circuit const withoutActiveId = recentIds.filter((id) => id !== activeWorkspaceId); const value = [activeWorkspaceId, ...withoutActiveId]; - console.log("SET ACTIVE WORCENT", value); await setKeyValue({ namespace, key, value }); }); }, []);