@@ -16,6 +16,8 @@ import RoundIconButton from '../Button/RoundIconButton'
1616import VaultNameBadge from '../Vaults/VaultNameBadge'
1717import LastEditedByBadge from '../Vaults/LastEditedByBadge'
1818import { useItemVaultInfo } from '@/Hooks/useItemVaultInfo'
19+ import LinkedItemModalView from './LinkedItemModalView'
20+ import Icon from '../Icon/Icon'
1921
2022type Props = {
2123 linkingController : LinkingController
@@ -124,6 +126,7 @@ const LinkedItemBubblesContainer = ({
124126 )
125127 }
126128
129+ const [ showAllItemsModal , setShowAllItemsModal ] = useState ( false )
127130 const itemsToDisplay = allItemsLinkedToItem . concat ( notesLinkingToItem ) . concat ( filesLinkingToItem )
128131 const ItemsToShowWhenCollapsed = 5
129132 const [ isCollapsed , setIsCollapsed ] = useState (
@@ -206,7 +209,22 @@ const LinkedItemBubblesContainer = ({
206209 readonly = { readonly }
207210 />
208211 ) ) }
209- { isCollapsed && nonVisibleItems > 0 && < span className = "flex-shrink-0" > and { nonVisibleItems } more...</ span > }
212+ { isCollapsed && nonVisibleItems > 0 && (
213+ < button
214+ onClick = { ( ) => setShowAllItemsModal ( true ) }
215+ className = { classNames (
216+ 'group h-6 cursor-pointer items-center rounded bg-passive-4-opacity-variant py-2 pl-1 pr-2 align-middle text-sm' ,
217+ 'text-text hover:bg-contrast focus:bg-contrast lg:text-xs' , 'inline-flex'
218+ ) }
219+ >
220+ < Icon type = "more" className = { classNames ( 'mr-1 flex-shrink-0' , 'text-info' ) } size = "small" />
221+ < span className = "flex items-center overflow-hidden overflow-ellipsis whitespace-nowrap" >
222+ < span className = "flex items-center gap-1" >
223+ More ({ itemsToDisplay . length } )
224+ </ span >
225+ </ span >
226+ </ button >
227+ ) }
210228 { ! readonly && (
211229 < ItemLinkAutocompleteInput
212230 focusedId = { focusedId }
@@ -228,6 +246,18 @@ const LinkedItemBubblesContainer = ({
228246 icon = { isCollapsed ? 'chevron-down' : 'chevron-left' }
229247 />
230248 ) }
249+
250+ < LinkedItemModalView
251+ items = { itemsToDisplay }
252+ readonly = { readonly }
253+ isOpen = { showAllItemsModal }
254+ onClose = { ( ) => setShowAllItemsModal ( false ) }
255+ onUnlink = { unlinkItem }
256+ onActivate = { async ( item ) => {
257+ await activateItemAndTogglePane ( item )
258+ setShowAllItemsModal ( false )
259+ } }
260+ />
231261 </ div >
232262 )
233263}
0 commit comments