Skip to content

Commit 21a6979

Browse files
Update for backend
1 parent 3226d03 commit 21a6979

8 files changed

Lines changed: 78 additions & 2599 deletions

Settings/Account/popup.js

Lines changed: 57 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,76 @@
1+
// Extension/Settings/Account/popup.js
2+
13
document.addEventListener("DOMContentLoaded", () => {
2-
const auth = firebase.auth();
4+
if (typeof firebase === 'undefined') {
5+
console.error("Firebase is not initialized.");
6+
return;
7+
}
38

9+
// --- Get UI Elements ---
410
const nameInput = document.getElementById("name");
511
const emailInput = document.getElementById("email");
612
const passwordInput = document.getElementById("password");
713
const messageDiv = document.getElementById("message");
814
const loginBtn = document.getElementById("login-btn");
915
const registerBtn = document.getElementById("register-btn");
16+
const logoutBtn = document.getElementById("logout-btn");
17+
const loginView = document.getElementById("login-view");
18+
const userView = document.getElementById("user-view");
19+
const userInfo = document.getElementById("user-info");
1020

11-
loginBtn.addEventListener("click", () => {
12-
const email = emailInput.value.trim();
13-
const password = passwordInput.value.trim();
14-
if (!email || !password) return showMessage("Please enter email and password.", "red");
15-
auth.signInWithEmailAndPassword(email, password)
16-
.catch((error) => showMessage(`Login Error: ${error.message}`, "red"));
21+
// --- Attach Event Listeners ---
22+
loginBtn.addEventListener("click", () => handleAuth(false));
23+
registerBtn.addEventListener("click", () => handleAuth(true));
24+
logoutBtn.addEventListener("click", () => firebase.auth().signOut());
25+
26+
// --- Main Auth State Listener ---
27+
firebase.auth().onAuthStateChanged((user) => {
28+
if (user) {
29+
// User is signed in
30+
loginView.style.display = 'none';
31+
userView.style.display = 'block';
32+
userInfo.textContent = user.displayName || user.email;
33+
} else {
34+
// User is signed out
35+
loginView.style.display = 'block';
36+
userView.style.display = 'none';
37+
}
1738
});
1839

19-
registerBtn.addEventListener("click", () => {
40+
// --- New Compliant Authentication Handler ---
41+
async function handleAuth(isRegistering) {
2042
const name = nameInput.value.trim();
2143
const email = emailInput.value.trim();
2244
const password = passwordInput.value.trim();
23-
if (!name || !email || !password) return showMessage("Please fill all fields.", "red");
24-
auth.createUserWithEmailAndPassword(email, password)
25-
.then((cred) => cred.user.updateProfile({displayName: name}))
26-
.catch((error) => showMessage(`Registration Error: ${error.message}`, "red"));
27-
});
2845

29-
auth.onAuthStateChanged((user) => {
30-
if (user) {
31-
showMessage(`Logged in as ${user.displayName || user.email}`, "green");
32-
chrome.storage.local.set({username: user.displayName});
33-
} else {
34-
showMessage("Please login or register", "blue");
46+
if (isRegistering && !name) return showMessage("Please enter a name to register.", "red");
47+
if (!email || !password) return showMessage("Please enter both email and password.", "red");
48+
49+
try {
50+
showMessage("Connecting...", "grey");
51+
const createTokenFunction = firebase.functions().httpsCallable("createCustomAuthToken");
52+
53+
const result = await createTokenFunction({
54+
email,
55+
password,
56+
name,
57+
isRegistering,
58+
});
59+
60+
const token = result.data.token;
61+
if (token) {
62+
// Use the secure token to sign in on the client side
63+
await firebase.auth().signInWithCustomToken(token);
64+
showMessage("Success!", "green");
65+
} else {
66+
throw new Error("Failed to get authentication token.");
67+
}
68+
69+
} catch (error) {
70+
console.error("Authentication Error:", error);
71+
showMessage(`Error: ${error.message}`, "red");
3572
}
36-
});
73+
}
3774

3875
function showMessage(msg, color) {
3976
messageDiv.textContent = msg;

Settings/settingsMain.html

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,7 @@
1515

1616
<script defer src="/textEdit.js"></script>
1717

18-
<style>
19-
.switch {
20-
position: relative;
21-
display: inline-block;
22-
width: 60px;
23-
height: 34px;
24-
}
25-
.switch input {
26-
opacity: 0;
27-
width: 0;
28-
height: 0;
29-
}
30-
.slider {
31-
position: absolute;
32-
cursor: pointer;
33-
top: 0;
34-
left: 0;
35-
right: 0;
36-
bottom: 0;
37-
background-color: #ccc;
38-
transition: .4s;
39-
border-radius: 34px;
40-
}
41-
.slider:before {
42-
position: absolute;
43-
content: "";
44-
height: 26px;
45-
width: 26px;
46-
left: 4px;
47-
bottom: 4px;
48-
background-color: white;
49-
transition: .4s;
50-
border-radius: 50%;
51-
}
52-
input:checked + .slider {
53-
background-color: #66bb6a;
54-
}
55-
input:checked + .slider:before {
56-
transform: translateX(26px);
57-
}
58-
</style>
18+
5919
</head>
6020

6121
<body style="width: 300px;max-height: 560px;min-height: 300px;background-color: rgb(33, 33, 33);overflow: hidden;scroll-behavior: smooth;">
@@ -79,15 +39,16 @@ <h2 id="PersonalInfoH">Personal Information</h2>
7939
</div>
8040

8141
<!-- LOGIN / REGISTER -->
82-
<div id="auth-container">
42+
<div id="login-view">
8343
<h2 id="a-header">Sign In / Register</h2>
8444
<input type="text" id="name" placeholder="Name (Register Only)">
8545
<input type="email" id="email" placeholder="Email">
8646
<input type="password" id="password" placeholder="Password">
47+
<button id="login-btn">Login</button>
48+
<button id="register-btn">Register</button>
49+
<div id="message"></div>
8750
</div>
88-
<button id="login-btn">Login</button>
89-
<button id="register-btn">Register</button>
90-
<div id="message"></div>
51+
9152
<p style="color: white;font-family: Lexend Deca;font-size: 14px;">Sync Tasks to Google Calendar <br><i style="color: rgb(158, 158, 158);">(REQUIRES SIGN-IN ON WEBSITE)</i></p>
9253
<div style="margin-top: 5px;font-size: 30px;font-weight: bolder;margin-bottom: 1px;">
9354
<label class="switch">

firebase-init.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,3 @@ const auth = firebase.auth();
1515
const db = firebase.firestore();
1616
const functions = firebase.functions();
1717
const storage = firebase.storage();
18-
19-
auth.useDeviceLanguage();
20-
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL);

0 commit comments

Comments
 (0)