Files
workavia-drive/tdrive/frontend/src/app/views/client/side-bar/index.tsx
T
Eric Doughty-Papassideris 26ca1be629 🚨⚰️ front: Remove unused references
2024-11-13 11:27:31 +01:00

204 lines
6.5 KiB
TypeScript

import { Button } from '@atoms/button/button';
import {
ClockIcon,
CloudIcon,
ExternalLinkIcon,
HeartIcon,
ShareIcon,
TrashIcon,
UserIcon,
UserGroupIcon,
} from '@heroicons/react/outline';
import { useEffect } from 'react';
import useRouterCompany from '@features/router/hooks/use-router-company';
import { useCurrentUser } from 'app/features/users/hooks/use-current-user';
import { useRecoilState } from 'recoil';
import { Title } from '../../../atoms/text';
import { useDriveItem } from '../../../features/drive/hooks/use-drive-item';
import { DriveCurrentFolderAtom } from '../body/drive/browser';
import Account from '../common/account';
import AppGrid from '../common/app-grid';
import DiskUsage from '../common/disk-usage';
import Actions from './actions';
import { useHistory } from 'react-router-dom';
import RouterServices from '@features/router/services/router-service';
import Languages from 'features/global/services/languages-service';
import FeatureTogglesService, {
FeatureNames,
} from '@features/global/services/feature-toggles-service';
export default () => {
const history = useHistory();
const { user } = useCurrentUser();
const company = useRouterCompany();
const { viewId, itemId, dirId } = RouterServices.getStateFromRoute();
const [parentId, setParentId] = useRecoilState(
DriveCurrentFolderAtom({ initialFolderId: viewId || 'user_' + user?.id }),
);
const active = false;
const { sharedWithMe, inTrash, path } = useDriveItem(parentId);
const activeClass = 'bg-zinc-50 dark:bg-zinc-900 !text-blue-500';
let folderType = 'home';
if ((path || [])[0]?.id === 'user_' + user?.id) folderType = 'personal';
if (inTrash) folderType = 'trash';
if (sharedWithMe) folderType = 'shared';
useEffect(() => {
!itemId && !dirId && viewId && setParentId(viewId);
dirId && viewId && setParentId(dirId);
}, [viewId, itemId, dirId]);
return (
<div className="grow flex flex-col overflow-auto -m-4 p-4 relative">
<div className="grow">
<div className="sm:hidden block mb-2">
<div className="flex flex-row space-between w-full">
<div className="grow">
<Account />
</div>
<AppGrid />
</div>
<div className="mt-6" />
<Title>Actions</Title>
</div>
<Actions />
<div className="mt-4" />
<Title>Drive</Title>
<Button
onClick={() => {
history.push(
RouterServices.generateRouteFromState({
companyId: company,
viewId: 'user_' + user?.id,
itemId: '',
dirId: '',
}),
);
// setParentId('user_' + user?.id);
}}
size="lg"
theme="white"
className={
'w-full mb-1 ' +
(folderType === 'personal' && (viewId == '' || viewId == 'user_' + user?.id)
? activeClass
: '')
}
>
<UserIcon className="w-5 h-5 mr-4" /> {Languages.t('components.side_menu.my_drive')}
</Button>
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_SHARED_DRIVE) && (
<Button
onClick={() => {
setParentId('root');
history.push(
RouterServices.generateRouteFromState({
companyId: company,
viewId: 'root',
itemId: '',
dirId: '',
}),
);
}}
size="lg"
theme="white"
className={
'w-full mb-1 ' + (folderType === 'home' && viewId == 'root' ? activeClass : '')
}
>
<CloudIcon className="w-5 h-5 mr-4" /> {Languages.t('components.side_menu.home')}
</Button>
)}
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_MANAGE_ACCESS) && (
<Button
onClick={() => {
history.push(
RouterServices.generateRouteFromState({
companyId: company,
viewId: 'shared_with_me',
itemId: '',
dirId: '',
}),
);
// setParentId('shared_with_me');
}}
size="lg"
theme="white"
className={
'w-full mb-1 ' +
(folderType === 'shared' && viewId == 'shared_with_me' ? activeClass : '')
}
>
<UserGroupIcon className="w-5 h-5 mr-4" />{' '}
{Languages.t('components.side_menu.shared_with_me')}
</Button>
)}
{false && (
<>
<Button
size="lg"
theme="white"
className={'w-full mb-1 ' + (!active ? activeClass : '')}
>
<ClockIcon className="w-5 h-5 mr-4" /> Recent
</Button>
<Button
size="lg"
theme="white"
className={'w-full mb-1 ' + (!active ? activeClass : '')}
>
<HeartIcon className="w-5 h-5 mr-4" /> Favorites
</Button>
</>
)}
<Button
onClick={() => {
history.push(
RouterServices.generateRouteFromState({
companyId: company,
viewId: 'trash_' + user?.id,
itemId: '',
dirId: '',
}),
);
// setParentId('trash_' + user?.id);
}}
size="lg"
theme="white"
className={'w-full mb-1 ' + (viewId?.includes('trash') ? activeClass : '')}
>
<TrashIcon className="w-5 h-5 mr-4 text-rose-500" />{' '}
{Languages.t('components.side_menu.trash')}
</Button>
{false && (
<>
<div className="mt-4" />
<Title>Shared</Title>
<Button
size="lg"
theme="white"
className={'w-full mt-2 mb-1 ' + (!inTrash ? activeClass : '')}
>
<ShareIcon className="w-5 h-5 mr-4" /> Shared with me
</Button>
<Button
size="lg"
theme="white"
className={'w-full mb-1 ' + (inTrash ? activeClass : '')}
>
<ExternalLinkIcon className="w-5 h-5 mr-4" /> Shared by me
</Button>
</>
)}
</div>
<div className="">
<DiskUsage />
</div>
</div>
);
};