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.
		
		
		
		
		
			
		
			
				
	
	
		
			268 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			268 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Markdown
		
	
#### With all result types
 | 
						|
 | 
						|
```jsx
 | 
						|
window.searchResults = {};
 | 
						|
window.searchResults.conversations = [
 | 
						|
  {
 | 
						|
    name: 'Everyone 🌆',
 | 
						|
    conversationType: 'group',
 | 
						|
    phoneNumber: '(202) 555-0011',
 | 
						|
    avatarPath: util.landscapeGreenObjectUrl,
 | 
						|
    lastUpdated: Date.now() - 5 * 60 * 1000,
 | 
						|
    lastMessage: {
 | 
						|
      text: 'The rabbit hopped silently in the night.',
 | 
						|
      status: 'sent',
 | 
						|
    },
 | 
						|
  },
 | 
						|
  {
 | 
						|
    name: 'Everyone Else 🔥',
 | 
						|
    conversationType: 'direct',
 | 
						|
    phoneNumber: '(202) 555-0012',
 | 
						|
    avatarPath: util.landscapePurpleObjectUrl,
 | 
						|
    lastUpdated: Date.now() - 5 * 60 * 1000,
 | 
						|
    lastMessage: {
 | 
						|
      text: "What's going on?",
 | 
						|
      status: 'sent',
 | 
						|
    },
 | 
						|
  },
 | 
						|
];
 | 
						|
 | 
						|
window.searchResults.contacts = [
 | 
						|
  {
 | 
						|
    name: 'The one Everyone',
 | 
						|
    conversationType: 'direct',
 | 
						|
    phoneNumber: '(202) 555-0013',
 | 
						|
    avatarPath: util.gifObjectUrl,
 | 
						|
  },
 | 
						|
  {
 | 
						|
    name: 'No likey everyone',
 | 
						|
    conversationType: 'direct',
 | 
						|
    phoneNumber: '(202) 555-0014',
 | 
						|
    color: 'red',
 | 
						|
  },
 | 
						|
];
 | 
						|
 | 
						|
window.searchResults.messages = [
 | 
						|
  {
 | 
						|
    from: {
 | 
						|
      isMe: true,
 | 
						|
      avatarPath: util.gifObjectUrl,
 | 
						|
    },
 | 
						|
    to: {
 | 
						|
      name: 'Mr. Fire 🔥',
 | 
						|
      phoneNumber: '(202) 555-0015',
 | 
						|
    },
 | 
						|
    id: '1-guid-guid-guid-guid-guid',
 | 
						|
    conversationId: '(202) 555-0015',
 | 
						|
    receivedAt: Date.now() - 5 * 60 * 1000,
 | 
						|
    snippet: '<<left>>Everyone<<right>>! Get in!',
 | 
						|
    onClick: () => console.log('onClick'),
 | 
						|
  },
 | 
						|
  {
 | 
						|
    from: {
 | 
						|
      name: 'Jon ❄️',
 | 
						|
      phoneNumber: '(202) 555-0016',
 | 
						|
      color: 'green',
 | 
						|
    },
 | 
						|
    to: {
 | 
						|
      isMe: true,
 | 
						|
    },
 | 
						|
    id: '2-guid-guid-guid-guid-guid',
 | 
						|
    conversationId: '(202) 555-0016',
 | 
						|
    snippet: 'Why is <<left>>everyone<<right>> so frustrated?',
 | 
						|
    receivedAt: Date.now() - 20 * 60 * 1000,
 | 
						|
    onClick: () => console.log('onClick'),
 | 
						|
  },
 | 
						|
  {
 | 
						|
    from: {
 | 
						|
      name: 'Someone',
 | 
						|
      phoneNumber: '(202) 555-0011',
 | 
						|
      color: 'green',
 | 
						|
      avatarPath: util.pngObjectUrl,
 | 
						|
    },
 | 
						|
    to: {
 | 
						|
      name: "Y'all 🌆",
 | 
						|
    },
 | 
						|
    id: '3-guid-guid-guid-guid-guid',
 | 
						|
    conversationId: 'EveryoneGroupID',
 | 
						|
    snippet: 'Hello, <<left>>everyone<<right>>! Woohooo!',
 | 
						|
    receivedAt: Date.now() - 24 * 60 * 1000,
 | 
						|
    onClick: () => console.log('onClick'),
 | 
						|
  },
 | 
						|
  {
 | 
						|
    from: {
 | 
						|
      isMe: true,
 | 
						|
      avatarPath: util.gifObjectUrl,
 | 
						|
    },
 | 
						|
    to: {
 | 
						|
      name: "Y'all 🌆",
 | 
						|
    },
 | 
						|
    id: '4-guid-guid-guid-guid-guid',
 | 
						|
    conversationId: 'EveryoneGroupID',
 | 
						|
    snippet: 'Well, <<left>>everyone<<right>>, happy new year!',
 | 
						|
    receivedAt: Date.now() - 24 * 60 * 1000,
 | 
						|
    onClick: () => console.log('onClick'),
 | 
						|
  },
 | 
						|
];
 | 
						|
 | 
						|
<util.LeftPaneContext theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={window.searchResults.conversations}
 | 
						|
    contacts={window.searchResults.contacts}
 | 
						|
    messages={window.searchResults.messages}
 | 
						|
    i18n={util.i18n}
 | 
						|
    onClickMessage={id => console.log('onClickMessage', id)}
 | 
						|
    onClickConversation={id => console.log('onClickConversation', id)}
 | 
						|
    onStartNewConversation={(query, options) =>
 | 
						|
      console.log('onStartNewConversation', query, options)
 | 
						|
    }
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>;
 | 
						|
```
 | 
						|
 | 
						|
