File size: 2,013 Bytes
25373fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
65
66
67
68
69
70
71
72
73
74
// Global configuration
const config = {
    apiBaseUrl: "https://mr-v-api.example.com",
    enableTracking: true,
    defaultTheme: "dark"
};

// Initialize tooltips
document.addEventListener('DOMContentLoaded', function() {
    // Initialize any tooltips or popovers
    if (typeof tippy !== 'undefined') {
        tippy('[data-tippy-content]', {
            arrow: true,
            animation: 'scale',
            theme: 'red',
        });
    }

    // Track page view
    if (config.enableTracking) {
        trackPageView();
    }
});

// Track page view for analytics
function trackPageView() {
    console.log("Tracking page view...");
    // In a real implementation, this would send data to analytics service
}

// Handle theme switching
function toggleTheme() {
    const html = document.documentElement;
    if (html.classList.contains('dark')) {
        html.classList.remove('dark');
        localStorage.setItem('theme', 'light');
    } else {
        html.classList.add('dark');
        localStorage.setItem('theme', 'dark');
    }
}

// Check for saved theme preference
function checkTheme() {
    const savedTheme = localStorage.getItem('theme') || config.defaultTheme;
    if (savedTheme === 'dark') {
        document.documentElement.classList.add('dark');
    } else {
        document.documentElement.classList.remove('dark');
    }
}

// Initialize theme on page load
checkTheme();

// Utility function for API calls
async function makeApiRequest(endpoint, data = {}) {
    try {
        const response = await fetch(`${config.apiBaseUrl}${endpoint}`, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify(data)
        });
        return await response.json();
    } catch (error) {
        console.error('API request failed:', error);
        return { success: false, error: error.message };
    }
}

// Export functions for use in other components
export { makeApiRequest, toggleTheme };