You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

preloadImage.web.js 599B

123456789101112131415161718192021222324252627
  1. // @flow
  2. import { isIconUrl } from './functions';
  3. /**
  4. * Tries to preload an image.
  5. *
  6. * @param {string | Object} src - Source of the avatar.
  7. * @returns {Promise}
  8. */
  9. export function preloadImage(src: string | Object): Promise<string> {
  10. if (isIconUrl(src)) {
  11. return Promise.resolve(src);
  12. }
  13. return new Promise((resolve, reject) => {
  14. const image = document.createElement('img');
  15. image.onload = () => resolve(src);
  16. image.onerror = reject;
  17. // $FlowExpectedError
  18. image.referrerPolicy = 'no-referrer';
  19. image.src = src;
  20. });
  21. }