feat: Test case movement (#290)

This commit is contained in:
kimatata
2025-10-05 16:42:06 +09:00
committed by GitHub
parent 49498adf34
commit b87ce0c3be
13 changed files with 368 additions and 105 deletions

View File

@@ -13,6 +13,7 @@ import DeleteConfirmDialog from '@/components/DeleteConfirmDialog';
import { FolderType, FoldersMessages, TreeNodeData } from '@/types/folder';
import { logError } from '@/utils/errorHandler';
import { buildFolderTree } from '@/utils/buildFolderTree';
import { emitMoveEvent } from '@/utils/testCaseMoveEvent';
type Props = {
projectId: string;
@@ -114,6 +115,21 @@ export default function FoldersPane({ projectId, messages, locale }: Props) {
}
};
// **************************************************************************
// move test case
// **************************************************************************
const handleDragOver = (e: React.DragEvent) => {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'move';
};
const handleDrop = (e: React.DragEvent, dropFolderId: string) => {
e.stopPropagation();
const ids = JSON.parse(e.dataTransfer.getData('application/json'));
emitMoveEvent(ids, Number(dropFolderId));
};
return (
<>
<div className="w-80 min-h-[calc(100vh-64px)] border-r-1 dark:border-neutral-700">
@@ -144,16 +160,18 @@ export default function FoldersPane({ projectId, messages, locale }: Props) {
disableDrag={true}
>
{(props) => (
<FolderItem
{...props}
projectId={projectId}
selectedFolder={selectedFolder}
locale={locale}
messages={messages}
openDialogForCreate={openDialogForCreate}
onEditClick={onEditClick}
onDeleteClick={onDeleteClick}
/>
<div onDragOver={handleDragOver} onDrop={(e) => handleDrop(e, props.node.id)}>
<FolderItem
{...props}
projectId={projectId}
selectedFolder={selectedFolder}
locale={locale}
messages={messages}
openDialogForCreate={openDialogForCreate}
onEditClick={onEditClick}
onDeleteClick={onDeleteClick}
/>
</div>
)}
</Tree>
)}