File size: 2,298 Bytes
e9077cf |
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 59 60 61 62 63 64 |
document.addEventListener('DOMContentLoaded', function() {
// Initialize tooltips
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
// Dark mode toggle functionality
const darkModeToggle = document.getElementById('darkModeToggle');
if (darkModeToggle) {
darkModeToggle.addEventListener('click', function() {
document.documentElement.classList.toggle('dark');
localStorage.setItem('darkMode', document.documentElement.classList.contains('dark'));
});
}
// Check for saved dark mode preference
if (localStorage.getItem('darkMode') === 'true') {
document.documentElement.classList.add('dark');
}
// Mobile menu toggle
const mobileMenuButton = document.getElementById('mobileMenuButton');
const mobileMenu = document.getElementById('mobileMenu');
if (mobileMenuButton && mobileMenu) {
mobileMenuButton.addEventListener('click', function() {
mobileMenu.classList.toggle('hidden');
});
}
});
// Sample function to simulate API call
async function connectRepository() {
try {
// Simulate API call
await new Promise(resolve => setTimeout(resolve, 1000));
return { success: true, message: 'Repository connected successfully' };
} catch (error) {
return { success: false, message: 'Failed to connect repository' };
}
}
// Event listeners for interactive elements
document.querySelectorAll('[data-action="connect-repo"]').forEach(button => {
button.addEventListener('click', async function() {
const spinner = document.createElement('span');
spinner.className = 'animate-spin mr-2';
spinner.innerHTML = '<i data-feather="loader"></i>';
this.prepend(spinner);
feather.replace();
this.disabled = true;
const result = await connectRepository();
spinner.remove();
this.disabled = false;
if (result.success) {
alert('Repository connected successfully!');
} else {
alert('Error: ' + result.message);
}
});
}); |