import { PlusIcon, TruckIcon, UploadIcon } from '@heroicons/react/outline'; import { useCallback, useRef } from 'react'; import { useRecoilState, useSetRecoilState } from 'recoil'; import { AnimatedHeight } from '../../../atoms/animated-height'; import { getFilesTree } from '../../../components/uploads/file-tree-utils'; import UploadZone from '../../../components/uploads/upload-zone'; import { useDriveItem } from '../../../features/drive/hooks/use-drive-item'; import { useDriveUpload } from '../../../features/drive/hooks/use-drive-upload'; import useRouterCompany from '../../../features/router/hooks/use-router-company'; import { DriveCurrentFolderAtom } from '../body/drive/browser'; import { ConfirmDeleteModalAtom } from '../body/drive/modals/confirm-delete'; import { CreateModal, CreateModalAtom } from '../body/drive/modals/create'; import { Button } from '@atoms/button/button'; import Languages from "features/global/services/languages-service"; import { useCurrentUser } from 'app/features/users/hooks/use-current-user'; export const CreateModalWithUploadZones = ({ initialParentId }: { initialParentId?: string }) => { const companyId = useRouterCompany(); const uploadZoneRef = useRef(null); const uploadFolderZoneRef = useRef(null); const setCreationModalState = useSetRecoilState(CreateModalAtom); const { uploadTree, uploadFromUrl } = useDriveUpload(); const { user } = useCurrentUser(); const [parentId, _] = useRecoilState( DriveCurrentFolderAtom({ initialFolderId: initialParentId || 'user_'+user?.id }), ); console.log("Upload Zone:: " + parentId); return ( <> { const tree = await getFilesTree(event); setCreationModalState({ parent_id: '', open: false }); uploadTree(tree, { companyId, parentId, }); }} /> { const tree = await getFilesTree(event); setCreationModalState({ parent_id: '', open: false }); uploadTree(tree, { companyId, parentId, }); }} /> uploadFolderZoneRef.current?.open()} selectFromDevice={() => uploadZoneRef.current?.open()} addFromUrl={(url, name) => { setCreationModalState({ parent_id: '', open: false }); uploadFromUrl(url, name, { companyId, parentId, }); }} /> ); }; export default () => { const { user } = useCurrentUser(); const [parentId, _] = useRecoilState(DriveCurrentFolderAtom({ initialFolderId: 'user_'+user?.id })); const { access, item, inTrash } = useDriveItem(parentId); const { children: trashChildren } = useDriveItem('trash'); const uploadZoneRef = useRef(null); const { uploadTree } = useDriveUpload(); const companyId = useRouterCompany(); const setConfirmDeleteModalState = useSetRecoilState(ConfirmDeleteModalAtom); const setCreationModalState = useSetRecoilState(CreateModalAtom); const openItemModal = useCallback(() => { if (item?.id) setCreationModalState({ open: true, parent_id: item.id }); }, [item?.id, setCreationModalState]); return (
{inTrash && access === 'manage' && ( <> )} {!(inTrash || access === 'read') && ( <> { const tree = await getFilesTree(event); setCreationModalState({ parent_id: '', open: false }); uploadTree(tree, { companyId, parentId, }); }} /> )}
); };