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>;
 | |
| ```
 |