// What the student achieved: each completed lesson as a constellation, each mastered skill as a star (faded ones dimmed), and the comets. import { api } from "./api.js"; import { esc } from "./math.js"; import { showCard } from "./comets.js"; import { constellationSvg } from "./sky.js"; import { forSubject, tabs } from "./ui.js"; export async function show(view) { const [{ skills, lessons }, { comets, caught, total }] = await Promise.all([api(forSubject("/api/collection")), api("/api/comets")]); view(`${tabs("collection")}

האוסף שלי

קבוצות כוכבים (${lessons.length})

${lessons.length ? `
${lessons.map(l => `
${constellationSvg(l.id, l.name, l.skills)}
${esc(l.name)}${l.skills} כוכבים
`).join("")}
` : `

עוד אין. קבוצת כוכבים מופיעה כשכל המיומנויות של שיעור נשלטות.

`}

מיומנויות שנשלטו (${skills.length})

${skills.length ? `` : `

עוד אין. מיומנות נשלטת אחרי 3 תשובות נכונות ברצף, בלי עזרה, בשני ימים שונים.

`}

שביטים נדירים (${caught} מתוך ${total})

${comets.map(c => c.caught ? `` : ``).join("")}
`); document.getElementById("comets").addEventListener("click", event => { const tile = event.target.closest("[data-comet]"); if (tile) showCard(comets.find(c => c.id === tile.dataset.comet), { heading: "שביט נדיר" }); }); }