diff options
author | Miguel Ángel Moreno <mail@migalmoreno.com> | 2023-09-17 21:33:59 +0200 |
---|---|---|
committer | Miguel Ángel Moreno <mail@migalmoreno.com> | 2023-09-17 21:33:59 +0200 |
commit | 5769560b2f67f9e033aea46fe2728721319353a1 (patch) | |
tree | a40b346eacb96cf70527201d55628a6bbf6abec2 | |
parent | e09f17dc9fcc660836687409daf0c542c9d8c1de (diff) |
feat: add external metadata to portfolio items
-rw-r--r-- | assets/js/main.js | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/assets/js/main.js b/assets/js/main.js index 1106b83..18a4400 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -12,7 +12,38 @@ const highlightCurrentRoute = () => { } } -(function init() { +const setPortfolioMetadata = async () => { + const API_URL = "https://api.github.com/repos/migalmoreno/" + const portfolioContainer = document.querySelector(".portfolio") + if (portfolioContainer) { + const projectItems = portfolioContainer.querySelectorAll(".project-item") + const projectItemsStars = [] + for (let project of projectItems) { + const projectName = project.querySelector(".project-item__title").innerHTML + const starIcon = project.querySelector(".icon__star") + try { + const res = await fetch(API_URL + projectName) + const data = await res.json() + if (data) { + projectItemsStars.push(data.stargazers_count) + } else { + starIcon.style.display = "none" + } + } catch (err) { + starIcon.style.display = "none" + throw(err) + } + } + if (projectItemsStars.length > 0) { + for (let [i, project] of projectItems.entries()) { + project.querySelector(".project-item__stargazers").innerHTML = projectItemsStars[i] + } + } + } +} + +(() => { setCopyrightYear() highlightCurrentRoute() + setPortfolioMetadata() })() |