implemented move

This commit is contained in:
2021-08-16 02:05:12 +02:00
parent 603cfec4af
commit 052363c539
4 changed files with 68 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ import React from "react"
import { useState } from "react"
import { useContextMenu } from "react-contexify"
import uploadFile from "../functions/uploadFile"
import { useCopyMutation, useDeleteFileMutation, useOpenDirQuery } from "../generated/graphql"
import { useCopyMutation, useDeleteFileMutation, useMoveMutation, useOpenDirQuery } from "../generated/graphql"
import Breadcrum from "./Breadcrum"
import DragAndDrop from "./DragAndDrop"
import FileBrowserContextMenu, { Action, CONTEXT_MENU_DIR, CONTEXT_MENU_FILE } from "./FileBrowserContextMenu"
@@ -16,9 +16,11 @@ const FileBrowser: React.FC = () => {
const [showFile, setShowFile] = useState(false)
const [srcID,setSrcID] = useState("")
const [pasteAction,setPasteAction] = useState<Action>()
const [deleteMutation] = useDeleteFileMutation()
const [copyMutation] = useCopyMutation()
const [moveMutation] = useMoveMutation()
const { show: showFileContext } = useContextMenu({
id: CONTEXT_MENU_FILE,
@@ -68,10 +70,18 @@ const FileBrowser: React.FC = () => {
deleteMutation({variables:{id}})
break
case Action.FileCopy:
case Action.FileMove:
setSrcID(id)
setPasteAction(action)
break
case Action.FilePaste:
copyMutation({variables:{src:srcID,dest:path}})
if (pasteAction === Action.FileCopy){
copyMutation({variables:{src:srcID,dest:path}})
}
if (pasteAction === Action.FileMove){
moveMutation({variables:{src:srcID,dest:path}})
}
break
default:
break

View File

@@ -8,7 +8,8 @@ export const CONTEXT_MENU_DIR = "CONTEXT_MENU_DIR"
export enum Action {
FileDelete,
FileCopy,
FilePaste
FilePaste,
FileMove
}
interface Props {
@@ -29,6 +30,7 @@ const FileBrowserContextMenu: React.FC<Props> = (props) => {
<Menu id={CONTEXT_MENU_FILE} animation={false}>
<Item onClick={onClick} data={Action.FileDelete} >Delete</Item>
<Item onClick={onClick} data={Action.FileCopy} >Copy</Item>
<Item onClick={onClick} data={Action.FileMove} >Move</Item>
<Item onClick={onClick} data={Action.FilePaste} disabled={!props.pasteActive}>Paste</Item>
<Separator />
<Item disabled>Disabled</Item>