Add the ability to duplicate folders (#144)

This commit is contained in:
Gregory Schier
2024-12-19 13:06:08 -08:00
committed by GitHub
parent 833dc7d3f7
commit 42bf016e90
8 changed files with 108 additions and 8 deletions

View File

@@ -64,8 +64,7 @@ export function ExportDataDialog({
<tr>
<th className="w-6 min-w-0 py-2 text-left pl-1">
<Checkbox
checked={allSelected}
indeterminate={!allSelected && !noneSelected}
checked={!allSelected && !noneSelected ? 'indeterminate' : allSelected}
hideLabel
title="All workspaces"
onChange={handleToggleAll}

View File

@@ -138,7 +138,7 @@ export function GrpcConnectionSetupPane({
value: TAB_DESCRIPTION,
label: (
<div className="flex items-center">
Docs
Info
{activeRequest.description && <CountBadge count={true} />}
</div>
),

View File

@@ -129,7 +129,7 @@ export const RequestPane = memo(function RequestPane({
value: TAB_DESCRIPTION,
label: (
<div className="flex items-center">
Docs
Info
{activeRequest.description && <CountBadge count={true} />}
</div>
),

View File

@@ -22,6 +22,7 @@ import { useAppRoutes } from '../hooks/useAppRoutes';
import { useCreateDropdownItems } from '../hooks/useCreateDropdownItems';
import { useDeleteFolder } from '../hooks/useDeleteFolder';
import { useDeleteRequest } from '../hooks/useDeleteRequest';
import { useDuplicateFolder } from '../hooks/useDuplicateFolder';
import { useDuplicateGrpcRequest } from '../hooks/useDuplicateGrpcRequest';
import { useDuplicateHttpRequest } from '../hooks/useDuplicateHttpRequest';
import { useFolders } from '../hooks/useFolders';
@@ -699,6 +700,7 @@ function SidebarItem({
const deleteFolder = useDeleteFolder(itemId);
const deleteRequest = useDeleteRequest(itemId);
const renameRequest = useRenameRequest(itemId);
const duplicateFolder = useDuplicateFolder(itemId);
const duplicateHttpRequest = useDuplicateHttpRequest({ id: itemId, navigateAfter: true });
const duplicateGrpcRequest = useDuplicateGrpcRequest({ id: itemId, navigateAfter: true });
const sendRequest = useSendAnyHttpRequest();
@@ -802,6 +804,12 @@ function SidebarItem({
render: () => <FolderSettingsDialog folderId={itemId} />,
}),
},
{
key: 'duplicateFolder',
label: 'Duplicate',
leftSlot: <Icon icon="copy" />,
onSelect: () => duplicateFolder.mutate(),
},
{
key: 'delete-folder',
label: 'Delete',
@@ -877,7 +885,7 @@ function SidebarItem({
createDropdownItems,
deleteFolder,
deleteRequest,
dialog,
duplicateFolder,
duplicateGrpcRequest,
duplicateHttpRequest,
httpRequestActions,