diff --git a/src/components/AddNewDropdown/AddNewDropdown.tsx b/src/components/AddNewDropdown/AddNewDropdown.tsx index a9aa629..224c802 100644 --- a/src/components/AddNewDropdown/AddNewDropdown.tsx +++ b/src/components/AddNewDropdown/AddNewDropdown.tsx @@ -9,22 +9,27 @@ import CreateFolderIcon from "../../icons/CreateFolderIcon"; import FolderUploadIcon from "../../icons/FolderUploadIcon"; import Swal from "sweetalert2"; import { useFolders } from "../../hooks/folders"; +import classNames from "classnames"; interface AddNewDropdownProps { closeDropdown: () => void; + isDropdownOpen: boolean; } -const AddNewDropdown: React.FC = (props) => { +const AddNewDropdown: React.FC = ({ + closeDropdown, + isDropdownOpen, +}) => { const params = useParams(); const { refetch: refetchFolders } = useFolders(false); const [supportsWebkitDirectory, setSupportsWebkitDirectory] = useState(false); - const { wrapperRef } = useClickOutOfBounds(props.closeDropdown); + const { wrapperRef } = useClickOutOfBounds(closeDropdown, true); const uploadRef: RefObject = useRef(null); const uploadFolderRef: RefObject = useRef(null); const { uploadFiles, uploadFolder } = useUploader(); const createFolder = async () => { - props.closeDropdown(); + closeDropdown(); const folderName = await showCreateFolderPopup(); if (folderName === undefined || folderName === null) { @@ -37,7 +42,7 @@ const AddNewDropdown: React.FC = (props) => { const handleUpload = (e: React.FormEvent) => { e.preventDefault(); - props.closeDropdown(); + closeDropdown(); const files = uploadRef.current?.files; if (!files) return; @@ -56,7 +61,7 @@ const AddNewDropdown: React.FC = (props) => { const handleFolderUpload = (e: React.FormEvent) => { e.preventDefault(); - props.closeDropdown(); + closeDropdown(); const items = uploadFolderRef.current?.files; @@ -101,6 +106,7 @@ const AddNewDropdown: React.FC = (props) => {
= (props) => { webkitdirectory="true" onChange={handleFolderUpload} /> -
    +
    • { id="header" className="select-none border-b fixed top-0 left-0 w-full bg-white z-10" > -
      +
      {!isSettings && ( @@ -62,7 +62,7 @@ const Header = () => { onClick={() => navigate("/settings")} className="cursor-pointer" > - +
      diff --git a/src/components/LeftSection/LeftSection.tsx b/src/components/LeftSection/LeftSection.tsx index 808cc87..034cbc9 100644 --- a/src/components/LeftSection/LeftSection.tsx +++ b/src/components/LeftSection/LeftSection.tsx @@ -23,19 +23,25 @@ const LeftSection = ({ const dispatch = useAppDispatch(); const navigate = useNavigate(); const addNewDisabled = useRef(false); + const closeDropdownDisabled = useRef(true); const openDropdown = () => { if (addNewDisabled.current) return; + addNewDisabled.current = true; + closeDropdownDisabled.current = true; setIsDropdownOpen(true); + setTimeout(() => (closeDropdownDisabled.current = false), 300); }; - const closeDropdown = () => { + const closeDropdown = useCallback(() => { + if (closeDropdownDisabled.current) return; addNewDisabled.current = true; + closeDropdownDisabled.current = true; setIsDropdownOpen(false); // Clicking out of bounds on the add new button will cause it to reopen setTimeout(() => (addNewDisabled.current = false), 300); - }; + }, []); const goHome = () => { dispatch(closeDrawer()); @@ -123,7 +129,10 @@ const LeftSection = ({

      - {isDropdownOpen && } +
diff --git a/src/components/MainSection/MainSection.tsx b/src/components/MainSection/MainSection.tsx index 0fb5f61..7d72d94 100644 --- a/src/components/MainSection/MainSection.tsx +++ b/src/components/MainSection/MainSection.tsx @@ -40,7 +40,7 @@ const MainSection = memo(() => { {moveModalItemType && } -
+
{!isMedia ? ( diff --git a/src/components/SearchBar/SearchBar.tsx b/src/components/SearchBar/SearchBar.tsx index d311875..94b4622 100644 --- a/src/components/SearchBar/SearchBar.tsx +++ b/src/components/SearchBar/SearchBar.tsx @@ -91,6 +91,11 @@ const SearchBar = memo(() => { resetState(); }; + const calculatedHeight = + 47 * + (searchSuggestions?.folderList.length + + searchSuggestions?.fileList.length) || 56; + const onFocus = () => { dispatch(closeDrawer()); setShowSuggestions(true); @@ -121,25 +126,32 @@ const SearchBar = memo(() => { /> )} {isLoadingSearchSuggestions &&
} - {searchText.length === 0 && } + {searchText.length === 0 && }
{searchSuggestions?.folderList.length === 0 && searchSuggestions?.fileList.length === 0 ? ( diff --git a/src/hooks/utils.ts b/src/hooks/utils.ts index 4a1e77c..b93b667 100644 --- a/src/hooks/utils.ts +++ b/src/hooks/utils.ts @@ -32,7 +32,10 @@ export const useClickOutOfBounds = ( // TODO: Remove this any const outOfBoundsClickCheck = useCallback( (e: MouseEvent | TouchEvent) => { - if (wrapperRef && !wrapperRef.current?.contains(e.target as Node)) { + if ( + wrapperRef?.current && + !wrapperRef.current.contains(e.target as Node) + ) { outOfBoundsCallback(e); } },