1 import type { FC } from 'react';
3 import { c } from 'ttag';
5 import { Button } from '@proton/atoms';
6 import { Icon } from '@proton/components';
7 import { bulkSelectionDTO, useBulkSelect } from '@proton/pass/components/Bulk/BulkSelectProvider';
8 import { useItemsActions } from '@proton/pass/components/Item/ItemActionsProvider';
9 import { useNavigation } from '@proton/pass/components/Navigation/NavigationProvider';
11 type Props = { disabled?: boolean };
13 export const BulkActions: FC<Props> = (props) => {
14 const { matchTrash } = useNavigation();
15 const { selection, count } = useBulkSelect();
16 const disabled = count === 0 || props.disabled;
18 const { moveMany, trashMany, deleteMany, restoreMany } = useItemsActions();
25 onClick={() => restoreMany(bulkSelectionDTO(selection))}
28 title={c('Action').t`Bulk restore items from trash`}
29 className="flex flex-nowrap gap-2 grow-0 text-sm text-semibold"
31 <Icon name="clock-rotate-left" className="shrink-0" />
32 <span className="text-ellipsis hidden xl:block">{c('Action').t`Restore`}</span>
37 onClick={() => deleteMany(bulkSelectionDTO(selection))}
40 title={c('Action').t`Bulk delete items from trash`}
41 className="flex flex-nowrap gap-2 grow-0 text-sm text-semibold"
43 <Icon name="trash-cross" className="shrink-0" />
44 <span className="text-ellipsis hidden xl:block">{c('Action').t`Delete`}</span>
52 onClick={() => moveMany(bulkSelectionDTO(selection))}
55 title={c('Action').t`Bulk move items to another vault`}
56 className="flex flex-nowrap gap-2 grow-0 text-sm text-semibold"
58 <Icon name="folder-arrow-in" className="shrink-0" />
59 <span className="text-ellipsis hidden xl:block">{c('Action').t`Move`}</span>
64 onClick={() => trashMany(bulkSelectionDTO(selection))}
67 title={c('Action').t`Bulk move items to trash`}
68 className="flex flex-nowrap gap-2 grow-0 text-sm text-semibold"
70 <Icon name="trash" className="shrink-0" />
71 <span className="text-ellipsis hidden xl:block">{c('Action').t`Trash`}</span>