# All files / logic applyImage.js

0% Statements 0/17
0% Branches 0/18
0% Functions 0/3
0% Lines 0/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36

     // @flow

    function applyStyle(target, endStyle, withoutPlaceholder) {
      if (withoutPlaceholder) {
        target.style.opacity = 1; // eslint-disable-line
      } else {
        const style = target.getAttribute('style');
        target.setAttribute('style', `${style && style.includes('opacity') ? '' : 'opacity: 0;'}${style}${endStyle}`);
      }
    }

    export default function applyImage(target: any, image: Image, src: string) {
      /* eslint-disable */
      target.src = src;
      if (target.dataset.srcset) {
        target.srcset = target.dataset.srcset;
      }

      target.style.visibility = 'visible';

      const withoutPlaceholder = target.getAttribute('data-placeholder') === 'false';
      /* eslint-enable */
      const currentTarget = withoutPlaceholder ? target : target.nextSibling;

      if (currentTarget || withoutPlaceholder) {
        target.addEventListener('load', () => {
          if (target) {
            const endStyle = target.getAttribute('data-end-style') || '';
            applyStyle(currentTarget, endStyle, withoutPlaceholder);
            target.removeEventListener('load', applyStyle);
          }
        });
      }
      window.__REACT_SIMPLE_IMG__.imgLoadingRefs.delete(target);
    }