A Neptunia Character Sorter
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'master' of github.com:execfera/charasort

+14 -26
+14 -26
src/js/main.js
··· 766 766 const totalLength = characterDataToSort.length; 767 767 let imagesLoaded = 0; 768 768 769 - const loadImage = (src, idx) => { 770 - return new Promise((resolve, reject) => { 771 - const img = new Image(); 772 - 773 - img.crossOrigin = 'Anonymous'; 774 - img.onload = () => { 775 - setImageToData(img, idx); 776 - resolve(img); 777 - }; 778 - img.onerror = img.onabort = () => reject(src); 779 - if ( img.complete || img.complete === undefined ) { 780 - img.src = src; 781 - } 782 - img.src = src; 783 - }); 784 - }; 785 - 786 - const setImageToData = (img, idx) => { 787 - const canvas = document.createElement('canvas'); 788 - canvas.width = img.naturalWidth; 789 - canvas.height = img.naturalHeight; 790 - canvas.getContext('2d').drawImage(img, 0, 0); 791 - characterDataToSort[idx].img = canvas.toDataURL(); 792 - progressBar(`Loading Image ${++imagesLoaded}`, Math.floor(imagesLoaded * 100 / totalLength)); 769 + const loadImage = async (src) => { 770 + const blob = await fetch(src).then(res => res.blob()); 771 + return new Promise((res, rej) => { 772 + const reader = new FileReader(); 773 + reader.onload = ev => { 774 + progressBar(`Loading Image ${++imagesLoaded}`, Math.floor(imagesLoaded * 100 / totalLength)); 775 + res(ev.target.result); 776 + }; 777 + reader.onerror = rej; 778 + reader.readAsDataURL(blob); 779 + }); 793 780 }; 794 781 795 - const promises = characterDataToSort.map((char, idx) => loadImage(imageRoot + char.img, idx)); 796 - return Promise.all(promises); 782 + return Promise.all(characterDataToSort.map(async (char, idx) => { 783 + characterDataToSort[idx].img = await loadImage(imageRoot + char.img); 784 + })); 797 785 } 798 786 799 787 /**