// Authentication Functions
// Check if user is authenticated
function isAuthenticated() {
const token = storage.get('authToken');
return !!token;
}
// Get current user
function getCurrentUser() {
return storage.get('currentUser');
}
// Login
async function login(email, password) {
try {
showLoading();
const response = await mockApi.login(email, password);
if (response.success) {
storage.set('authToken', response.token);
storage.set('currentUser', response.user);
showToast('Login successful!', 'success');
setTimeout(() => {
window.location.href = 'index.html';
}, 1000);
}
} catch (error) {
showToast('Invalid email or password', 'error');
} finally {
hideLoading();
}
}
// Logout
function logout() {
storage.remove('authToken');
storage.remove('currentUser');
window.location.href = 'login.html';
}
// Initialize auth on page load
document.addEventListener('DOMContentLoaded', () => {
// Check if on login page
if (window.location.pathname.includes('login.html')) {
// If already authenticated, redirect to dashboard
if (isAuthenticated()) {
window.location.href = 'index.html';
return;
}
// Handle login form
const loginForm = document.getElementById('loginForm');
if (loginForm) {
loginForm.addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(loginForm);
const email = formData.get('email');
const password = formData.get('password');
await login(email, password);
});
}
// Toggle password visibility
const togglePassword = document.querySelector('.toggle-password');
if (togglePassword) {
togglePassword.addEventListener('click', () => {
const passwordInput = document.querySelector('input[name="password"]');
const icon = togglePassword.querySelector('i');
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
} else {
passwordInput.type = 'password';
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
}
});
}
} else {
// If not authenticated, redirect to login
if (!isAuthenticated()) {
window.location.href = 'login.html';
return;
}
// Handle logout
const logoutBtn = document.getElementById('logoutBtn');
if (logoutBtn) {
logoutBtn.addEventListener('click', (e) => {
e.preventDefault();
logout();
});
}
}
});