upd: dokumen

Deskripsi:
- copy file

No Issues
This commit is contained in:
amel
2024-09-13 11:06:18 +08:00
parent a6d66dd823
commit 6c49e4b0b5
5 changed files with 94 additions and 82 deletions

View File

@@ -0,0 +1,22 @@
export async function funCopyFile({ fileId, dirId }: { fileId: string, dirId: string }) {
try {
const res = await fetch(`https://wibu-storage.wibudev.com/api/files/copy/${dirId}/${dirId}`, {
method: "POST",
body: JSON.stringify({ fileId: fileId }),
headers: {
Authorization: `Bearer ${process.env.WS_APIKEY}`
}
});
if (res.ok) {
const hasil = await res.json()
return { success: true, data: hasil.data }
} else {
const errorText = await res.json();
return { success: false, data: {} }
}
} catch (error) {
console.error("Copy error:", error);
return { success: false, data: {} }
}
}

View File

@@ -6,6 +6,7 @@ import SkeletonDetailListTugasTask from "./components/skeleton_detail_list_tugas
import SkeletonDetailProfile from "./components/skeleton_detail_profile";
import SkeletonSingle from "./components/skeleton_single";
import WrapLayout from "./components/wrap_layout";
import { funCopyFile } from "./fun/copy_file";
import { funDeleteFile } from "./fun/delete_file";
import { funUploadFile } from "./fun/upload_file";
import { WARNA } from "./fun/WARNA";
@@ -42,3 +43,4 @@ export { funUploadFile }
export { funDeleteFile }
export { DIR }
export { TEMA }
export { funCopyFile }

View File

@@ -9,12 +9,14 @@ import { funCopyDocument, funMoveDocument } from "../lib/api_document";
import { useHookstate } from "@hookstate/core";
import { globalRefreshDocument } from "../lib/val_document";
import { useParams } from "next/navigation";
import { useShallowEffect } from "@mantine/hooks";
export default function DrawerMore({ data }: { data: IDataDocument[] }) {
const [isCut, setIsCut] = useState(false)
const [isCopy, setIsCopy] = useState(false)
const refresh = useHookstate(globalRefreshDocument)
const param = useParams<{ id: string }>()
const [forbidCopy, setForbidCopy] = useState(true)
async function onMoveItem(path: string) {
@@ -51,6 +53,16 @@ export default function DrawerMore({ data }: { data: IDataDocument[] }) {
}
function cekFileSelected() {
const cek = data.some((i: any) => i.category == "FOLDER")
setForbidCopy(cek)
}
useShallowEffect(() => {
cekFileSelected()
}, [data])
return (
<Box>
@@ -66,14 +78,17 @@ export default function DrawerMore({ data }: { data: IDataDocument[] }) {
<Text c={WARNA.biruTua}>Pindah</Text>
</Box>
</Flex>
<Flex onClick={() => setIsCopy(true)} justify={'center'} align={'center'} direction={'column'} >
<Box>
<LuFolders size={30} color={WARNA.biruTua} />
</Box>
<Box>
<Text c={WARNA.biruTua}>Salin</Text>
</Box>
</Flex>
{
(!forbidCopy) &&
<Flex onClick={() => setIsCopy(true)} justify={'center'} align={'center'} direction={'column'} >
<Box>
<LuFolders size={30} color={WARNA.biruTua} />
</Box>
<Box>
<Text c={WARNA.biruTua}>Salin</Text>
</Box>
</Flex>
}
</SimpleGrid>
</Stack>

View File

@@ -46,7 +46,7 @@ export default function NavbarDocumentDivision() {
const [selectedFiles, setSelectedFiles] = useState<any>([])
const [selectAll, setSelectAll] = useState(false)
const [dariSelectAll, setDariSelectAll] = useState(false)
const isMobile = useMediaQuery('(max-width: 369px)');
const isMobile = useMediaQuery('(max-width: 369px)');
const [bodyRename, setBodyRename] = useState({
id: '',
name: '',
@@ -69,6 +69,7 @@ export default function NavbarDocumentDivision() {
extension: dataDocument[index].extension,
category: dataDocument[index].category,
share: dataDocument[index].share,
idStorage: dataDocument[index].idStorage
}
])
}
@@ -102,6 +103,7 @@ export default function NavbarDocumentDivision() {
extension: dataDocument[index].extension,
category: dataDocument[index].category,
share: dataDocument[index].share,
idStorage: dataDocument[index].idStorage
}
setSelectedFiles((selectedFiles: any) => [...selectedFiles, newArr])
}