#### With image
```jsx
const message = {
  id: '1',
  thumbnailObjectUrl: 'https://placekitten.com/76/67',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'image/jpeg',
    },
  ],
};
;
```
#### With video
```jsx
const message = {
  id: '1',
  thumbnailObjectUrl: 'https://placekitten.com/76/67',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'video/mp4',
    },
  ],
};
;
```
#### Missing image
```jsx
const message = {
  id: '1',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'image/jpeg',
    },
  ],
};
;
```
#### Missing video
```jsx
const message = {
  id: '1',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'video/mp4',
    },
  ],
};
;
```
#### Image thumbnail failed to load
```jsx
const message = {
  id: '1',
  thumbnailObjectUrl: 'nonexistent',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'image/jpeg',
    },
  ],
};
;
```
#### Video thumbnail failed to load
```jsx
const message = {
  id: '1',
  thumbnailObjectUrl: 'nonexistent',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'video/mp4',
    },
  ],
};
;
```
#### Other contentType
```jsx
const message = {
  id: '1',
  attachments: [
    {
      fileName: 'foo.jpg',
      contentType: 'application/json',
    },
  ],
};
;
```