From e9a15d812f3306018fdc4c985828011a529c8a5c Mon Sep 17 00:00:00 2001 From: Samidy Date: Thu, 22 Jan 2026 02:47:10 +0300 Subject: [PATCH] PLEASE JUST WORK ON THE APP MF --- js/accounts/auth.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/js/accounts/auth.js b/js/accounts/auth.js index 2ae1067..502359a 100644 --- a/js/accounts/auth.js +++ b/js/accounts/auth.js @@ -2,6 +2,8 @@ import { auth, provider } from './config.js'; import { signInWithPopup, + signInWithRedirect, + getRedirectResult, signOut as firebaseSignOut, onAuthStateChanged, signInWithEmailAndPassword, @@ -13,23 +15,26 @@ export class AuthManager { this.user = null; this.unsubscribe = null; this.authListeners = []; + this.isTauri = window.__TAURI__ !== undefined; this.init(); } init() { if (!auth) return; - + + if (this.isTauri) { + getRedirectResult(auth).catch(() => {}); + } + this.unsubscribe = onAuthStateChanged(auth, (user) => { this.user = user; this.updateUI(user); - this.authListeners.forEach((listener) => listener(user)); }); } onAuthStateChanged(callback) { this.authListeners.push(callback); - // If we already have a user state, trigger immediately if (this.user !== null) { callback(this.user); } @@ -40,10 +45,12 @@ export class AuthManager { alert('Firebase is not configured. Please check console.'); return; } - try { + if (this.isTauri) { + await signInWithRedirect(auth, provider); + return; + } const result = await signInWithPopup(auth, provider); - // The onAuthStateChanged listener will handle the rest return result.user; } catch (error) { console.error('Login failed:', error); @@ -84,10 +91,8 @@ export class AuthManager { async signOut() { if (!auth) return; - try { await firebaseSignOut(auth); - // The onAuthStateChanged listener will handle the rest } catch (error) { console.error('Logout failed:', error); throw error; @@ -101,29 +106,25 @@ export class AuthManager { const emailContainer = document.getElementById('email-auth-container'); const emailToggleBtn = document.getElementById('toggle-email-auth-btn'); - if (!connectBtn) return; // UI might not be rendered yet + if (!connectBtn) return; if (user) { connectBtn.textContent = 'Sign Out'; connectBtn.classList.add('danger'); connectBtn.onclick = () => this.signOut(); - if (clearDataBtn) clearDataBtn.style.display = 'block'; if (emailContainer) emailContainer.style.display = 'none'; if (emailToggleBtn) emailToggleBtn.style.display = 'none'; - if (statusText) statusText.textContent = `Signed in as ${user.email}`; } else { connectBtn.textContent = 'Connect with Google'; connectBtn.classList.remove('danger'); connectBtn.onclick = () => this.signInWithGoogle(); - if (clearDataBtn) clearDataBtn.style.display = 'none'; if (emailToggleBtn) emailToggleBtn.style.display = 'inline-block'; - if (statusText) statusText.textContent = 'Sync your library across devices'; } } } -export const authManager = new AuthManager(); +export const authManager = new AuthManager(); \ No newline at end of file