Skip to content

Commit

Permalink
fixing-responsive-list (#117)
Browse files Browse the repository at this point in the history
  • Loading branch information
JollyJolli authored Oct 17, 2024
2 parents 4fb2ca5 + 7f1adb3 commit 9759602
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 49 deletions.
70 changes: 33 additions & 37 deletions src/contributor.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,37 @@
// Const Declaration
const contributorsContainer = document.querySelector('.contributors-container')
const contributorsContainer = document.querySelector('.contributors-container');

// Function to fetch contributors from GitHub API
async function fetchContributors() {
const response = await fetch(
'https://api.github.com/repos/JollyJolli/HacktoberWall/contributors'
)
const data = await response.json()
return data
const fetchContributors = () => {
return fetch('https://api.github.com/repos/JollyJolli/HacktoberWall/contributors')
.then(response => {
if(response.ok) return response.json();
throw new Error(response.status);
})
.catch((error) => console.error('Error fetching contributors:', error));
}

fetchContributors()
.then((data) => {
// Loop through each contributor and create a card
data.forEach((contributor) => {
const link = document.createElement('a')
link.href = contributor.html_url
link.target = '_blank'
link.classList.add('contributors-link')
const card = document.createElement('div')
card.classList.add(
'contributors-card',
'wall',
'participant',
'wall-section'
)
card.innerHTML = `
<div class="contributors-avatar-container">
<img class="contributors-avatar" src="${contributor.avatar_url}" alt="${contributor.login}" loading="lazy" />
<h3>${contributor.login}</h3>
</div>
<p class="contributors-contributions">${contributor.contributions} Contributions</p>
`
link.appendChild(card)
contributorsContainer.appendChild(link)
})
})
.catch((error) => {
console.error('Error fetching contributors:', error)
})
const renderContributorList = async () => {
const contributorList = await fetchContributors();
contributorsContainer.innerHTML = contributorList.reduce(( list, user ) => {
const { html_url, avatar_url, login, contributions } = user;
return list += `<div class="contributors-card wall participant wall-section" data-url=${html_url}>
<div class="contributors-avatar-container">
<img class="contributors-avatar" src="${avatar_url}" alt="${login}" loading="lazy" />
<h4>${login}</h4>
</div>
<p class="contributors-contributions">${contributions} Contributions</p>
</div>`;
}, '');
}

const showUserPage = ({ target }) => {
const { url } = target.dataset;
window.open(url, '_blank');
}

const init = () => {
renderContributorList();
contributorsContainer.addEventListener('click', showUserPage);
}

init();
23 changes: 11 additions & 12 deletions src/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -714,30 +714,29 @@ body.dark-mode .feebback-Btn {
}

.contributors-container {
width: 100%;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 40px;
align-items: center;
}

@media screen and (max-width: 768px) {
.contributors-container {
grid-template-columns: repeat(2, 1fr);
@media screen and (max-width: 1024px) {
.contributors-container h4 {
font-size: 20px;
}
}

@media screen and (max-width: 480px) {
.contributors-container {
grid-template-columns: repeat(1, 1fr);
}
}

.contributors-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: none;
width: 300px;
height: 150px;
}

.contributors-avatar-container {
Expand Down

0 comments on commit 9759602

Please sign in to comment.