mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-20 07:41:22 +02:00
Fix WS duplication from context menu
This commit is contained in:
@@ -1,12 +1,11 @@
|
|||||||
import type { WebsocketRequest } from '@yaakapp-internal/models';
|
|
||||||
import { duplicateWebsocketRequest as cmdDuplicateWebsocketRequest } from '@yaakapp-internal/ws';
|
import { duplicateWebsocketRequest as cmdDuplicateWebsocketRequest } from '@yaakapp-internal/ws';
|
||||||
import { createFastMutation } from '../hooks/useFastMutation';
|
import { createFastMutation } from '../hooks/useFastMutation';
|
||||||
import { router } from '../lib/router';
|
import { router } from '../lib/router';
|
||||||
|
|
||||||
export const duplicateWebsocketRequest = createFastMutation({
|
export const duplicateWebsocketRequest = createFastMutation({
|
||||||
mutationKey: ['delete_websocket_connection'],
|
mutationKey: ['delete_websocket_connection'],
|
||||||
mutationFn: async function (request: WebsocketRequest) {
|
mutationFn: async function (requestId: string) {
|
||||||
return cmdDuplicateWebsocketRequest(request.id);
|
return cmdDuplicateWebsocketRequest(requestId);
|
||||||
},
|
},
|
||||||
onSuccess: async (request) => {
|
onSuccess: async (request) => {
|
||||||
await router.navigate({
|
await router.navigate({
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ function useGlobalWorkspaceHooks() {
|
|||||||
} else if (activeRequest.model === 'grpc_request') {
|
} else if (activeRequest.model === 'grpc_request') {
|
||||||
await duplicateGrpcRequest.mutateAsync();
|
await duplicateGrpcRequest.mutateAsync();
|
||||||
} else if (activeRequest.model === 'websocket_request') {
|
} else if (activeRequest.model === 'websocket_request') {
|
||||||
await duplicateWebsocketRequest.mutateAsync(activeRequest);
|
await duplicateWebsocketRequest.mutateAsync(activeRequest.id);
|
||||||
} else {
|
} else {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
throw new Error('Failed to duplicate invalid request model: ' + (activeRequest as any).model);
|
throw new Error('Failed to duplicate invalid request model: ' + (activeRequest as any).model);
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import React, { useMemo } from 'react';
|
import React, { useMemo } from 'react';
|
||||||
|
import { duplicateWebsocketRequest } from '../../commands/duplicateWebsocketRequest';
|
||||||
import { useCreateDropdownItems } from '../../hooks/useCreateDropdownItems';
|
import { useCreateDropdownItems } from '../../hooks/useCreateDropdownItems';
|
||||||
import { useDeleteFolder } from '../../hooks/useDeleteFolder';
|
|
||||||
import { useDeleteAnyRequest } from '../../hooks/useDeleteAnyRequest';
|
import { useDeleteAnyRequest } from '../../hooks/useDeleteAnyRequest';
|
||||||
|
import { useDeleteFolder } from '../../hooks/useDeleteFolder';
|
||||||
import { useDuplicateFolder } from '../../hooks/useDuplicateFolder';
|
import { useDuplicateFolder } from '../../hooks/useDuplicateFolder';
|
||||||
import { useDuplicateGrpcRequest } from '../../hooks/useDuplicateGrpcRequest';
|
import { useDuplicateGrpcRequest } from '../../hooks/useDuplicateGrpcRequest';
|
||||||
import { useDuplicateHttpRequest } from '../../hooks/useDuplicateHttpRequest';
|
import { useDuplicateHttpRequest } from '../../hooks/useDuplicateHttpRequest';
|
||||||
import { useHttpRequestActions } from '../../hooks/useHttpRequestActions';
|
import { useHttpRequestActions } from '../../hooks/useHttpRequestActions';
|
||||||
|
import { getHttpRequest } from '../../hooks/useHttpRequests';
|
||||||
import { useMoveToWorkspace } from '../../hooks/useMoveToWorkspace';
|
import { useMoveToWorkspace } from '../../hooks/useMoveToWorkspace';
|
||||||
import { useRenameRequest } from '../../hooks/useRenameRequest';
|
import { useRenameRequest } from '../../hooks/useRenameRequest';
|
||||||
import { useSendAnyHttpRequest } from '../../hooks/useSendAnyHttpRequest';
|
import { useSendAnyHttpRequest } from '../../hooks/useSendAnyHttpRequest';
|
||||||
@@ -18,7 +20,6 @@ import { ContextMenu } from '../core/Dropdown';
|
|||||||
import { Icon } from '../core/Icon';
|
import { Icon } from '../core/Icon';
|
||||||
import { FolderSettingsDialog } from '../FolderSettingsDialog';
|
import { FolderSettingsDialog } from '../FolderSettingsDialog';
|
||||||
import type { SidebarTreeNode } from './Sidebar';
|
import type { SidebarTreeNode } from './Sidebar';
|
||||||
import { getHttpRequest } from '../../hooks/useHttpRequests';
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
child: SidebarTreeNode;
|
child: SidebarTreeNode;
|
||||||
@@ -110,10 +111,17 @@ export function SidebarItemContextMenu({ child, show, close }: Props) {
|
|||||||
hotKeyAction: 'http_request.duplicate',
|
hotKeyAction: 'http_request.duplicate',
|
||||||
hotKeyLabelOnly: true, // Would trigger for every request (bad)
|
hotKeyLabelOnly: true, // Would trigger for every request (bad)
|
||||||
leftSlot: <Icon icon="copy" />,
|
leftSlot: <Icon icon="copy" />,
|
||||||
onSelect: () =>
|
onSelect: () => {
|
||||||
child.model === 'http_request'
|
if (child.model === 'http_request') {
|
||||||
? duplicateHttpRequest.mutate()
|
duplicateHttpRequest.mutate();
|
||||||
: duplicateGrpcRequest.mutate(),
|
} else if (child.model === 'grpc_request') {
|
||||||
|
duplicateGrpcRequest.mutate();
|
||||||
|
} else if (child.model === 'websocket_request') {
|
||||||
|
duplicateWebsocketRequest.mutate(child.id);
|
||||||
|
} else {
|
||||||
|
throw new Error('Cannot duplicate invalid model: ' + child.model);
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Move',
|
label: 'Move',
|
||||||
|
|||||||
Reference in New Issue
Block a user