//import { getAnalytics, logEvent } from "@firebase/analytics"; import { initializeApp } from "@firebase/app"; import { getAuth, updatePassword, updateProfile } from "@firebase/auth"; import { getFirestore } from "@firebase/firestore"; import { getMessaging, getToken, onMessage } from "@firebase/messaging"; //import { store } from "../redux/store"; //import * as amplitude from '@amplitude/analytics-browser'; // import posthog from 'posthog-js' const config = JSON.parse(import.meta.env.VITE_APP_FIREBASE_CONFIG); initializeApp(config); export const auth = getAuth(); export const firestore = getFirestore(); //export const analytics = getAnalytics(); //export default firebase; export const getCurrentUser = () => { return new Promise((resolve, reject) => { const unsubscribe = auth.onAuthStateChanged((userAuth) => { unsubscribe(); resolve(userAuth); }, reject); }); }; export const updateCurrentUser = (userDetails) => { return new Promise((resolve, reject) => { const unsubscribe = auth.onAuthStateChanged((userAuth) => { updateProfile(userAuth, userDetails).then(() => { unsubscribe(); resolve(userAuth); }); }, reject); }); }; export const updateCurrentPassword = async (password) => { const currentUser = await getCurrentUser(); return updatePassword(currentUser, password); }; let messaging; try { messaging = getMessaging(); } catch (error) { console.log(error); } export { messaging }; export const requestForToken = () => { return getToken(messaging, { vapidKey: import.meta.env.VITE_APP_FIREBASE_PUBLIC_VAPID_KEY }) .then((currentToken) => { if (currentToken) { window.sessionStorage.setItem("fcmtoken", currentToken); // Perform any other necessary action with the token } else { // Show permission request UI console.log("No registration token available. Request permission to generate one."); } }) .catch((err) => { console.log("An error occurred while retrieving token. ", err); }); }; onMessage(messaging, (payload) => { console.log("FCM Message received. ", payload); // ... }); // eslint-disable-next-line no-unused-vars export const logImEXEvent = (eventName, additionalParams, _stateProp = null) => { // Disabled as a part of IO-3712. // try { // const state = stateProp || store.getState(); // const eventParams = { // shop: (state.user && state.user.bodyshop && state.user.bodyshop.shopname) || null, // user: (state.user && state.user.currentUser && state.user.currentUser.email) || null, // partsManagementOnly: state?.user?.partsManagementOnly, // ...additionalParams // }; // // axios.post("/ioevent", { // // useremail: (state.user && state.user.currentUser && state.user.currentUser.email) || null, // // bodyshopid: (state.user && state.user.bodyshop && state.user.bodyshop.id) || null, // // operationName: eventName, // // variables: additionalParams, // // dbevent: false, // // env: `master-AIO|${import.meta.env.VITE_APP_GIT_SHA_DATE}` // // }); // // console.log( // // "%c[Analytics]", // // "background-color: green ;font-weight:bold;", // // eventName, // // eventParams // // ); // logEvent(analytics, eventName, eventParams); // //amplitude.track(eventName, eventParams); // //posthog.capture(eventName, eventParams); // } finally { // //If it fails, just keep going. // } };