You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
import React from 'react';
 | 
						|
import {
 | 
						|
  ConversationListItemProps,
 | 
						|
  MemoConversationListItemWithDetails,
 | 
						|
} from './ConversationListItem';
 | 
						|
 | 
						|
export type SearchResultsProps = {
 | 
						|
  contacts: Array<ConversationListItemProps>;
 | 
						|
  conversations: Array<ConversationListItemProps>;
 | 
						|
  hideMessagesHeader: boolean;
 | 
						|
  searchTerm: string;
 | 
						|
};
 | 
						|
 | 
						|
const ContactsItem = (props: { header: string; items: Array<ConversationListItemProps> }) => {
 | 
						|
  return (
 | 
						|
    <div className="module-search-results__contacts">
 | 
						|
      <div className="module-search-results__contacts-header">{props.header}</div>
 | 
						|
      {props.items.map(contact => (
 | 
						|
        <MemoConversationListItemWithDetails {...contact} />
 | 
						|
      ))}
 | 
						|
    </div>
 | 
						|
  );
 | 
						|
};
 | 
						|
 | 
						|
export const SearchResults = (props: SearchResultsProps) => {
 | 
						|
  const { conversations, contacts, searchTerm } = props;
 | 
						|
 | 
						|
  const haveConversations = conversations && conversations.length;
 | 
						|
  const haveContacts = contacts && contacts.length;
 | 
						|
  const noResults = !haveConversations && !haveContacts;
 | 
						|
 | 
						|
  return (
 | 
						|
    <div className="module-search-results">
 | 
						|
      {noResults ? (
 | 
						|
        <div className="module-search-results__no-results">
 | 
						|
          {window.i18n('noSearchResults', [searchTerm])}
 | 
						|
        </div>
 | 
						|
      ) : null}
 | 
						|
      {haveConversations ? (
 | 
						|
        <div className="module-search-results__conversations">
 | 
						|
          <div className="module-search-results__conversations-header">
 | 
						|
            {window.i18n('conversationsHeader')}
 | 
						|
          </div>
 | 
						|
          {conversations.map(conversation => (
 | 
						|
            <MemoConversationListItemWithDetails {...conversation} />
 | 
						|
          ))}
 | 
						|
        </div>
 | 
						|
      ) : null}
 | 
						|
      {haveContacts ? (
 | 
						|
        <ContactsItem header={window.i18n('contactsHeader')} items={contacts} />
 | 
						|
      ) : null}
 | 
						|
 | 
						|
      {/* {haveMessages ? (
 | 
						|
        <div className="module-search-results__messages">
 | 
						|
          {hideMessagesHeader ? null : (
 | 
						|
            <div className="module-search-results__messages-header">
 | 
						|
              {window.i18n('messagesHeader')}
 | 
						|
            </div>
 | 
						|
          )}
 | 
						|
          {messages.map(message => (
 | 
						|
            <MessageSearchResult key={message.id} {...message} />
 | 
						|
          ))}
 | 
						|
        </div>
 | 
						|
      ) : null} */}
 | 
						|
    </div>
 | 
						|
  );
 | 
						|
};
 |