In a later diff, we'll need to potentially call an async function to fetch a message from the database in order to determine which message should be the MessagePreview.
The code in chat-selectors.js isn't async, and it would be rather complicated to convert it to be.
Instead, in this diff I move the logic for determining which message to preview to the MessagePreview components that actually render the message.
Depends on D13825