Muso98's picture
1) Autentifikatsiya va ro‘yxatdan o‘tish
cc44a14 verified
// Global state management
const appState = {
currentUser: null,
isAuthenticated: false,
role: null
};
// DOM ready function
document.addEventListener('DOMContentLoaded', () => {
// Initialize components
initAuthModal();
// Check for saved session
checkSavedSession();
});
function checkSavedSession() {
const token = localStorage.getItem('edu_token');
if (token) {
// Validate token with backend in real implementation
console.log('Found saved session token');
}
}
function initAuthModal() {
const modal = document.querySelector('custom-auth-modal');
// Handle login form submission
modal.shadowRoot.querySelector('#loginForm').addEventListener('submit', (e) => {
e.preventDefault();
const email = e.target.elements.email.value;
const password = e.target.elements.password.value;
const remember = e.target.elements.remember.checked;
// Simulate login - replace with actual API call
console.log(`Login attempt with ${email}`);
setTimeout(() => {
modal.hideModal();
showToast('Login successful! Redirecting...', 'success');
}, 1500);
});
// Handle password reset
modal.shadowRoot.querySelector('#forgotForm').addEventListener('submit', (e) => {
e.preventDefault();
const email = e.target.elements.resetEmail.value;
// Simulate reset request
console.log(`Password reset requested for ${email}`);
setTimeout(() => {
modal.hideModal();
showToast('Password reset link sent to your email', 'success');
}, 1500);
});
}
function showToast(message, type = 'info') {
const toast = document.createElement('div');
toast.className = `fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-lg text-white ${
type === 'success' ? 'bg-green-500' : 'bg-blue-500'
} fade-in`;
toast.textContent = message;
document.body.appendChild(toast);
setTimeout(() => {
toast.remove();
}, 3000);
}