1- import { Menu , Transition } from '@headlessui/react' ;
21import { CaretDown , Trash , DownloadSimple } from '@phosphor-icons/react' ;
32import { useTranslationContext } from '../../../../i18n/provider/TranslationProvider' ;
43import { downloadItemsThunk } from '../../../../store/slices/storage/storage.thunks/downloadItemsThunk' ;
54import { useAppDispatch , useAppSelector } from '../../../../store/hooks' ;
65import { uiActions } from '../../../../store/slices/ui' ;
76import { getAppConfig } from '../../../../core/services/config.service' ;
8- import { BreadcrumbsMenuProps } from '../types' ;
97import { DriveItemData } from '../../../../drive/types' ;
8+ import { BreadcrumbsMenuProps } from '@internxt/ui/dist/components/breadcrumbs/BreadcrumbsItem' ;
9+ import { Dropdown } from '@internxt/ui' ;
1010
1111const BreadcrumbsMenuBackups = ( props : BreadcrumbsMenuProps ) : JSX . Element => {
1212 const { translate } = useTranslationContext ( ) ;
@@ -31,61 +31,34 @@ const BreadcrumbsMenuBackups = (props: BreadcrumbsMenuProps): JSX.Element => {
3131 } ;
3232
3333 return (
34- < Menu as = "div" className = "relative" >
35- < Menu . Button
36- className = "flex max-w-fit flex-1 cursor-pointer flex-row items-center truncate rounded-md p-1 px-1.5 font-medium text-gray-100 outline-none hover:bg-gray-5
37- focus-visible:bg-gray-5"
38- >
34+ < Dropdown
35+ classButton = "flex max-w-fit flex-1 cursor-pointer flex-row items-center truncate rounded-md p-1 px-1.5 font-medium text-gray-100 outline-none hover:bg-gray-5 focus-visible:bg-gray-5"
36+ classMenuItems = { `absolute z-10 mt-1 w-56 rounded-md border border-gray-10 bg-surface text-base shadow-subtle-hard outline-none dark:bg-gray-5 ${
37+ isSharedView && 'hidden'
38+ } `}
39+ openDirection = "left"
40+ dropdownActionsContext = { [
41+ {
42+ icon : DownloadSimple ,
43+ name : translate ( 'backups.dropdown.download' ) ,
44+ action : onDownloadBackupButtonClicked ,
45+ } ,
46+ {
47+ icon : Trash ,
48+ name : translate ( 'backups.dropdown.delete' ) ,
49+ action : onDeleteBackupButtonClicked ,
50+ } ,
51+ ] }
52+ item = { props . item . label }
53+ children = {
3954 < div className = "flex max-w-fit flex-1 flex-row items-center truncate" >
4055 < span title = { props . item . label } className = "max-w-sm flex-1 truncate" >
4156 { props . item . label }
4257 </ span >
43- < CaretDown weight = "fill" className = { ` ml-1 h-3 w-3 ${ isSharedView && 'hidden' } ` } />
58+ { ! isSharedView && < CaretDown weight = "fill" className = " ml-1 h-3 w-3" /> }
4459 </ div >
45- </ Menu . Button >
46- < Transition
47- className = { 'absolute left-0' }
48- enter = "transition origin-top-left duration-100 ease-out"
49- enterFrom = "scale-95 opacity-0"
50- enterTo = "scale-100 opacity-100"
51- leave = "transition origin-top-left duration-100 ease-out"
52- leaveFrom = "scale-95 opacity-100"
53- leaveTo = "scale-100 opacity-0"
54- >
55- < Menu . Items
56- className = { `absolute z-10 mt-1 w-56 rounded-md border border-gray-10 bg-surface py-1.5 text-base shadow-subtle-hard outline-none dark:bg-gray-5 ${
57- isSharedView && 'hidden'
58- } `}
59- >
60- < Menu . Item >
61- { ( { active } ) => (
62- < button
63- onClick = { onDownloadBackupButtonClicked }
64- className = { `${
65- active && 'bg-gray-5'
66- } flex w-full cursor-pointer items-center px-3 py-2 text-gray-80 hover:bg-gray-5 dark:hover:bg-gray-10`}
67- >
68- < DownloadSimple size = { 20 } />
69- < p className = "ml-3" > { translate ( 'backups.dropdown.download' ) } </ p >
70- </ button >
71- ) }
72- </ Menu . Item >
73- < Menu . Item >
74- { ( { active } ) => (
75- < button
76- onClick = { onDeleteBackupButtonClicked }
77- className = { `${
78- active && 'bg-gray-5'
79- } flex w-full cursor-pointer items-center px-3 py-2 text-gray-80 hover:bg-gray-5 dark:hover:bg-gray-10`}
80- >
81- < Trash size = { 20 } />
82- < p className = "ml-3" > { translate ( 'backups.dropdown.delete' ) } </ p >
83- </ button >
84- ) }
85- </ Menu . Item >
86- </ Menu . Items >
87- </ Transition >
88- </ Menu >
60+ }
61+ />
8962 ) ;
9063} ;
9164
0 commit comments