diff --git a/resources/scripts/components/server/files/FileManagerContainer.tsx b/resources/scripts/components/server/files/FileManagerContainer.tsx index 3bebd20625..22a270822d 100644 --- a/resources/scripts/components/server/files/FileManagerContainer.tsx +++ b/resources/scripts/components/server/files/FileManagerContainer.tsx @@ -5,16 +5,15 @@ import Spinner from '@/components/elements/Spinner'; import FileObjectRow from '@/components/server/files/FileObjectRow'; import FileManagerBreadcrumbs from '@/components/server/files/FileManagerBreadcrumbs'; import { FileObject } from '@/api/server/files/loadDirectory'; -import NewDirectoryButton from '@/components/server/files/NewDirectoryButton'; -import { NavLink, useLocation } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import Can from '@/components/elements/Can'; import { ServerError } from '@/components/elements/ScreenBlock'; import tw from 'twin.macro'; -import { Button } from '@/components/elements/button/index'; import { ServerContext } from '@/state/server'; import useFileManagerSwr from '@/plugins/useFileManagerSwr'; import FileManagerStatus from '@/components/server/files/FileManagerStatus'; import MassActionsBar from '@/components/server/files/MassActionsBar'; +import NewButton from '@/components/server/files/NewButton'; import UploadButton from '@/components/server/files/UploadButton'; import ServerContentBlock from '@/components/elements/ServerContentBlock'; import { useStoreActions } from '@/state/hooks'; @@ -31,7 +30,6 @@ const sortFiles = (files: FileObject[]): FileObject[] => { }; export default () => { - const id = ServerContext.useStoreState((state) => state.server.data!.id); const { hash } = useLocation(); const { data: files, error, mutate } = useFileManagerSwr(); const directory = ServerContext.useStoreState((state) => state.files.directory); @@ -76,11 +74,8 @@ export default () => {
- - - - +
@@ -113,4 +108,4 @@ export default () => { )} ); -}; +}; \ No newline at end of file diff --git a/resources/scripts/components/server/files/NewDirectoryButton.tsx b/resources/scripts/components/server/files/NewButton.tsx similarity index 72% rename from resources/scripts/components/server/files/NewDirectoryButton.tsx rename to resources/scripts/components/server/files/NewButton.tsx index f7531a3689..5d456d3086 100644 --- a/resources/scripts/components/server/files/NewDirectoryButton.tsx +++ b/resources/scripts/components/server/files/NewButton.tsx @@ -1,16 +1,19 @@ import React, { useContext, useEffect, useState } from 'react'; +import { NavLink } from 'react-router-dom'; +import { Button } from '@/components/elements/button/index'; import { ServerContext } from '@/state/server'; +import DropdownMenu, { DropdownButtonRow } from '@/components/elements/DropdownMenu'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faChevronDown, faFile, faFolder } from '@fortawesome/free-solid-svg-icons'; +import tw from 'twin.macro'; import { Form, Formik, FormikHelpers } from 'formik'; import Field from '@/components/elements/Field'; import { join } from 'pathe'; import { object, string } from 'yup'; import createDirectory from '@/api/server/files/createDirectory'; -import tw from 'twin.macro'; -import { Button } from '@/components/elements/button/index'; import { FileObject } from '@/api/server/files/loadDirectory'; import { useFlashKey } from '@/plugins/useFlash'; import useFileManagerSwr from '@/plugins/useFileManagerSwr'; -import { WithClassname } from '@/components/types'; import FlashMessageRender from '@/components/FlashMessageRender'; import { Dialog, DialogWrapperContext } from '@/components/elements/dialog'; import Code from '@/components/elements/Code'; @@ -96,15 +99,34 @@ const NewDirectoryDialog = asDialog({ ); }); -export default ({ className }: WithClassname) => { - const [open, setOpen] = useState(false); +const NewButton = () => { + const id = ServerContext.useStoreState((state) => state.server.data!.id); + const [openDirectoryDialog, setOpenDirectoryDialog] = useState(false); return ( <> - - - Create Directory - + setOpenDirectoryDialog(false)} /> + ( + + )} + > + + + + File + + + setOpenDirectoryDialog(true)} css={tw`justify-start !w-full`}> + + Folder + + ); }; + +export default NewButton; \ No newline at end of file