1+ import { useState } from 'react'
12import { Link } from 'react-router-dom'
23import { useTranslation } from 'react-i18next'
34import {
@@ -14,6 +15,7 @@ import { RouteWithParams } from '@/sections/Route.enum'
1415import { CollectionRepository } from '@/collection/domain/repositories/CollectionRepository'
1516import { CollectionHelper } from '../CollectionHelper'
1617import { DeleteCollectionButton } from './delete-collection-button/DeleteCollectionButton'
18+ import { NotImplementedModal } from '@/sections/not-implemented/NotImplementedModal'
1719import styles from './EditCollectionDropdown.module.scss'
1820
1921interface EditCollectionDropdownProps {
@@ -28,49 +30,80 @@ export const EditCollectionDropdown = ({
2830 canUserDeleteCollection
2931} : EditCollectionDropdownProps ) => {
3032 const { t } = useTranslation ( 'collection' )
33+ const [ showNotImplementedModal , setShowNotImplementedModal ] = useState ( false )
3134
3235 const canCollectionBeDeleted =
3336 canUserDeleteCollection &&
3437 ! CollectionHelper . isRootCollection ( collection . hierarchy ) &&
3538 collection . childCount === 0
3639
40+ const handleNotImplementedClick = ( event : React . MouseEvent < HTMLElement > ) => {
41+ event . stopPropagation ( )
42+ setShowNotImplementedModal ( true )
43+ }
44+
3745 return (
38- < DropdownButton
39- id = "edit-collection-dropdown"
40- title = { t ( 'editCollection.edit' ) }
41- asButtonGroup
42- variant = "secondary"
43- icon = { < PencilFill className = { styles [ 'dropdown-icon' ] } /> } >
44- < DropdownHeader className = { styles [ 'dropdown-header' ] } >
45- < div className = { styles [ 'collection-icon' ] } >
46- < Icon name = { IconName . COLLECTION } />
47- </ div >
48- < div >
49- < p className = { styles [ 'collection-name' ] } >
50- { collection . name } { ' ' }
51- { collection . affiliation ? < span > ({ collection . affiliation } )</ span > : null }
52- </ p >
53- < p className = { styles [ 'collection-alias' ] } > { collection . id } </ p >
54- </ div >
55- </ DropdownHeader >
56- < DropdownSeparator />
57- < DropdownButtonItem as = { Link } to = { RouteWithParams . EDIT_COLLECTION ( collection . id ) } >
58- { t ( 'editCollection.generalInfo' ) }
59- </ DropdownButtonItem >
60- < DropdownButtonItem as = { Link } to = { RouteWithParams . EDIT_FEATURED_ITEMS ( collection . id ) } >
61- { t ( 'featuredItems.title' ) }
62- </ DropdownButtonItem >
46+ < >
47+ < DropdownButton
48+ id = "edit-collection-dropdown"
49+ title = { t ( 'editCollection.edit' ) }
50+ asButtonGroup
51+ variant = "secondary"
52+ icon = { < PencilFill className = { styles [ 'dropdown-icon' ] } /> } >
53+ < DropdownHeader className = { styles [ 'dropdown-header' ] } >
54+ < div className = { styles [ 'collection-icon' ] } >
55+ < Icon name = { IconName . COLLECTION } />
56+ </ div >
57+ < div >
58+ < p className = { styles [ 'collection-name' ] } >
59+ { collection . name } { ' ' }
60+ { collection . affiliation ? < span > ({ collection . affiliation } )</ span > : null }
61+ </ p >
62+ < p className = { styles [ 'collection-alias' ] } > { collection . id } </ p >
63+ </ div >
64+ </ DropdownHeader >
65+ < DropdownSeparator />
66+ < DropdownButtonItem as = { Link } to = { RouteWithParams . EDIT_COLLECTION ( collection . id ) } >
67+ { t ( 'editCollection.generalInfo' ) }
68+ </ DropdownButtonItem >
69+ < DropdownButtonItem as = { Link } to = { RouteWithParams . EDIT_FEATURED_ITEMS ( collection . id ) } >
70+ { t ( 'featuredItems.title' ) }
71+ </ DropdownButtonItem >
72+ < DropdownButtonItem onClick = { handleNotImplementedClick } >
73+ { t ( 'editCollection.themeAndWidgets' ) }
74+ </ DropdownButtonItem >
75+ < DropdownButtonItem onClick = { handleNotImplementedClick } >
76+ { t ( 'editCollection.permissions' ) }
77+ </ DropdownButtonItem >
78+ < DropdownButtonItem onClick = { handleNotImplementedClick } >
79+ { t ( 'editCollection.groups' ) }
80+ </ DropdownButtonItem >
81+ < DropdownButtonItem onClick = { handleNotImplementedClick } >
82+ { t ( 'editCollection.datasetTemplates' ) }
83+ </ DropdownButtonItem >
84+ < DropdownButtonItem onClick = { handleNotImplementedClick } >
85+ { t ( 'editCollection.datasetGuestbooks' ) }
86+ </ DropdownButtonItem >
87+ < DropdownButtonItem onClick = { handleNotImplementedClick } >
88+ { t ( 'editCollection.featuredDataverses' ) }
89+ </ DropdownButtonItem >
90+
91+ { canCollectionBeDeleted && (
92+ < >
93+ < DropdownSeparator />
94+ < DeleteCollectionButton
95+ collectionId = { collection . id }
96+ parentCollection = { CollectionHelper . getParentCollection ( collection . hierarchy ) }
97+ collectionRepository = { collectionRepository }
98+ />
99+ </ >
100+ ) }
101+ </ DropdownButton >
63102
64- { canCollectionBeDeleted && (
65- < >
66- < DropdownSeparator />
67- < DeleteCollectionButton
68- collectionId = { collection . id }
69- parentCollection = { CollectionHelper . getParentCollection ( collection . hierarchy ) }
70- collectionRepository = { collectionRepository }
71- />
72- </ >
73- ) }
74- </ DropdownButton >
103+ < NotImplementedModal
104+ show = { showNotImplementedModal }
105+ handleClose = { ( ) => setShowNotImplementedModal ( false ) }
106+ />
107+ </ >
75108 )
76109}
0 commit comments