@@ -16,6 +16,8 @@ import RoundIconButton from '../Button/RoundIconButton'
16
16
import VaultNameBadge from '../Vaults/VaultNameBadge'
17
17
import LastEditedByBadge from '../Vaults/LastEditedByBadge'
18
18
import { useItemVaultInfo } from '@/Hooks/useItemVaultInfo'
19
+ import LinkedItemModalView from './LinkedItemModalView'
20
+ import Icon from '../Icon/Icon'
19
21
20
22
type Props = {
21
23
linkingController : LinkingController
@@ -124,6 +126,7 @@ const LinkedItemBubblesContainer = ({
124
126
)
125
127
}
126
128
129
+ const [ showAllItemsModal , setShowAllItemsModal ] = useState ( false )
127
130
const itemsToDisplay = allItemsLinkedToItem . concat ( notesLinkingToItem ) . concat ( filesLinkingToItem )
128
131
const ItemsToShowWhenCollapsed = 5
129
132
const [ isCollapsed , setIsCollapsed ] = useState (
@@ -206,7 +209,22 @@ const LinkedItemBubblesContainer = ({
206
209
readonly = { readonly }
207
210
/>
208
211
) ) }
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
+ ) }
210
228
{ ! readonly && (
211
229
< ItemLinkAutocompleteInput
212
230
focusedId = { focusedId }
@@ -228,6 +246,18 @@ const LinkedItemBubblesContainer = ({
228
246
icon = { isCollapsed ? 'chevron-down' : 'chevron-left' }
229
247
/>
230
248
) }
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
+ />
231
261
</ div >
232
262
)
233
263
}
0 commit comments