import React from 'react'; import { ConversationListItemProps, ConversationListItemWithDetails } from './ConversationListItem'; import { MessageSearchResult, MessageSearchResultProps } from './MessageSearchResult'; import { LocalizerType } from '../types/Util'; export type SearchResultsProps = { contacts: Array; conversations: Array; hideMessagesHeader: boolean; messages: Array; searchTerm: string; }; type PropsHousekeeping = { i18n: LocalizerType; openConversationExternal: (id: string, messageId?: string) => void; }; type Props = SearchResultsProps & PropsHousekeeping; export class SearchResults extends React.Component { public render() { const { conversations, contacts, hideMessagesHeader, i18n, messages, openConversationExternal, searchTerm, } = this.props; const haveConversations = conversations && conversations.length; const haveContacts = contacts && contacts.length; const haveMessages = messages && messages.length; const noResults = !haveConversations && !haveContacts && !haveMessages; return (
{noResults ? (
{i18n('noSearchResults', [searchTerm])}
) : null} {haveConversations ? (
{i18n('conversationsHeader')}
{conversations.map(conversation => ( ))}
) : null} {haveContacts ? this.renderContacts(i18n('contactsHeader'), contacts) : null} {haveMessages ? (
{hideMessagesHeader ? null : (
{i18n('messagesHeader')}
)} {messages.map(message => ( ))}
) : null}
); } private renderContacts(header: string, items: Array) { const { i18n, openConversationExternal } = this.props; return (
{header}
{items.map(contact => ( ))}
); } }