// Copyright 2020 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React from 'react'; import { LocalizerType } from '../../../types/Util'; import { MediaItemType } from '../../../types/MediaItem'; import { ConversationType } from '../../../state/ducks/conversations'; import { PanelSection } from './PanelSection'; import { bemGenerator } from './util'; import { MediaGridItem } from '../media-gallery/MediaGridItem'; export type Props = { conversation: ConversationType; i18n: LocalizerType; loadRecentMediaItems: (limit: number) => void; showAllMedia: () => void; showLightboxForMedia: ( selectedMediaItem: MediaItemType, media: Array ) => void; }; const MEDIA_ITEM_LIMIT = 6; const bem = bemGenerator('module-conversation-details-media-list'); export const ConversationDetailsMediaList: React.ComponentType = ({ conversation, i18n, loadRecentMediaItems, showAllMedia, showLightboxForMedia, }) => { const mediaItems = conversation.recentMediaItems || []; React.useEffect(() => { loadRecentMediaItems(MEDIA_ITEM_LIMIT); }, [loadRecentMediaItems]); if (mediaItems.length === 0) { return null; } return ( {i18n('ConversationDetailsMediaList--show-all')} } borderless title={i18n('ConversationDetailsMediaList--shared-media')} >
{mediaItems.slice(0, MEDIA_ITEM_LIMIT).map(mediaItem => ( showLightboxForMedia(mediaItem, mediaItems)} /> ))}
); };