-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscript.js
58 lines (51 loc) · 2.11 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
document.addEventListener('DOMContentLoaded', () => {
loadGitHubData('EaglerDevs');
});
// Fetch repositories from GitHub API for an organization
async function loadGitHubData(orgName) {
const loadingSpinner = document.getElementById('loading-spinner');
loadingSpinner.style.display = 'block'; // Show loading spinner
try {
const response = await fetch(`https://api.github.com/orgs/${orgName}/repos`);
if (!response.ok) {
throw new Error(`GitHub API error: ${response.statusText}`);
}
const data = await response.json();
if (data.length === 0) {
displayNoProjectsMessage();
} else {
loadProjects(data);
}
} catch (error) {
console.error('Error loading GitHub data:', error);
displayErrorMessage(error);
} finally {
loadingSpinner.style.display = 'none'; // Hide loading spinner
}
}
// Function to dynamically load repositories into the "Projects" section
function loadProjects(repositories) {
const projectGallery = document.getElementById('project-gallery');
repositories.forEach(repo => {
const projectCard = document.createElement('div');
projectCard.className = 'project-card';
projectCard.innerHTML = `
<img src="${repo.owner.avatar_url}" alt="${repo.name}">
<h3>${repo.name}</h3>
<p>${repo.description || 'No description available'}</p>
<a href="${repo.html_url}" target="_blank" class="highlight">View Project</a>
`;
projectGallery.appendChild(projectCard);
});
}
// Display a message when no projects are found
function displayNoProjectsMessage() {
const projectGallery = document.getElementById('project-gallery');
projectGallery.innerHTML = '<p>No projects available at the moment.</p>';
}
// Display a general error message to the user
function displayErrorMessage(error) {
const projectGallery = document.getElementById('project-gallery');
projectGallery.innerHTML = `<p class="error-message">Oops! Something went wrong. Please try again later.</p>`;
console.error(error);
}