simplify code for ladder sorting
[sc2-widget] / widget.html
index 3fb38c32ccb155535275c03d8a88a9d3e4d1ecdc..387d3db7e16a55bf5b5be5cac63c58b1babf58d5 100644 (file)
 <script>
        fetch('/schtarr/inno.json')
        .then(res => res.json())
-       .then(json => {
-               document.getElementById('clan').innerHTML = `
-                       <h1>${json.tag}</h1>
-                       <h2 title="Division ${json.division}" class="rank ${json.league}">
-                               ${json.league} <small>#${json.rank}</small>
-                       </h2>
-                       ${json.members.map(member => `
-                               <a href="${member.profileUrl}"><figure>
+       .then(clan => {
+               let tiernum = (rank) => rank <= 8 ? 1 : rank <= 25 ? 2 : rank <= 50 ? 3 : 4;
+               document.getElementById('clan').outerHTML = `
+                       <h1>${clan.tag}</h1>
+                       <ul class=ladders>
+                       ${clan.ladders.map(ladder => `
+                               <li class="rank ${ladder.league} tier${tiernum(ladder.rank)}"
+                                title="Division ${ladder.division} (${ladder.wins}:${ladder.losses})">
+                                       ${ladder.league} <small>#${ladder.rank}</small>
+                               </li>
+                       `).join('')}
+                       </ul>
+                       <ul class=members>
+                       ${clan.members.map(member => `
+                               <li><a href="${member.profileUrl}"><figure>
                                        <img src="${member.avatarUrl}" title="${member.name}" />
                                        <figcaption>${member.name}</figcaption>
-                               </figure></a>
+                               </figure></a></li>
                        `).join('')}
+                       </ul>
                `
+
+               let i = 0
+               document.querySelectorAll('.ladders li').forEach(ladder => {
+                       let laddermembers = clan.ladders[i++].members
+                       let membercont = document.querySelector('.members')
+                       ladder.onmouseover = e => {
+                               membercont.classList.add('select')
+                               laddermembers.forEach(member => {
+                                       membercont.children[member].classList.add('select')
+                               })
+                       }
+                       ladder.onmouseout = e => {
+                               membercont.classList.remove('select')
+                               laddermembers.forEach(member => {
+                                       membercont.children[member].classList.remove('select')
+                               })
+                       }
+               })
        })
        .catch(error => console.log(error))
 </script>