Spaces:
Configuration error
Configuration error
File size: 1,962 Bytes
47bddd0 |
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 |
// Theme toggle functionality
document.addEventListener('DOMContentLoaded', () => {
// Check for saved theme preference or use preferred color scheme
if (localStorage.getItem('color-theme') === 'dark' ||
(!('color-theme' in localStorage) &&
window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
// API data fetching example
async function fetchDashboardData() {
try {
// In a real app, you would fetch from your API
const response = await fetch('https://api.example.com/dashboard');
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching dashboard data:', error);
return null;
}
}
// Initialize dashboard with data
fetchDashboardData().then(data => {
if (data) {
// Process and display data
console.log('Dashboard data loaded:', data);
}
});
// Add event listeners for interactive elements
document.querySelectorAll('[data-toggle-theme]').forEach(button => {
button.addEventListener('click', () => {
document.documentElement.classList.toggle('dark');
localStorage.setItem('color-theme',
document.documentElement.classList.contains('dark') ? 'dark' : 'light');
});
});
});
// Function to handle data export
function exportData(format) {
console.log(`Exporting data as ${format}`);
// In a real app, implement actual export functionality
alert(`Exporting dashboard data as ${format.toUpperCase()}`);
}
// Function to refresh dashboard data
function refreshDashboard() {
console.log('Refreshing dashboard data');
// In a real app, implement actual refresh functionality
window.location.reload();
} |