conversation search: do not show user or friends results

pull/712/head
Audric Ackermann 6 years ago
parent 28a27711e1
commit f241440855

@ -17,12 +17,6 @@ interface Props {
searchTerm: string; searchTerm: string;
isSecondaryDevice: boolean; isSecondaryDevice: boolean;
// Action Creators
startNewConversation: (
query: string,
options: { regionCode: string }
) => void;
openConversationInternal: (id: string, messageId?: string) => void; openConversationInternal: (id: string, messageId?: string) => void;
updateSearchTerm: (searchTerm: string) => void; updateSearchTerm: (searchTerm: string) => void;
search: (query: string, options: SearchOptions) => void; search: (query: string, options: SearchOptions) => void;
@ -60,7 +54,6 @@ export class LeftPane extends React.Component<Props, State> {
private renderMessageSection() { private renderMessageSection() {
const { const {
startNewConversation,
openConversationInternal, openConversationInternal,
conversations, conversations,
searchResults, searchResults,
@ -73,7 +66,6 @@ export class LeftPane extends React.Component<Props, State> {
return ( return (
<LeftPaneMessageSection <LeftPaneMessageSection
startNewConversation={startNewConversation}
openConversationInternal={openConversationInternal} openConversationInternal={openConversationInternal}
conversations={conversations} conversations={conversations}
searchResults={searchResults} searchResults={searchResults}

@ -7,12 +7,9 @@ import {
MessageSearchResult, MessageSearchResult,
PropsData as MessageSearchResultPropsType, PropsData as MessageSearchResultPropsType,
} from './MessageSearchResult'; } from './MessageSearchResult';
import { StartNewConversation } from './StartNewConversation';
import { LocalizerType } from '../types/Util'; import { LocalizerType } from '../types/Util';
declare var mixpanel: any;
export type PropsData = { export type PropsData = {
contacts: Array<ConversationListItemPropsType>; contacts: Array<ConversationListItemPropsType>;
friends: Array<ConversationListItemPropsType>; friends: Array<ConversationListItemPropsType>;
@ -27,21 +24,11 @@ export type PropsData = {
type PropsHousekeeping = { type PropsHousekeeping = {
i18n: LocalizerType; i18n: LocalizerType;
openConversation: (id: string, messageId?: string) => void; openConversation: (id: string, messageId?: string) => void;
startNewConversation: (
query: string,
options: { regionCode: string }
) => void;
}; };
type Props = PropsData & PropsHousekeeping; type Props = PropsData & PropsHousekeeping;
export class SearchResults extends React.Component<Props> { export class SearchResults extends React.Component<Props> {
public handleStartNewConversation = () => {
const { regionCode, searchTerm, startNewConversation } = this.props;
mixpanel.track('New Conversation Started');
startNewConversation(searchTerm, { regionCode });
};
public render() { public render() {
const { const {
conversations, conversations,
@ -73,13 +60,6 @@ export class SearchResults extends React.Component<Props> {
{i18n('noSearchResults', [searchTerm])} {i18n('noSearchResults', [searchTerm])}
</div> </div>
) : null} ) : null}
{showStartNewConversation ? (
<StartNewConversation
phoneNumber={searchTerm}
i18n={i18n}
onClick={this.handleStartNewConversation}
/>
) : null}
{haveConversations ? ( {haveConversations ? (
<div className="module-search-results__conversations"> <div className="module-search-results__conversations">
<div className="module-search-results__conversations-header"> <div className="module-search-results__conversations-header">
@ -95,12 +75,6 @@ export class SearchResults extends React.Component<Props> {
))} ))}
</div> </div>
) : null} ) : null}
{haveFriends
? this.renderContacts(i18n('friendsHeader'), friends, true)
: null}
{haveContacts
? this.renderContacts(i18n('contactsHeader'), contacts)
: null}
{haveMessages ? ( {haveMessages ? (
<div className="module-search-results__messages"> <div className="module-search-results__messages">
{hideMessagesHeader ? null : ( {hideMessagesHeader ? null : (
@ -121,27 +95,4 @@ export class SearchResults extends React.Component<Props> {
</div> </div>
); );
} }
private renderContacts(
header: string,
items: Array<ConversationListItemPropsType>,
friends?: boolean
) {
const { i18n, openConversation } = this.props;
return (
<div className="module-search-results__contacts">
<div className="module-search-results__contacts-header">{header}</div>
{items.map(contact => (
<ConversationListItem
key={contact.phoneNumber}
isFriendItem={friends}
{...contact}
onClick={openConversation}
i18n={i18n}
/>
))}
</div>
);
}
} }

@ -27,14 +27,8 @@ export interface Props {
conversations?: Array<ConversationListItemPropsType>; conversations?: Array<ConversationListItemPropsType>;
friends?: Array<ConversationListItemPropsType>;
searchResults?: SearchResultsProps; searchResults?: SearchResultsProps;
// Action Creators
startNewConversation: (
query: string,
options: { regionCode: string }
) => void;
updateSearchTerm: (searchTerm: string) => void; updateSearchTerm: (searchTerm: string) => void;
search: (query: string, options: SearchOptions) => void; search: (query: string, options: SearchOptions) => void;
openConversationInternal: (id: string, messageId?: string) => void; openConversationInternal: (id: string, messageId?: string) => void;
@ -109,18 +103,13 @@ export class LeftPaneMessageSection extends React.Component<Props, any> {
}; };
public renderList(): JSX.Element | Array<JSX.Element | null> { public renderList(): JSX.Element | Array<JSX.Element | null> {
const { const { openConversationInternal, searchResults } = this.props;
openConversationInternal,
startNewConversation,
searchResults,
} = this.props;
if (searchResults) { if (searchResults) {
return ( return (
<SearchResults <SearchResults
{...searchResults} {...searchResults}
openConversation={openConversationInternal} openConversation={openConversationInternal}
startNewConversation={startNewConversation}
i18n={window.i18n} i18n={window.i18n}
/> />
); );

@ -67,6 +67,11 @@ export const getSearchResults = createSelector(
state.conversations.map(id => { state.conversations.map(id => {
const value = lookup[id]; const value = lookup[id];
// Don't return anything when activeAt is undefined (i.e. no current conversations with this user)
if (value.activeAt === undefined) {
return null;
}
if (value && id === selectedConversation) { if (value && id === selectedConversation) {
return { return {
...value, ...value,

Loading…
Cancel
Save