All files / boot auth.js

0% Statements 0/13
0% Branches 0/9
0% Functions 0/4
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36                                                                       
// import something here
import firebase from "firebase/app";
import "firebase/auth";
import { Loading } from "quasar";
// "async" is optional
export default async ({ router, store /* app, router, Vue, ... */ }) => {
  router.beforeEach((to, from, next) => {
    let requiresAuth = to.matched.some(record => record.meta.requiresAuth);
    // console.log(to.path)
    requiresAuth =
      to.path != "/" && to.path != "/not-found" && to.path != "/sign-in";
    // Loading.show();
    // something to do
    firebase.auth().onAuthStateChanged(user => {
      // Loading.hide();
      if (user) {
        // Signed in. Let Vuex know.
        // console.log("signin in from session");
 
        store.dispatch("auth/sessionLogin", user);
 
        // new Vue(app)
      } else {
        // console.log("signed out");
        // console.log("should reset user here");
        // Signed out. Let Vuex know.
        store.dispatch("auth/resetUser");
      }
      if (requiresAuth) {
        if (!store.getters["auth/user"]) next(`/sign-in?from=${to.fullPath}`);
        else next();
      } else next();
    });
  });
};