import {
auth,
authProviderGoogle,
authWithMagicLink,
authWithGooglePopup,
} from "./ebcd-common-firebase.js";
console.log("ebcd-auth loaded <3");
auth.onAuthStateChanged((user) => {
if (user) {
window.location = "/profile.html";
}
});
const actionCodeSettings = {
url: `${window.location.origin}/profile.html`,
handleCodeInApp: true,
iOS: {
bundleId: "co.wirm.ebcd",
},
android: {
packageName: "co.wirm.ebcd",
installApp: true,
minimumVersion: "12",
},
dynamicLinkDomain: "echoesbehindcloseddoors.page.link",
};
// input.. id="auth-field-email"
// a...... id="auth-button-magic"
// a...... id="auth-button-sso-google"
// h2..... id="auth-modal-result-header"
// p...... id="auth-modal-result-body"
// handle magic link auth
const buttonSendLink = document.getElementById("auth-button-magic");
buttonSendLink.addEventListener("click", async (event) => {
console.log("ebcd-auth: clicked magic");
const modalResultHeader = document.getElementById("auth-modal-result-header");
const modalResultBody = document.getElementById("auth-modal-result-body");
const fieldEmail = document.getElementById("auth-field-email");
// try get email from fieldEmail.value
const email = fieldEmail ? fieldEmail.value.trim() : null;
// if email is blank
if (!email) {
modalResultHeader.innerText = "Error!";
modalResultBody.innerText = "Please enter an email address.";
return;
}
// if email is not valid
if (!email.includes("@")) {
modalResultHeader.innerText = "Error!";
modalResultBody.innerText = "Please enter a valid email address.";
return;
}
console.log("ebcd-auth/auth-button-magic: sent!");
authWithMagicLink(auth, email, actionCodeSettings)
.then(() => {
console.log("ebcd-auth/auth-button-magic: success!");
// The link was successfully sent. Inform the user.
modalResultHeader.innerText = "You've Got Mail!";
modalResultBody.innerText = `We've sent you an email to ${email} with a magical link to authenticate with us. If you're a new user, you'll make an account. If you're an existing user, you'll be logged in. Check your inbox!`;
// Save the email locally so you don't need to ask the user for it again
// if they open the link on the same device.
window.localStorage.setItem("emailForSignIn", email);
})
.catch((error) => {
console.log(
"ebcd-auth/auth-button-magic: error...",
error.code,
error.message
);
modalResultHeader.innerText = "Error!";
modalResultBody.innerHTML = `We've encountered an error. Tell the booth runner about this! ${error.message}`;
});
});
// handle sso auth
//