import { withApollo } from "@apollo/client/react/hoc";
import React, { Component } from "react";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
//import { logImEXEvent, messaging } from "../../firebase/firebase.utils";
import { selectCurrentUser } from "../../redux/user/user.selectors";

const mapStateToProps = createStructuredSelector({
  currentUser: selectCurrentUser,
});
const mapDispatchToProps = (dispatch) => ({
  //setUserLanguage: language => dispatch(setUserLanguage(language))
});

class FcmNotificationComponent extends Component {
  async componentDidMount() {
    //const { client, currentUser } = this.props;
    // if (!!!messaging) return; //Skip all of the notification functionality if the firebase SDK could not start.
    // messaging
    //   .requestPermission()
    //   .then(async function () {
    //     // const token = await messaging.getToken();
    //     // client.mutate({
    //     //   mutation: UPDATE_FCM_TOKEN,
    //     //   variables: { authEmail: currentUser.email, token: { [token]: true } },
    //     // });
    //   })
    //   .catch(function (err) {
    //     console.log("Unable to get permission to notify.", err);
    //     logImEXEvent("fcm_permission_denied", { message: err });
    //   });
  }

  render() {
    return <span />;
  }
}

export default connect(
  mapStateToProps,
  mapDispatchToProps
)(withApollo(FcmNotificationComponent));

//Firebase Service Worker Register
// if ("serviceWorker" in navigator) {
//   navigator.serviceWorker
//     .register("/firebase-messaging-sw.js")
//     .then(function (registration) {
//       console.log(
//         "[FCM] Registration successful, scope is:",
//         registration.scope
//       );
//       navigator.serviceWorker.addEventListener("message", (event) => {
//         console.log("Handler for Navigator Service Worker.", event);
//       });
//     })
//     .catch(function (err) {
//       console.log("[FCM] Service worker registration failed, error:", err);
//     });
// }
