File size: 4,225 Bytes
40f9afa
 
 
3e378d8
 
 
 
 
 
 
 
 
 
40f9afa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3e378d8
 
40f9afa
3e378d8
40f9afa
 
 
3e378d8
 
 
 
40f9afa
3e378d8
40f9afa
 
 
 
 
 
 
 
 
 
 
3e378d8
 
40f9afa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

const API_BASE_URL = 'https://smartapp-api.example.com/v1';

document.addEventListener('DOMContentLoaded', function() {
    // Auth modal toggle functionality
    const authTrigger = document.getElementById('auth-trigger');
    const authModal = document.querySelector('custom-auth-modal');
    
    authTrigger.addEventListener('click', () => {
        authModal.toggleModal();
    });
    
    // Handle form submissions
    const loginForm = authModal.shadowRoot.querySelector('#login-form');
    const signupForm = authModal.shadowRoot.querySelector('#signup-form');
    
    // Login function
    async function handleLogin(email, password) {
        try {
            const response = await fetch(`${API_BASE_URL}/auth/login`, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'Accept-Language': 'ar'
                },
                body: JSON.stringify({ email, password })
            });
            
            const data = await response.json();
            
            if (response.ok) {
                localStorage.setItem('token', data.token);
                localStorage.setItem('user', JSON.stringify(data.user));
                window.location.href = '/dashboard.html';
            } else {
                throw new Error(data.message || 'فشل تسجيل الدخول');
            }
        } catch (error) {
            alert(error.message);
        }
    }
    
    // Signup function
    async function handleSignup(name, email, password) {
        try {
            const response = await fetch(`${API_BASE_URL}/auth/register`, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'Accept-Language': 'ar'
                },
                body: JSON.stringify({ name, email, password })
            });
            
            const data = await response.json();
            
            if (response.ok) {
                localStorage.setItem('token', data.token);
                localStorage.setItem('user', JSON.stringify(data.user));
                window.location.href = '/dashboard.html';
            } else {
                throw new Error(data.message || 'فشل إنشاء الحساب');
            }
        } catch (error) {
            alert(error.message);
        }
    }
    
    if (loginForm) {
        loginForm.addEventListener('submit', async function(e) {
            e.preventDefault();
            const email = loginForm.querySelector('#login-email').value;
            const password = loginForm.querySelector('#login-password').value;
            await handleLogin(email, password);
        });
    }
    
    if (signupForm) {
        signupForm.addEventListener('submit', async function(e) {
            e.preventDefault();
            const name = signupForm.querySelector('#signup-name').value;
            const email = signupForm.querySelector('#signup-email').value;
            const password = signupForm.querySelector('#signup-password').value;
            const confirmPassword = signupForm.querySelector('#signup-confirm').value;
            
            if (password !== confirmPassword) {
                alert('كلمة المرور غير متطابقة');
                return;
            }
            
            await handleSignup(name, email, password);
        });
    }
    
    // Check auth status
    function checkAuthStatus() {
        const token = localStorage.getItem('token');
        if (token) {
            document.querySelector('custom-navbar').shadowRoot.querySelector('.auth-buttons').innerHTML = `
                <a href="/dashboard.html" class="btn-primary">لوحة التحكم</a>
                <button id="logout-btn" class="btn-secondary">تسجيل الخروج</button>
            `;
            
            document.querySelector('custom-navbar').shadowRoot.getElementById('logout-btn').addEventListener('click', () => {
                localStorage.removeItem('token');
                localStorage.removeItem('user');
                window.location.href = '/';
            });
        }
    }
    
    checkAuthStatus();
});