#### 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: '<>Everyone<>! 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 <>everyone<> 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, <>everyone<>! 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, <>everyone<>, happy new year!', receivedAt: Date.now() - 24 * 60 * 1000, onClick: () => console.log('onClick'), }, ]; console.log('onClickMessage', id)} onClickConversation={id => console.log('onClickConversation', id)} onStartNewConversation={(query, options) => console.log('onStartNewConversation', query, options) } /> ; ``` #### With 'start new conversation' ```jsx console.log('onClickMessage', id)} onClickConversation={id => console.log('onClickConversation', id)} onStartNewConversation={(query, options) => console.log('onStartNewConversation', query, options) } /> ``` #### With no conversations ```jsx console.log('onClickMessage', id)} onClickConversation={id => console.log('onClickConversation', id)} onStartNewConversation={(query, options) => console.log('onStartNewConversation', query, options) } /> ``` #### With no contacts ```jsx console.log('onClickMessage', id)} onClickConversation={id => console.log('onClickConversation', id)} onStartNewConversation={(query, options) => console.log('onStartNewConversation', query, options) } /> ``` #### With no messages ```jsx ``` #### With no results at all ```jsx ``` #### 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} <>Everyone<>! Get in!`, onClick: data => console.log('onClick', data), }); } ; ``` #### 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} <>Everyone<>! Get in!`, onClick: data => console.log('onClick', data), }); } ; ```