diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx index 379209224d..01b95b6849 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useMemo } from "react" -import { Crumb, useToaster } from "@chainsafe/common-components" +import { Crumb, useHistory, useToaster } from "@chainsafe/common-components" import { useDrive } from "../../../Contexts/DriveContext" import { getArrayOfPaths, getPathFromArray } from "../../../Utils/pathUtils" import { IBulkOperations, IFilesBrowserModuleProps, IFilesTableBrowserProps } from "./types" @@ -8,6 +8,7 @@ import { CONTENT_TYPES } from "../../../Utils/Constants" import DragAndDrop from "../../../Contexts/DnDContext" import { useQuery } from "../../../Utils/Helpers" import { t } from "@lingui/macro" +import { ROUTE_LINKS } from "../../FilesRoutes" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" import { DISMISSED_SURVEY_KEY } from "../../SurveyBanner" import { useUser } from "@chainsafe/common-contexts" @@ -29,6 +30,7 @@ const CSFFileBrowser: React.FC = ({ controls = true }: } = useDrive() const queryPath = useQuery().get("path") + const { redirect } = useHistory() const { localStorageGet, localStorageSet } = useLocalStorage() const { profile } = useUser() const showSurvey = localStorageGet(DISMISSED_SURVEY_KEY) === "false" @@ -101,6 +103,13 @@ const CSFFileBrowser: React.FC = ({ controls = true }: } }, [addToastMessage, uploadFiles]) + const viewFolder = useCallback((cid: string) => { + const fileSystemItem = pathContents.find(f => f.cid === cid) + if (fileSystemItem && fileSystemItem.content_type === CONTENT_TYPES.Directory) { + redirect(ROUTE_LINKS.Home(`${currentPath}${fileSystemItem.name}`)) + } + }, [currentPath, pathContents, redirect]) + const bulkOperations: IBulkOperations = useMemo(() => ({ [CONTENT_TYPES.Directory]: ["move"], [CONTENT_TYPES.File]: ["delete", "move"] @@ -126,6 +135,7 @@ const CSFFileBrowser: React.FC = ({ controls = true }: downloadFile={downloadFile} handleMove={handleMove} handleRename={handleRename} + viewFolder={viewFolder} handleUploadOnDrop={handleUploadOnDrop} uploadsInProgress={uploadsInProgress} loadingCurrentPath={loadingCurrentPath} diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx index 0e8efa5d6f..08a319ed75 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx @@ -253,7 +253,7 @@ const FileInfoModal: React.FC = ({ variant="body2" component="p" > - {dayjs.unix(fullFileInfo.content.created_at).format("DD MMM YYYY h:mm a")} + {fullFileInfo.content.created_at && dayjs.unix(fullFileInfo.content.created_at).format("DD MMM YYYY h:mm a")} ) : null} diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemItem.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemItem.tsx index 21b5cb4c5a..36e91c2017 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemItem.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemItem.tsx @@ -128,7 +128,6 @@ const FileSystemItemRow: React.FC = ({ file, files, currentPath, - updateCurrentPath, selected, editing, setEditing, @@ -145,7 +144,6 @@ const FileSystemItemRow: React.FC = ({ setFileInfoPath, handleSelect, itemOperations, - resetSelectedFiles, browserView }) => { const { cid, name, isFolder, content_type } = file @@ -312,9 +310,8 @@ const FileSystemItemRow: React.FC = ({ } const onFolderClick = useCallback(() => { - updateCurrentPath(`${currentPath}${name}`, undefined, true) - resetSelectedFiles() - }, [currentPath, name, resetSelectedFiles, updateCurrentPath]) + viewFolder && viewFolder(cid) + }, [cid, viewFolder]) const onFileClick = useCallback(() => { setPreviewFileIndex(files?.indexOf(file)) diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemTableItem.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemTableItem.tsx index 274474851e..b2c97fdd88 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemTableItem.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/views/FileSystemItem/FileSystemTableItem.tsx @@ -224,7 +224,7 @@ function FileSystemTableItem({ <> { - dayjs.unix(created_at).format("DD MMM YYYY h:mm a") + created_at && dayjs.unix(created_at).format("DD MMM YYYY h:mm a") } diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/views/FilesTable.view.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/views/FilesTable.view.tsx index 192724535f..e1cd8f2a36 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/views/FilesTable.view.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/views/FilesTable.view.tsx @@ -545,6 +545,11 @@ const FilesTableView = ({ setIsSurveyBannerVisible(false) }, [setIsSurveyBannerVisible]) + const handleViewFolder = useCallback((cid: string) => { + resetSelectedCids() + viewFolder && viewFolder(cid) + }, [viewFolder, resetSelectedCids]) + return (
{