✨ Go to a folder when searched (#68)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { FolderIcon } from '@heroicons/react/solid';
|
||||
import Highlighter from 'react-highlight-words';
|
||||
import { useRecoilState, useRecoilValue } from 'recoil';
|
||||
import { onDriveItemDownloadClick, openDriveItem } from '../common';
|
||||
import { onDriveItemDownloadClick } from '../common';
|
||||
import ResultContext from './result-context';
|
||||
import { Button } from '@atoms/button/button';
|
||||
import { DownloadIcon } from '@atoms/icons-agnostic';
|
||||
@@ -15,7 +15,6 @@ import {
|
||||
} from '@atoms/icons-colored';
|
||||
import * as Text from '@atoms/text';
|
||||
import { useCompanyApplications } from '@features/applications/hooks/use-company-applications';
|
||||
import useRouterCompany from '@features/router/hooks/use-router-company';
|
||||
import { DriveItem } from '@features/drive/types';
|
||||
import FileUploadAPIClient from '@features/files/api/file-upload-api-client';
|
||||
import { formatDate } from '@features/global/utils/format-date';
|
||||
@@ -24,14 +23,13 @@ import useRouterWorkspace from '@features/router/hooks/use-router-workspace';
|
||||
import { useSearchModal } from '@features/search/hooks/use-search';
|
||||
import { SearchInputState } from '@features/search/state/search-input';
|
||||
import { UserType } from '@features/users/types/user';
|
||||
import { useFileViewerModal } from '@features/viewer/hooks/use-viewer';
|
||||
import { useDrivePreview } from '@features/drive/hooks/use-drive-preview';
|
||||
import Media from '@molecules/media';
|
||||
import { DriveCurrentFolderAtom } from '@views/client/body/drive/browser';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import RouterServices from '@features/router/services/router-service';
|
||||
import { useCurrentUser } from 'app/features/users/hooks/use-current-user';
|
||||
|
||||
import useRouterCompany from 'app/features/router/hooks/use-router-company';
|
||||
|
||||
export default (props: { driveItem: DriveItem & { user?: UserType }}) => {
|
||||
const history = useHistory();
|
||||
@@ -49,10 +47,14 @@ export default (props: { driveItem: DriveItem & { user?: UserType } }) => {
|
||||
const extension = name?.split('.').pop();
|
||||
|
||||
const { setOpen } = useSearchModal();
|
||||
const { open: openViewer } = useFileViewerModal();
|
||||
const { open } = useDrivePreview();
|
||||
const company = useRouterCompany();
|
||||
|
||||
function openDoc(file: DriveItem){
|
||||
open(file);
|
||||
if (file.is_directory) setOpen(false);
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
className="flex items-center p-2 hover:bg-zinc-50 dark:hover:bg-zinc-800 rounded-md cursor-pointer"
|
||||
@@ -74,6 +76,7 @@ export default (props: { driveItem: DriveItem & { user?: UserType } }) => {
|
||||
</Text.Info>
|
||||
<ResultContext user={file.user} />
|
||||
</div>
|
||||
{!file.is_directory && (
|
||||
<div
|
||||
className="whitespace-nowrap"
|
||||
onClick={e => {
|
||||
@@ -89,6 +92,7 @@ export default (props: { driveItem: DriveItem & { user?: UserType } }) => {
|
||||
<DownloadIcon className="text-blue-500 w-6 h-6" />
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -9,15 +9,21 @@ import { DriveItem } from '../types';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import RouterServices from '@features/router/services/router-service';
|
||||
import useRouterCompany from '@features/router/hooks/use-router-company';
|
||||
import { DriveCurrentFolderAtom } from 'app/views/client/body/drive/browser';
|
||||
|
||||
export const useDrivePreviewModal = () => {
|
||||
const history = useHistory();
|
||||
const company = useRouterCompany();
|
||||
const [status, setStatus] = useRecoilState(DriveViewerState);
|
||||
const [ parentId, setParentId ] = useRecoilState(
|
||||
DriveCurrentFolderAtom({ initialFolderId: 'root' }),
|
||||
);
|
||||
|
||||
const open: (item: DriveItem) => void = (item: DriveItem) => {
|
||||
if (item.last_version_cache?.file_metadata?.source === 'internal') {
|
||||
setStatus({ item, loading: true });
|
||||
} else if (item.is_directory){
|
||||
setParentId(item.id);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -89,3 +95,4 @@ export const useDrivePreviewDisplayData = () => {
|
||||
|
||||
return { download, id, name, type, extension, size: status.details?.item.size };
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user