Spaces:
Sleeping
Sleeping
| // ======================================== | |
| // FIREBASE CONFIGURATION | |
| // ======================================== | |
| const firebaseConfig = { | |
| apiKey: "AIzaSyBIQ-4MVpOHCaCI9qoAjvJPfSDdGaK-hEg", | |
| authDomain: "m-txtile-lasted-web.firebaseapp.com", | |
| projectId: "m-txtile-lasted-web", | |
| storageBucket: "m-txtile-lasted-web.firebasestorage.app", | |
| messagingSenderId: "164555967777", | |
| appId: "1:164555967777:web:65ef2c62e3b332f1698260", | |
| measurementId: "G-9EWB1LJ3CZ" | |
| }; | |
| // Initialize Firebase | |
| firebase.initializeApp(firebaseConfig); | |
| const auth = firebase.auth(); | |
| const googleProvider = new firebase.auth.GoogleAuthProvider(); | |
| // Google Sign In | |
| async function signInWithGoogle() { | |
| try { | |
| const result = await auth.signInWithPopup(googleProvider); | |
| const user = result.user; | |
| // Save to MongoDB via API | |
| const authApiUrl = (window.location.hostname === '127.0.0.1' || window.location.port === '5500') | |
| ? 'http://localhost:3000/api/auth/google-login' | |
| : '/api/auth/google-login'; | |
| const res = await fetch(authApiUrl, { | |
| method: 'POST', | |
| headers: { 'Content-Type': 'application/json' }, | |
| body: JSON.stringify({ | |
| uid: user.uid, | |
| name: user.displayName || 'Foydalanuvchi', | |
| email: user.email, | |
| phone: user.phoneNumber || '', | |
| photoURL: user.photoURL || '' | |
| }) | |
| }); | |
| const data = await res.json(); | |
| if (data.success) { | |
| // Save session locally | |
| localStorage.setItem('mtextile_session', JSON.stringify(data.user)); | |
| document.dispatchEvent(new CustomEvent('authChanged', { detail: { user: data.user } })); | |
| showToast("Muvaffaqiyat", `Xush kelibsiz, ${data.user.name}!`, "success"); | |
| // Close login modal | |
| const overlay = document.getElementById('loginOverlay'); | |
| if (overlay) overlay.classList.remove('active'); | |
| // Update UI | |
| if (typeof updateAuthUI === 'function') updateAuthUI(); | |
| return data.user; | |
| } else { | |
| showToast("Xatolik", data.message || "Kirishda xatolik", "error"); | |
| return null; | |
| } | |
| } catch (error) { | |
| if (error.code === 'auth/popup-closed-by-user') { | |
| return null; // User closed popup, no error needed | |
| } | |
| console.error('Google sign-in error:', error); | |
| showToast("Xatolik", error.message || "Google orqali kirishda xatolik yuz berdi", "error"); | |
| return null; | |
| } | |
| } | |
| // Sign Out from Firebase | |
| async function firebaseSignOut() { | |
| try { | |
| await auth.signOut(); | |
| } catch (e) { | |
| console.warn('Firebase sign out error:', e); | |
| } | |
| } | |