#### With 'start new conversation'
 | 
						|
 | 
						|
```jsx
 | 
						|
<util.LeftPaneContext theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={window.searchResults.conversations}
 | 
						|
    contacts={window.searchResults.contacts}
 | 
						|
    messages={window.searchResults.messages}
 | 
						|
    showStartNewConversation={true}
 | 
						|
    searchTerm="(555) 100-2000"
 | 
						|
    i18n={util.i18n}
 | 
						|
    onClickMessage={id => console.log('onClickMessage', id)}
 | 
						|
    onClickConversation={id => console.log('onClickConversation', id)}
 | 
						|
    onStartNewConversation={(query, options) =>
 | 
						|
      console.log('onStartNewConversation', query, options)
 | 
						|
    }
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>
 | 
						|
```
 | 
						|
 | 
						|
#### With no conversations
 | 
						|
 | 
						|
```jsx
 | 
						|
<util.LeftPaneContext theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={null}
 | 
						|
    contacts={window.searchResults.contacts}
 | 
						|
    messages={window.searchResults.messages}
 | 
						|
    i18n={util.i18n}
 | 
						|
    onClickMessage={id => console.log('onClickMessage', id)}
 | 
						|
    onClickConversation={id => console.log('onClickConversation', id)}
 | 
						|
    onStartNewConversation={(query, options) =>
 | 
						|
      console.log('onStartNewConversation', query, options)
 | 
						|
    }
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>
 | 
						|
```
 | 
						|
 | 
						|
#### With no contacts
 | 
						|
 | 
						|
```jsx
 | 
						|
<util.LeftPaneContext theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={window.searchResults.conversations}
 | 
						|
    contacts={null}
 | 
						|
    messages={window.searchResults.messages}
 | 
						|
    i18n={util.i18n}
 | 
						|
    onClickMessage={id => console.log('onClickMessage', id)}
 | 
						|
    onClickConversation={id => console.log('onClickConversation', id)}
 | 
						|
    onStartNewConversation={(query, options) =>
 | 
						|
      console.log('onStartNewConversation', query, options)
 | 
						|
    }
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>
 | 
						|
```
 | 
						|
 | 
						|
#### With no messages
 | 
						|
 | 
						|
```jsx
 | 
						|
<util.LeftPaneContext theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={window.searchResults.conversations}
 | 
						|
    contacts={window.searchResults.contacts}
 | 
						|
    messages={null}
 | 
						|
    i18n={util.i18n}
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>
 | 
						|
```
 | 
						|
 | 
						|
#### With no results at all
 | 
						|
 | 
						|
```jsx
 | 
						|
<util.LeftPaneContext theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={null}
 | 
						|
    contacts={null}
 | 
						|
    messages={null}
 | 
						|
    searchTerm="dinner plans"
 | 
						|
    i18n={util.i18n}
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>
 | 
						|
```
 | 
						|
 | 
						|
#### With a lot of results
 | 
						|
 | 
						|
```jsx
 | 
						|
const messages = [];
 | 
						|
for (let i = 0; i < 100; i += 1) {
 | 
						|
  messages.push({
 | 
						|
    from: {
 | 
						|
      name: 'Mr. Fire 🔥',
 | 
						|
      phoneNumber: '(202) 555-0015',
 | 
						|
      avatarPath: util.landscapeGreenObjectUrl,
 | 
						|
    },
 | 
						|
    to: {
 | 
						|
      isMe: true,
 | 
						|
    },
 | 
						|
    id: `${i}-guid-guid-guid-guid-guid`,
 | 
						|
    conversationId: '(202) 555-0015',
 | 
						|
    receivedAt: Date.now() - 5 * 60 * 1000,
 | 
						|
    snippet: `${i} <<left>>Everyone<<right>>! Get in!`,
 | 
						|
    onClick: data => console.log('onClick', data),
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
<util.LeftPaneContext style={{ height: '500px' }} theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    conversations={null}
 | 
						|
    contacts={null}
 | 
						|
    messages={messages}
 | 
						|
    i18n={util.i18n}
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>;
 | 
						|
```
 | 
						|
 | 
						|
#### With just messages and no header
 | 
						|
 | 
						|
```jsx
 | 
						|
const messages = [];
 | 
						|
for (let i = 0; i < 10; i += 1) {
 | 
						|
  messages.push({
 | 
						|
    from: {
 | 
						|
      name: 'Mr. Fire 🔥',
 | 
						|
      phoneNumber: '(202) 555-0015',
 | 
						|
      avatarPath: util.landscapeGreenObjectUrl,
 | 
						|
    },
 | 
						|
    to: {
 | 
						|
      isMe: true,
 | 
						|
    },
 | 
						|
    id: `${i}-guid-guid-guid-guid-guid`,
 | 
						|
    conversationId: '(202) 555-0015',
 | 
						|
    receivedAt: Date.now() - 5 * 60 * 1000,
 | 
						|
    snippet: `${i} <<left>>Everyone<<right>>! Get in!`,
 | 
						|
    onClick: data => console.log('onClick', data),
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
<util.LeftPaneContext style={{ height: '500px' }} theme={util.theme}>
 | 
						|
  <SearchResults
 | 
						|
    hideMessagesHeader={true}
 | 
						|
    messages={messages}
 | 
						|
    i18n={util.i18n}
 | 
						|
  />
 | 
						|
</util.LeftPaneContext>;
 | 
						|
```
 |