108 lines
3.4 KiB
JavaScript
108 lines
3.4 KiB
JavaScript
//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.
|
|
// }
|
|
};
|