diff --git a/src/components/LeftSection/LeftSection.jsx b/src/components/LeftSection/LeftSection.jsx
index 77ffe48..d316b22 100644
--- a/src/components/LeftSection/LeftSection.jsx
+++ b/src/components/LeftSection/LeftSection.jsx
@@ -14,7 +14,7 @@ class LeftSection extends React.Component {
render() {
return (
-
-
-
-
{
className="text-[#637381] text-[18px] leading-[21px] font-medium m-0 no-underline animate cursor-pointer"
onClick={goHome}
>
- myDrive
+ Home
diff --git a/src/components/PopupWindow/PopupWindow.jsx b/src/components/PopupWindow/PopupWindow.jsx
index 3887af0..a133656 100644
--- a/src/components/PopupWindow/PopupWindow.jsx
+++ b/src/components/PopupWindow/PopupWindow.jsx
@@ -111,69 +111,6 @@ class PopupWindow extends React.Component {
/>
);
-
- return (
-
-
- {capitalize(this.props.popupFile.filename)}
-
-
- {!this.props.popupFile.metadata.isVideo ? (
-
- {!this.props.popupFile.metadata.hasThumbnail ? (
-
No Preview Available
- ) : undefined}
-
- {!this.props.popupFile.metadata.hasThumbnail ? (
-

- ) : (
-

- )}
-
-
- {!this.props.popupFile.metadata.hasThumbnail ? undefined : (
-
- )}
-
-
- ) : (
-
- )}
-
-
-

-
- );
}
}
diff --git a/src/components/QuickAccessItem/index.tsx b/src/components/QuickAccessItem/index.tsx
new file mode 100644
index 0000000..c4edd0b
--- /dev/null
+++ b/src/components/QuickAccessItem/index.tsx
@@ -0,0 +1,165 @@
+import capitalize from "../../utils/capitalize";
+import moment from "moment";
+import React, { memo, useMemo, useRef } from "react";
+import ContextMenu from "../ContextMenu";
+import classNames from "classnames";
+import { getFileColor, getFileExtension } from "../../utils/files";
+import { useThumbnail } from "../../hooks/files";
+import { useContextMenu } from "../../hooks/contextMenu";
+import { useDispatch, useSelector } from "react-redux";
+import mobilecheck from "../../utils/mobileCheck";
+import { startSetSelectedItem } from "../../actions/selectedItem";
+import { setPopupFile } from "../../actions/popupFile";
+import { FileInterface } from "../../types/file";
+import { useAppDispatch, useAppSelector } from "../../hooks/store";
+import { setMainSelect } from "../../reducers/selected";
+
+interface QuickAccessItemProps {
+ file: FileInterface;
+}
+
+const QuickAccessItem = memo((props: QuickAccessItemProps) => {
+ const { file } = props;
+ const elementSelected = useAppSelector((state) => {
+ if (state.selected.mainSection.type !== "quick-item") return false;
+ return state.selected.mainSection.id === file._id;
+ });
+ console.log("ele selected 2", elementSelected);
+ const { image, hasThumbnail, imageOnError } = useThumbnail(
+ file.metadata.hasThumbnail,
+ file.metadata.thumbnailID
+ );
+ const dispatch = useAppDispatch();
+ const lastSelected = useRef(0);
+
+ const {
+ onContextMenu,
+ closeContextMenu,
+ onTouchStart,
+ onTouchMove,
+ onTouchEnd,
+ clickStopPropagation,
+ ...contextMenuState
+ } = useContextMenu();
+
+ const fileExtension = useMemo(
+ () => getFileExtension(file.filename),
+ [file.filename]
+ );
+
+ const imageColor = useMemo(
+ () => getFileColor(file.filename),
+ [file.filename]
+ );
+
+ // TODO: See if we can memoize this
+ const quickItemClick = () => {
+ const currentDate = Date.now();
+
+ if (!elementSelected) {
+ // dispatch(startSetSelectedItem(file._id, true, true));
+ dispatch(
+ setMainSelect({ file, id: file._id, type: "quick-item", folder: null })
+ );
+ lastSelected.current = Date.now();
+ return;
+ }
+
+ const isMobile = mobilecheck();
+
+ if (isMobile || currentDate - lastSelected.current < 1500) {
+ dispatch(setPopupFile({ showPopup: true, ...file }));
+ }
+
+ lastSelected.current = Date.now();
+ };
+
+ return (
+
+ {contextMenuState.selected && (
+
+
+
+ )}
+
+ {hasThumbnail ? (
+

+ ) : (
+
+ )}
+ {!hasThumbnail && (
+
+ )}
+
+
+
+ {capitalize(file.filename)}
+
+
+ Created {moment(file.uploadDate).format("MM/DD/YY hh:mma")}
+
+
+
+ );
+});
+
+export default QuickAccessItem;
diff --git a/src/components/QuickAccessItem/index.jsx b/src/components/QuickAccessItem/index2.jsx
similarity index 98%
rename from src/components/QuickAccessItem/index.jsx
rename to src/components/QuickAccessItem/index2.jsx
index 1e71624..fbe249d 100644
--- a/src/components/QuickAccessItem/index.jsx
+++ b/src/components/QuickAccessItem/index2.jsx
@@ -10,6 +10,7 @@ import { useDispatch, useSelector } from "react-redux";
import mobilecheck from "../../utils/mobileCheck";
import { startSetSelectedItem } from "../../actions/selectedItem";
import { setPopupFile } from "../../actions/popupFile";
+import { useAppSelector } from "../../hooks/store";
const QuickAccessItem = memo((props) => {
const { file } = props;
diff --git a/src/components/RightSection/index.jsx b/src/components/RightSection/index.tsx
similarity index 74%
rename from src/components/RightSection/index.jsx
rename to src/components/RightSection/index.tsx
index 636f8c3..d7fa46b 100644
--- a/src/components/RightSection/index.jsx
+++ b/src/components/RightSection/index.tsx
@@ -9,15 +9,17 @@ import { getFileExtension } from "../../utils/files";
import { useContextMenu } from "../../hooks/contextMenu";
import { setPopupFile } from "../../actions/popupFile";
import { useNavigate } from "react-router-dom";
+import { useAppSelector } from "../../hooks/store";
+import { resetSelected } from "../../reducers/selected";
const RightSection = memo(() => {
- const selectedItem = useSelector((state) => state.selectedItem);
+ const selectedItem = useAppSelector((state) => state.selected.mainSection);
const navigate = useNavigate();
const dispatch = useDispatch();
const formattedName = useMemo(() => {
- if (!selectedItem) return "";
- const name = selectedItem.name;
+ if (!selectedItem.id) return "";
+ const name = selectedItem.file?.filename || selectedItem.folder?.name || "";
const maxLength = 66;
const ellipsis = "...";
if (name.length <= maxLength) {
@@ -31,22 +33,27 @@ const RightSection = memo(() => {
const end = name.slice(-endLength);
return `${start}${ellipsis}${end}`;
- }, [selectedItem?.name, selectedItem?.file]);
+ }, [
+ selectedItem?.id,
+ selectedItem?.file?.filename,
+ selectedItem?.folder?.name,
+ ]);
- const formattedDate = useMemo(
- () => moment(selectedItem.date).format("L"),
- [selectedItem?.date, moment]
- );
+ const formattedDate = useMemo(() => {
+ const date =
+ selectedItem.file?.uploadDate || selectedItem.folder?.createdAt;
+ return moment(date).format("L");
+ }, [selectedItem?.file?.uploadDate, selectedItem.folder?.createdAt, moment]);
const fileSize = useMemo(() => {
- if (!selectedItem || !selectedItem.size) return 0;
- return bytes(selectedItem.size);
- }, [selectedItem?.size, bytes]);
+ if (!selectedItem.file?.length) return 0;
+ return bytes(selectedItem.file.length);
+ }, [selectedItem?.file?.length, bytes]);
const fileExtension = useMemo(() => {
- if (!selectedItem?.file) return null;
- return getFileExtension(selectedItem.name);
- }, [selectedItem?.file, selectedItem?.name, getFileExtension]);
+ if (!selectedItem?.file?.filename) return null;
+ return getFileExtension(selectedItem.file.filename);
+ }, [selectedItem?.file?.filename, getFileExtension]);
const {
onContextMenu,
@@ -58,24 +65,24 @@ const RightSection = memo(() => {
...contextMenuState
} = useContextMenu();
- const resetSelected = () => {
- dispatch(resetSelectedItem());
+ const reset = () => {
+ dispatch(resetSelected());
};
- const openItem = (e) => {
+ const openItem = () => {
if (selectedItem.file) {
- dispatch(setPopupFile({ showPopup: true, ...selectedItem.data }));
+ dispatch(setPopupFile({ showPopup: true, ...selectedItem.file }));
} else {
- navigate(`/folder/${selectedItem.data._id}`);
+ navigate(`/folder/${selectedItem.id}`);
}
};
return (
- {selectedItem.name === "" ? (
+ {selectedItem.id === "" ? (
@@ -97,7 +104,7 @@ const RightSection = memo(() => {
@@ -112,13 +119,13 @@ const RightSection = memo(() => {
Type
- {selectedItem.size ? fileExtension : "Folder"}
+ {selectedItem.file ? fileExtension : "Folder"}
@@ -136,29 +143,17 @@ const RightSection = memo(() => {
{formattedDate}
-
-
- Location
-
-
- {selectedItem.drive
- ? "Google Drive"
- : selectedItem.personalFile
- ? "Amazon S3"
- : "myDrive"}
-
-
- Privacy
+ Access
- {selectedItem.link ? "Public" : "Only you"}
+ {selectedItem.file?.metadata.link ? "Public" : "Private"}
@@ -172,6 +167,7 @@ const RightSection = memo(() => {