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);
}