96 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{#if error}
 | 
						|
<svg class={computedClass} aria-hidden="true">
 | 
						|
  <use xlink:href="#fa-user" />
 | 
						|
</svg>
 | 
						|
{:elseif $autoplayGifs}
 | 
						|
  <img
 | 
						|
    class={computedClass}
 | 
						|
    aria-hidden="true"
 | 
						|
    alt=""
 | 
						|
    src={account.avatar}
 | 
						|
    on:imgLoad="set({loaded: true})"
 | 
						|
    on:imgLoadError="set({error: true})" />
 | 
						|
{:else}
 | 
						|
  <NonAutoplayImg
 | 
						|
    className={computedClass}
 | 
						|
    ariaHidden="true"
 | 
						|
    alt=""
 | 
						|
    src={account.avatar}
 | 
						|
    staticSrc={account.avatar_static}
 | 
						|
    {isLink}
 | 
						|
    on:imgLoad="set({loaded: true})"
 | 
						|
    on:imgLoadError="set({error: true})"
 | 
						|
  />
 | 
						|
{/if}
 | 
						|
<style>
 | 
						|
  :global(.avatar) {
 | 
						|
    border-radius: 4px;
 | 
						|
    background: var(--loading-bg);
 | 
						|
  }
 | 
						|
 | 
						|
  :global(.avatar.loaded) {
 | 
						|
    background: none;
 | 
						|
  }
 | 
						|
 | 
						|
  :global(.avatar.size-extra-small) {
 | 
						|
    width: 24px;
 | 
						|
    height: 24px;
 | 
						|
  }
 | 
						|
 | 
						|
  :global(.avatar.size-small) {
 | 
						|
    width: 48px;
 | 
						|
    height: 48px;
 | 
						|
  }
 | 
						|
 | 
						|
  :global(.avatar.size-medium) {
 | 
						|
    width: 64px;
 | 
						|
    height: 64px;
 | 
						|
  }
 | 
						|
 | 
						|
  :global(.avatar.size-big) {
 | 
						|
    width: 100px;
 | 
						|
    height: 100px;
 | 
						|
  }
 | 
						|
 | 
						|
  @media (max-width: 767px) {
 | 
						|
    :global(.avatar.size-big) {
 | 
						|
      width: 80px;
 | 
						|
      height: 80px;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  svg.avatar {
 | 
						|
    fill: var(--deemphasized-text-color);
 | 
						|
  }
 | 
						|
</style>
 | 
						|
<script>
 | 
						|
  import { imgLoad, imgLoadError } from '../_utils/events'
 | 
						|
  import { store } from '../_store/store'
 | 
						|
  import NonAutoplayImg from './NonAutoplayImg.html'
 | 
						|
  import { classname } from '../_utils/classname'
 | 
						|
 | 
						|
  export default {
 | 
						|
    events: {
 | 
						|
      imgLoad,
 | 
						|
      imgLoadError
 | 
						|
    },
 | 
						|
    data: () => ({
 | 
						|
      className: void 0,
 | 
						|
      loaded: false,
 | 
						|
      error: void 0,
 | 
						|
      isLink: false
 | 
						|
    }),
 | 
						|
    store: () => store,
 | 
						|
    computed: {
 | 
						|
      computedClass: ({ className, loaded, size }) => (classname(
 | 
						|
        'avatar',
 | 
						|
        className,
 | 
						|
        loaded && 'loaded',
 | 
						|
        `size-${size}`
 | 
						|
      ))
 | 
						|
    },
 | 
						|
    components: {
 | 
						|
      NonAutoplayImg
 | 
						|
    }
 | 
						|
  }
 | 
						|
</script> |