Spaces:
Running
Running
| 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(); | |
| }); | |