diff --git a/src-web/components/WorkpaceSettingsDialog.tsx b/src-web/components/WorkpaceSettingsDialog.tsx index 7ed1b857..0c0e716e 100644 --- a/src-web/components/WorkpaceSettingsDialog.tsx +++ b/src-web/components/WorkpaceSettingsDialog.tsx @@ -1,5 +1,7 @@ +import { useDeleteWorkspace } from '../hooks/useDeleteWorkspace'; import { useUpdateWorkspace } from '../hooks/useUpdateWorkspace'; import { useWorkspaces } from '../hooks/useWorkspaces'; +import { Button } from './core/Button'; import { PlainInput } from './core/PlainInput'; import { VStack } from './core/Stacks'; import { MarkdownEditor } from './MarkdownEditor'; @@ -12,12 +14,12 @@ export function WorkspaceSettingsDialog({ workspaceId }: Props) { const updateWorkspace = useUpdateWorkspace(workspaceId ?? null); const workspaces = useWorkspaces(); const workspace = workspaces.find((w) => w.id === workspaceId); + const { mutate: deleteWorkspace } = useDeleteWorkspace(); if (workspace == null) return null; return ( - - {workspace.id} + updateWorkspace.mutate({ description })} - heightMode='auto' + heightMode="auto" /> + + + + ); } diff --git a/src-web/components/WorkspaceActionsDropdown.tsx b/src-web/components/WorkspaceActionsDropdown.tsx index e1932a6b..d4d89a01 100644 --- a/src-web/components/WorkspaceActionsDropdown.tsx +++ b/src-web/components/WorkspaceActionsDropdown.tsx @@ -3,7 +3,7 @@ import { memo, useCallback, useMemo } from 'react'; import { useActiveWorkspace } from '../hooks/useActiveWorkspace'; import { useCreateWorkspace } from '../hooks/useCreateWorkspace'; import { useDeleteSendHistory } from '../hooks/useDeleteSendHistory'; -import { useDeleteWorkspace } from '../hooks/useDeleteWorkspace'; +import { useDialog } from '../hooks/useDialog'; import { useOpenWorkspace } from '../hooks/useOpenWorkspace'; import { useSettings } from '../hooks/useSettings'; import { useWorkspaces } from '../hooks/useWorkspaces'; @@ -14,7 +14,6 @@ import type { DropdownItem } from './core/Dropdown'; import { Icon } from './core/Icon'; import type { RadioDropdownItem } from './core/RadioDropdown'; import { RadioDropdown } from './core/RadioDropdown'; -import { useDialog } from '../hooks/useDialog'; import { OpenWorkspaceDialog } from './OpenWorkspaceDialog'; import { WorkspaceSettingsDialog } from './WorkpaceSettingsDialog'; @@ -27,13 +26,12 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({ const workspaces = useWorkspaces(); const activeWorkspace = useActiveWorkspace(); const activeWorkspaceId = activeWorkspace?.id ?? null; - const deleteWorkspace = useDeleteWorkspace(activeWorkspace); - const createWorkspace = useCreateWorkspace(); + const { mutate: createWorkspace } = useCreateWorkspace(); + const { mutate: deleteSendHistory } = useDeleteSendHistory(); const dialog = useDialog(); const settings = useSettings(); const openWorkspace = useOpenWorkspace(); const openWorkspaceNewWindow = settings?.openWorkspaceNewWindow ?? null; - const deleteSendHistory = useDeleteSendHistory(); const orderedWorkspaces = useMemo( () => [...workspaces].sort((a, b) => (a.name.localeCompare(b.name) > 0 ? 1 : -1)), @@ -69,21 +67,14 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({ key: 'delete-responses', label: 'Clear Send History', leftSlot: , - onSelect: deleteSendHistory.mutate, - }, - { - key: 'delete', - label: 'Delete Workspace', - leftSlot: , - onSelect: deleteWorkspace.mutate, - variant: 'danger', + onSelect: deleteSendHistory, }, { type: 'separator' }, { key: 'create-workspace', label: 'New Workspace', leftSlot: , - onSelect: createWorkspace.mutate, + onSelect: createWorkspace, }, ]; @@ -91,9 +82,8 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({ }, [ activeWorkspace?.id, activeWorkspaceId, - createWorkspace.mutate, - deleteSendHistory.mutate, - deleteWorkspace.mutate, + createWorkspace, + deleteSendHistory, dialog, orderedWorkspaces, ]); diff --git a/src-web/hooks/useDeleteWorkspace.tsx b/src-web/hooks/useDeleteWorkspace.tsx index ac339bd4..685f4025 100644 --- a/src-web/hooks/useDeleteWorkspace.tsx +++ b/src-web/hooks/useDeleteWorkspace.tsx @@ -10,13 +10,13 @@ import { useFastMutation } from './useFastMutation'; import { removeModelById } from './useSyncModelStores'; import { workspacesAtom } from './useWorkspaces'; -export function useDeleteWorkspace(workspace: Workspace | null) { +export function useDeleteWorkspace() { const confirm = useConfirm(); const setWorkspaces = useSetAtom(workspacesAtom); const navigate = useNavigate(); return useFastMutation({ - mutationKey: ['delete_workspace', workspace?.id], + mutationKey: ['delete_workspace'], mutationFn: async () => { const workspace = getActiveWorkspace(); const confirmed = await confirm({