{{#await imagePromise}}
<img class="{{className}} avatar" aria-hidden="true"
     src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" />
{{then src}}
<img class="{{className}} avatar" aria-hidden="true"
     src="{{account.avatar}}" />
{{catch error}}
<svg class="{{className}} avatar" aria-hidden="true">
  <use xlink:href="#fa-user" />
</svg>
{{/await}}

<style>
  .avatar {
    width: 48px;
    height: 48px;
    border-radius: 4px;
  }

  svg.avatar {
    fill: var(--deemphasized-text-color);
  }
</style>
<script>
  export default {
    computed: {
      imageSrc: (account) => account.avatar,
      imagePromise: (imageSrc) => new Promise((resolve, reject) => {
        let img = new Image()
        img.onload = resolve
        img.onerror = reject
        img.src = imageSrc
      })
    }
  }
</script>